java - 执行 JAR 文件时出错

标签 java jar executable-jar

我一直在学习 JAR 文件,并想尝试自己创建并运行一个。我执行了以下步骤:

  1. 创建了一个包含“source”子文件夹和“classes”子文件夹的项目文件夹
  2. 我编写了 2 个源文件,其中一个包含一个 main 方法,该方法创建另一个类的实例并在其中运行一个简单的方法。
  3. 将它们编译到“classes”子文件夹中。我检查了一下他们是否会逃跑。他们做到了
  4. 我创建了一个manifest.txt 文件并填写了Main-Class: xxxx 并按回车键。我将其保存在sources子文件夹中
  5. 通过编写在classes子文件夹中创建一个jar文件

    jar -cvmf manifest.txt zzz.jar *.class

  6. 尝试通过键入来执行 jar 文件

    java -jar zzz.jar

这会产生 ClassNotFound 异常。如果我尝试通过在 Windows 中双击该 jar 来执行它,我会收到一个错误框,显示“无法找到主类 xxxx”

我已经仔细检查了 list 文件中类的拼写,它是正确的。

可能很重要:我必须使用 java -cp 编译我的程序。 xyz 因为我的类路径有问题。这是否意味着我也需要以不同的方式执行 jar?我试过 java -cp 。 -jar zzz.jar 但最终还是出现了同样的异常。

编辑:我最终从头开始,现在它运行了(使用基本的 -jar zzz.jar 命令)。令人沮丧的是我不知道自己做错了什么,但很高兴它正在发挥作用!

最佳答案

编号 5. 不应该在所有类文件所在的classes 子文件夹中运行吗?如果您的类位于包中(它们应该位于包中),您可能会想要使用 * 而不是 *.class..?

要检查您的 jar 文件包含什么内容,您可以运行:

jar tf zzz.jar

关于java - 执行 JAR 文件时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9997451/

相关文章:

java - 从Ant到Gradle:可执行的JAR转换

maven - 如何使用 maven 为 Javafx 应用程序及其依赖的 jar 创建可执行 jar?

Java 11 SE 控制台输出

macos - 无法在 Mac OS X 10.7.5 上启动 javafx jar

java - Android:为 ListView 项目添加边框

java - 静态分析以从java中的根目录中找出所有引用的类

java - @ConfigurationProperties在spring中的使用

java - 正则表达式 : Substituting a version number in an XML file

spring-boot - 使用 gradle 为 spring boot 生成多个 jar

java - 如何在不安装 jdk 或 jre 的情况下运行 java 应用程序文件(exe 而不是 jar)