日期:2014-05-20  浏览次数:20565 次

请问当工程里有多个类都含有main方法,怎么打包?
最近搞打包一头雾水,有几个问题

1.是不是manifest里的Main-Class只能有一个?

2.如果1的答案是Yes,那么如何通过Jar文件去调用其他的类?Classpath怎么写?

3.如果1的答案是Yes,请问如果用Ant生成jar文件,怎么把其他Main方法声明出来?

3.请问如果打包时需要Manifest,是怎么写命令法?

4.如果吧lib的jar包放在外部,是不是写 jar -cf的时候,lib的jar文件必须就位?如果当时还没生成,怎么办?


全分附上,抱歉只有这么多了

请大家指点,谢谢


------解决方案--------------------
1.是
2.java -classpath "jar引用路径" 主函数入口
3.不解?? main只有一个起作用
4.google之
5.jar加载路径的文件,存在的话会加载,不存在会被忽略
------解决方案--------------------
打包成jar文件,需要指定一个入口类,即主main程序,只能有一个。

这个主main程序需要写全路径名,按着这个类路径,肯定只能找到一个入口启动这个程序。
------解决方案--------------------
java -jar a.jar com/..../ClassName
------解决方案--------------------
一个应用程序一个入口。
既然楼主现在有多个“入口”那是否是表示就有多个应用程序呢。
如果只有一个应用程序设计成了多个入口,那么应该只有一个入口是可用的有效的。

否则那这设计就有问题。
------解决方案--------------------
打包的时候外部jar是不会被一起打包的。

可以有2种解决办法:
1:使用命令导入外部jar
java -jar -Djava.ext.dirs=外部jar路径 需要运行的jar
比如我们将Lib目录与我们的test.jar放入同级目录中。那么
java -jar -Djava.ext.dirs=lib test.jar 

2:使用build fat jar 打包,这样外部Jar就会被打包好了。就可以直接用jar -jar test.jar来运行了。

至于build fat jar 请看这里...http://hi.baidu.com/tedzhangzhe/blog/item/0d10a23860bce83596ddd877.html