【问题标题】:Export Java Project with external libraries using Eclipse使用 Eclipse 导出带有外部库的 Java 项目
【发布时间】:2011-12-31 14:19:27
【问题描述】:

我正在尝试使用 eclipse 将我的 Java 项目导出到可运行的 JAR 文件中,但是如果我想运行完成的 JAR 文件,我总是会收到错误

Java Virtual Machine Launcher

Could not find the main class: src.main. Program will exit.

src.main是我的主类,如果我用winrar打开jar,这个类在jar文件的src文件夹中。

我这样导出项目:

  • 右键单击项目名称
  • 导出
  • 可运行的 JAR 文件 -> 下一步
  • Launchconfig:我的主要课程。
  • 目标:...\Desktop\asdf.jar
  • 库处理:将所需库提取到生成的 JAR 中(我也尝试了所有其他库)
  • 完成
  • 我收到警告:“JAR 导出已完成,但出现警告。..”
  • 好的

库是这样添加的:

  • 右键单击项目名称
  • 属性
  • Java 构建路径
  • 添加外部 JAR
  • 所有库都集中在一个外部文件夹中。

我做错了什么?

【问题讨论】:

  • 你的班级名称是主要的吗?如果是这样,main是java中的保留字,将名称更改为不是保留字的其他名称并尝试。
  • 我改了名字,还是报错。
  • 检查 meta-inf 有没有这个类名的条目?
  • 在manifest datei的meta-inf文件夹中是:Class-Path: .Main-Class: src.Start
  • 能否提供Eclipse中项目层次结构和WinRar中文件夹视图的截图?

标签: java eclipse jar export


【解决方案1】:

src.Start 有合适的“public static void main(String[] args)”方法吗?

您是否尝试这样启动应用程序:

“java -jar myjar.jar”或“java -cp myjar.jar src.start”

另外,你是手动构建清单,还是让 eclipse 来做?我不记得曾经见过 eclipse 在清单中添加一个类路径条目,但我可能错过了它。

在导出过程中的“Jar Manifest Specification”面板,选择“generate the manifest file”并在输入栏填写“Main class:”条目即可。

【讨论】:

  • 我让 eclipse 来做,如果我这样启动它:java -jar myjar.jar它可以工作,我只需要将 src 文件夹放入 jar 中。但是为什么我刚打开它就不起作用?
  • 啊!你不能通过单击像 EXE 来运行 Jar。如果要运行 jar,则需要使用 Java -jar 命令仅从命令行(AFAIK)运行它。
  • 我创建了一个包含 java -jar myjar.jar 的 bat 文件,对我来说它可以工作,但我把文件给了朋友,但他得到了错误:Could not find the main class: main.Start. Program will exit.
  • eclipse的导出功能不起作用的原因是:我使用的是Java 1.7版本,其他人都使用1.6,我在eclipse的设置中更改了编译版本,一切正常现在工作正常。但我现在正在使用这个:java -jar myjar.jar 创建一个 bat 并将其转换为一个 exe,因此该程序对于 Windows 用户来说看起来更熟悉。感谢您的帮助。
【解决方案2】:

我向您推荐的第一件事:不要以您现在正在使用的方式使用 src.main。在 Java 中,我们通常使用一个名为 src 或 src/main 或 src/main/java 的文件夹来放置源代码。然后,将其用作包和类名并不是一个好主意。第二;不要将您的类称为 ma​​in,它不是 Java 中的关键字,您可以使用此名称创建一个类,但是……这不是一个好主意。

您的问题的解决方案:您需要在清单文件中设置您的 Main-Class 和 Class-Path 并确保您的包(您的 jar)的结构,看看这个tutorial ,它会帮助你。

【讨论】:

  • 我知道,但是如果您在为 eclipse 自动生成的清单中看到该信息,您可以看到 jar 执行的类是什么,包是什么,如果库在类路径中。 . 并在 jar 中查找您的类、库并查看它们是否在正确的位置。
猜你喜欢
  • 2015-07-07
  • 2013-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-16
  • 2012-05-22
  • 1970-01-01
相关资源
最近更新 更多