【问题标题】:jar file created by Eclipse doesn't runEclipse 创建的 jar 文件无法运行
【发布时间】:2020-11-29 17:20:54
【问题描述】:

我最近在运行 Windows 10 的电脑上安装了最新版本的 Eclipse。 每次尝试将最简单的 Java 项目导出到可运行的 jar 文件中时,jar 文件都不起作用。

例子:

import javax.swing.JOptionPane;
public class Try {
    public static void main(String[] args) {
        JOptionPane.showMessageDialog(null, "Some message", "title!!", JOptionPane.INFORMATION_MESSAGE);
    }
}

文件> 导出> Java > 可运行的 Jar 文件 所有名称/文件夹均已设置好 将所需的库打包到生成的 JAR 中(但我尝试了其他所有开关)> 完成 jar 文件已创建,但根本不做任何事情。有什么建议吗?

【问题讨论】:

  • 按照CodePenguin的建议:在命令行运行jar文件看看有没有错误:java -jar thefile.jar
  • 你能澄清一下“什么都不做”的意思吗?你有错误吗?
  • 100 万谢谢 DontKnowMuchBut 越来越好!!在命令行上运行 jar 文件时,出现“UnsupportedClassVersionError”消息,说明该项目已使用更新版本的 Jave Runtime(类文件版本 58.0)编译,而此(哪个?)版本的 Java Runtime 仅识别类文件版本高达 55.0 有人知道如何解决这个问题吗?
  • 成功!!我将编译器合规级别更改为 11(从属性> Java 编译器),一切顺利!再次感谢“DontKnowMuchBut 越来越好”

标签: java eclipse


【解决方案1】:

不确定这是否是您的问题,但您的 jar 需要包含一个清单文件以指示 jar 中的哪个类是应用程序的入口点。因此,检查 Eclipse 是否正确添加它可能是值得的。看起来一些手动步骤可能是involved。文件 (META-INF/MANIFEST.MF) 应包含以下内容:

Manifest-Version: 1.0
Created-By: 1.8.0_112 (Oracle Corporation)
Main-Class: MyClass

作为参考,可以在here 找到有关添加清单(在 Eclipse 之外)的一些指导。

仅供参考,如果您最终手动添加清单,请务必遵循该页面的建议,在文件末尾添加新行。就像我一样,错过它会导致很多挫败感:

警告:文本文件必须以换行符或回车符结尾。如果最后一行没有以换行符或回车符结尾,则无法正确解析。

你会创建一个文件,比如Manifest.txt,包含这个(加上一个“新行”):

Main-Class: Try

然后创建jar:

jar cfm anyname.jar Manifest.txt Try.class

然后通过双击或运行以下命令来运行 jar:

java -jar anyname.jar

【讨论】:

  • Eclipse 导出向导将为您创建一个清单。该向导有一个“主类”字段,您可以在其中输入包含main() 方法的类的完全限定类名。
猜你喜欢
  • 2023-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-15
  • 2012-11-01
  • 1970-01-01
相关资源
最近更新 更多