首页 > 解决方案 > Java Jar 已编译但无法执行

问题描述

所以我有Test.java简单的主类代码文件。

public class Test {
  public static void main(String[] args) {
    System.out.println("123");
  }
}

MANIFEST.MF提交:

Main-Class: Test

然后在 CMD 中输入:

javac -verbose Test.java

然后

jar cmf MANIFEST.MF Test.jar Test.class Test.java

然后

java -jar Test.jar

输出:

Error: Could not find or load main class Test

标签: java

解决方案


Main-Class我可以重现您的原始错误,这是由于清单中的声明后没有换行符引起的。以下是使用的命令和文件的完整 shell 日志:

bash-5.0$ ls
MANIFEST.MF Test.java
bash-5.0$ cat MANIFEST.MF
Main-Class: Test

bash-5.0$ cat Test.java
public class Test {
  public static void main(String[] args) {
    System.out.println("123");
  }
}
bash-5.0$ javac Test.java
bash-5.0$ jar cmf MANIFEST.MF Test.jar Test.class Test.java
bash-5.0$ java -jar Test.jar
123
bash-5.0$

推荐阅读