最近搞打包一头雾水,有几个问题1.是不是manifest里的Main-Class只能有一个?2.如果1的答案是Yes,那么如何通过Jar文件去调用其他的类?Classpath怎么写?3.如果1的答案是Yes,请问如果用Ant生成jar文件,怎么把其他Main方法声明出来?3.请问如果打包时需要Manifest,是怎么写命令法?4.如果吧lib的jar包放在外部,是不是写 jar -cf的时候,lib的jar文件必须就位?如果当时还没生成,怎么办?
全分附上,抱歉只有这么多了请大家指点,谢谢
全分附上,抱歉只有这么多了请大家指点,谢谢
2.java -classpath "jar引用路径" 主函数入口
3.不解?? main只有一个起作用
4.google之
5.jar加载路径的文件,存在的话会加载,不存在会被忽略
执行test1
java -classpath "a.jar" test1执行test2
java -classpath "a.jar" test2
<javac srcdir="${src.dir}" destdir="${build.classes}">
<include name="com/jms/sub/*.java"/>
<classpath refid="compile.classpath"/>
</javac>
</target>
<!--task javadoc-->
<target name="javadoc">
<mkdir dir="${doc.dir}/api"/>
<javadoc packagenames="com." sourcepath="${src.dir}" destpath="${doc.dir}/api" classpathref="classpath"/>
</target>
<!--task jar-->
<target name="jar" depends="prepare,compile">
<jar basedir="${build.classes}" destfile="${dist.dir}/pubsub.jar">
<!-- set mainfest information to manifest -->
<manifest>
<attribute name="Implementation-Maker" value="tian.yu" />
<attribute name="Implementation-Time" value="${touch.time}" />
<attribute name="Class-Path" value="${libs.project}" />
<attribute name="Main-Class" value="com.jms.sub.TibcoSubscriber" />
</manifest>
</jar>
java -classpath "jar引用路径" com.jms.sub.TibcoSubscriber
是不是没找到lib的jar文件呢?
javax/jms/JMSException
E:\workspace\eclipse_EE\Codes\PubSub_Server>java -classpath "pubsub.jar" com.jms.
sub.TibcoSubscriberTransacted fusionRealTimeSubscriberTransacted.proper ties Exce
ption in thread "main" java.lang.NoClassDefFoundError: javax/jms/JMSExceptionCaused by: java.lang.ClassNotFoundException: javax.jms.JMSException
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: com.jms.sub.TibcoSubscriberTransacted. Program w
ill exit.
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