Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用邮件API从Swing应用程序创建Jar文件_Java_Jar_Jakarta Mail_Executable Jar - Fatal编程技术网

Java 使用邮件API从Swing应用程序创建Jar文件

Java 使用邮件API从Swing应用程序创建Jar文件,java,jar,jakarta-mail,executable-jar,Java,Jar,Jakarta Mail,Executable Jar,我在将应用程序转换为.jar文件时遇到问题。我试过了 jar cfve file.jar Main *.class 其中Main是入口点,*.class是所有的类文件(我有大约4个内部类,所以它生成了大量的.class文件)。现在,该应用程序使用Java邮件API。当我下载javamail-1.4.6时,我不知道把它放在哪里。用户告诉我,“把它放在你的类路径中”,但我不知道这对我电脑上的文件夹意味着什么。我尝试将文件夹路径连接到path环境变量的末尾,但我不确定这是否有效 回到jar文件,当我

我在将应用程序转换为.jar文件时遇到问题。我试过了

jar cfve file.jar Main *.class
其中Main是入口点,*.class是所有的类文件(我有大约4个内部类,所以它生成了大量的.class文件)。现在,该应用程序使用Java邮件API。当我下载javamail-1.4.6时,我不知道把它放在哪里。用户告诉我,“把它放在你的类路径中”,但我不知道这对我电脑上的文件夹意味着什么。我尝试将文件夹路径连接到path环境变量的末尾,但我不确定这是否有效

回到jar文件,当我单击创建的.jar文件时,什么也没有发生。没有框架打开,或者什么的。有人能帮我解决这个问题吗?也许能解释一下我需要做什么才能永久添加邮件API?谢谢


最好的…SL

如果您正在使用某些IDE(例如Eclipse/NetBeans)来构建应用程序,您只需将jar放入项目(通常在lib文件夹中)并将其添加到构建路径。 然后,当您创建一个可执行的jar文件时,您的外部jar文件应该包含在其中

您可以手动将jar文件添加到清单文件本身的类路径中。 范例-

Class-Path: jar1-name jar2-name directory-name/jar3-name
通过在清单中使用类路径头,可以避免在调用Java运行应用程序时必须指定长类路径标志

还有一件事,因为您说过“当我单击创建的.jar文件时,什么也没有发生”,所以如果jar文件无法执行,您可以从命令提示符运行jar文件,查看是否有错误,如果jar文件未包含在类路径中,则从jar文件加载类


希望这对您有所帮助。

由于使用捆绑依赖项运行可执行JAR的(相对)复杂性,我建议使用或之类的工具来完成此任务。不要使用IDE。当我运行创建的jar文件时,我得到了javax/mail/Authenticator的NoClassDefFoundError。这让我相信API没有正确地包含在jar中是吗?通常JavaMail jar文件不会包含在您的应用程序jar文件中(但如果您认为确实需要,请搜索“onejar”)。相反,您的应用程序jar文件将与JavaMail jar文件一起打包在zip文件或其他安装程序包中。安装应用程序时,jar文件和JavaMail jar文件将存储在本地磁盘上,jar文件将使用上面的类路径技术引用JavaMail jar文件。然后可以使用“java-jarmyapp.jar”运行应用程序,或者双击它。