所以,当我编写 java 文件时:
public class Program
{
public static void main(String[] args)
{
System.out.println("Serious business logic.");
}
}
然后在windows cmd中,我这样编译:
javac Program.java
jar cfe Program.jar Program Program.class
java -jar Program.jar
没问题,结果是:
"Serious business logic."
当我在 Netbeans 中创建项目时,它会添加以下行:
package program;
而且我无法在cmd中编译,只能在IDE中编译。 我尝试过manifest.txt,无BOM的UTF8编码,以及文件的和处的换行符。
list .txt:
Main-Class: program.Program
- “jar cvfm Program.jar Manifest.txt Program.class”
并且没有manifest.txt,只是在cmd程序中
- “jar cfe Program.jar program.Program Program.class”
当我尝试运行时:
java -jar Program.jar
结果是:
"Error: Could not find or load main class program.Program"
我已经检查过以下网站:
http://www.skylit.com/javamethods/faqs/createjar.html
https://docs.oracle.com/javase/tutorial/deployment/jar/build.html
并且不知道该怎么做。你能帮我一下吗?
如何使用 package 关键字进行编译?正确的切入点是什么?
谢谢!
(ps jre1.8.0_91 ;jdk1.8.0_66 我应该为 jre 和 jdk 使用相同的 32 位还是 64 位吗?)
最佳答案
确保将程序编译为 JAR 时,Program.class
位于名为 program
的文件夹内。 Netbeans 在脚本开头添加的 package 关键字告诉可执行文件它位于名为 program
的文件夹内。如果您只是添加类文件而不确保它位于正确的包(文件夹)中,它将无法正常运行,因为它不知道在哪里可以找到它。您的命令应更改为:
jar cvfm Program.jar Manifest.txt program
其中program
是包含Program.class
的文件夹。您的 list 可以单独保留,但也需要包含在编译中。
关于java - 将 java 编译为 jar 时,正确的入口点是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38018006/