gpt4 book ai didi

java - 使用 Eclipse 导出 jar,然后运行它

转载 作者:行者123 更新时间:2023-12-01 14:17:30 25 4
gpt4 key购买 nike

我在 Ubuntu 12.04 上使用 Eclipse 3.7。

我在src中的某个Eclipse项目中有五个.java文件文件夹。项目文件夹(除了 binlibsrc 文件夹)、 help文件和 properties文件以及某些输入文件。

我需要创建一个.jar文件与 java 文件,并使其从命令行可执行,并将属性文件作为参数。

例如:

java -jar <jar-file-name>.jar -info file.properties

我使用 Eclipse 将项目导出为 .jar文件,进入bin文件夹。

我复制了所有输入文件,properties文件和 help文件写入dist文件夹并运行命令。

我收到一个错误提示

Failed to load Main-Class manifest attribute from jar

然后我检查了this回答并执行了必要的操作(用一行创建了 list 文件)并运行了

jar cfm <jar-file-name>.jar <manifest-file-name> ./bin/*.class

它不起作用,并抛出了 ClassNotFoundException .

如有任何帮助,我们将不胜感激。

编辑

我在导出 .jar 时通过选择“下一步”而不是“完成”来添加主类。现在,在执行它时,它为 mysql 连接器 jar 抛出了“ClassNotFoundException”。尽管如此,它包含在制作 jar 时添加的 lib 文件夹中。

Exception in thread "main" java.lang.RuntimeException: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

第二次编辑

相关输出。

java -cp ./lib/* -jar <non-runnable-jar>.jar -info info.properties

哪里./lib/拥有所有依赖的 jar。

它给出了这个错误:

Exception in thread "main" java.lang.RuntimeException: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at polygonprobability.Model.readTestingData(Model.java:178)
at polygonprobability.Model.<init>(Model.java:136)
at polygonprobability.Info.getModel(Main.java:290)
at polygonprobability.Main.loadInfo(Main.java:138)
at polygonprobability.Main.operInfo(Main.java:61)
at polygonprobability.Main.distribute(Main.java:170)
at polygonprobability.Main.parse(Main.java:81)
at polygonprobability.Main.main(Main.java:34)
Caused by: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:188)
at polygonprobability.DatabaseConnect.authorizeSQL(DatabaseConnect.java:50)
at polygonprobability.Model.readTestingData(Model.java:157)
... 7 more

对于

java -cp /lib* -jar <non-runnable>.jar <packagename>.Main -info info.properties

它给出了这个错误

Exception in thread "main" java.lang.NoClassDefFoundError: /lib64
Caused by: java.lang.ClassNotFoundException: .lib64
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: /lib64. Program will exit.

最佳答案

尝试这些步骤 -

  1. 导出不可运行 jar,包含 Main 类(跳过下一部分)
  2. 然后执行以下操作java -cp/path/to/lib/*:yourjar.jar pkg.MainClass -info file.properties

/path/to/lib/* = 所有依赖 jar 的路径。

关于java - 使用 Eclipse 导出 jar,然后运行它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17990863/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com