这是我试图将其转换为 .jar 文件的 java 程序的基本示例:
当我尝试编译它时,出现此错误:
我最初是在一个更复杂的程序上遇到这个错误的,我想确保它不仅仅出现在那个特定的程序上。我对这个错误做了很多研究,但无法弄清楚为什么会发生。类在同一目录下定义清晰,没有错别字。
是否有可能 Java 无法正常工作,我应该重新安装或更新它?
对于
javac
,您需要指定 classpath
(如 @user85421 建议)并在清单中设置正确的 Package-Name
和 Main-Class
。
源文件和清单(相对于项目根目录):
src/test/Bruh.java
package test;
public class Bruh {
public static void main(String[] args) {
System.out.println("Bruh");
new Cheese(1, 2);
}
}
src/test/Cheese.java
package test;
public class Cheese {
public Cheese(int one, int two) {
System.out.println(one + " cheese, " + two + " cheese.");
}
}
清单.txt
Manifest-Version: 1.0
Created-By: Developer
Package-Name: test
Main-Class: test.Bruh
javac -cp src src/test/Bruh.java src/test/Cheese.java
java -cp src test.Bruh
src
目录并构建一个jar。cd src
jar cfm ../bruh.jar ../manifest.txt test/Bruh.class test/Cheese.class
cd ..
java -jar bruh.jar
输出:
Bruh
1 cheese, 2 cheese.
随着文件数量的增加和项目结构变得更加复杂,使用普通的
javac
变得越来越困难。这就是为什么构建工具经常被建议。