我使用Eclipse Europa来开发我的代码。我能够使用eclipse执行我的代码。但是我想将我的代码导出为jar。
我的项目中有4个班级。我用过默认包。 我的班级引用外部罐子。
我尝试使用export jar选项导出为jar。我没有runnable jar选项。
当我尝试在命令行中执行程序时,它说
java -jar rus.jar "F2ile.xls" "Links.txt"
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/poi/ss/us
rmodel/RichTextString
at ReadText.main(ReadText.java:29)
Caused by: java.lang.ClassNotFoundException: org.apache.poi.ss.usermodel.RichTe
tString
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)
... 1 more
答案 0 :(得分:0)
这是一个类路径问题,您可以尝试以下方法:
java -cp rus.jar:<poi-*.jar> <class> //poi jar name to provide and the class
其他选项是使用清单文件:
<jar jarfile="rus.jar">
..
..
<manifest>
<attribute name="Main-Class" value="<class_name>"/>
<attribute name="Class-Path" value="<poi*.jar>"/>
</manifest>
</jar>
答案 1 :(得分:0)
使用MANIFEST文件将您的jar打包到META-INF目录中(在jar文件的根级别)。
在MANIFEST中添加一个条目以指定要执行的主类:
Main-Class: classname
其中classname是包含包的完整类名。
打包时,您可以使用命令java -jar jarfile.jar
运行主类。
您不必在命令行上指定类名。对于任何可以使用jar文件的人来说都比较容易。