Rob*_*Rob 2 java jar executable-jar
我正在制作一个使用Javamail的java应用程序,它在编译时效果很好.我想将它变成一个jar文件,以便它可以轻松移动并执行.问题是当我尝试从cmd行运行jar时,我收到此错误
java -jar ActriveTray2.jar
Exception in thread "main" java.lang.NoClassDefFoundError: javax/mail/Store
at stockApp.init(stockApp.java:11)
at ActiveTray.main(ActiveTray.java:31)
Caused by: java.lang.ClassNotFoundException: javax.mail.Store
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)
Run Code Online (Sandbox Code Playgroud)
这是我的jar文件中的内容
我认为问题是classpath,其中jar不知道javamail jar所在的位置.当我执行代码时,我的类路径设置正确(java ActiveTray2)它工作正常...帮助:(
您需要将您依赖的jar添加到清单文件中,并将它们添加到您正在创建的jar中.java -jar将根据设计忽略您的环境的类路径. 来自java文档:
-jar:使用此选项时,JAR文件是所有用户类的源,并忽略其他用户类路径设置.
所以,您可以在清单文件中添加一行,如:
Class-Path: mail.jar
Run Code Online (Sandbox Code Playgroud)
到您的清单文件.