[英]Could not find main class
好的,所以我一直在尝试制作可执行的jar文件。 它使用命令“ java -jar bybys.jar”运行,但是当我尝试使用Enter运行它时,出现了一个错误“找不到主类bardejov.Image。程序将退出。”
这是清单:
Manifest-Version: 1.0
Created-By: 1.7.0_02 (Oracle Corporation)
Main-Class: bardejov.Image
(是的,我换了一行)
编译jar文件时,我尝试了与目录的所有可能组合,但不知道问题出在哪里。 我用过C:\\Java\\2D>jar cfm bybys.jar Manifest.txt bardejov/Image.class bardejov/Board.class bardejov/*jpg
目录是:
META-INF/
META-INF/MANIFEST.MF
bardejov/Image.class
bardejov/Board.class
bardejov/siknius.jpg
和主类:
package bardejov;
import javax.swing.JFrame;
public class Image extends JFrame {
public Image() {
add(new Board());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(477, 530);
setLocationRelativeTo(null);
setTitle("Siknius");
setVisible(true);
setResizable(false);
}
public static void main(String[] args) {
new Image();
}
}
怎么修?
UPDATE
我修好了它。 问题是我没有安装最新的JRE。
Manifest.txt中的类名fof后面有一个多余的空格字符。 错误消息提示:
Could not find the main class bardejov.Image .
^^
实际上,问题似乎在于该jar不包含目录bardejov
的条目。 它包含在目录中的文件只项。 您可以在列表中看到它; 看看bardejov
的条目。 创建jar文件时,必须告诉jar
包含目录,而不仅仅是其中的文件:
jar cfm bybys.jar Manifest.txt bardejov
从Java 6开始,您可以使用jar命令指定入口点。 以下命令应为您的应用程序创建一个可执行的jar文件:
jar cfe bybys.jar bardejov.Image bardejov/Image.class bardejov/Board.class bardejov/*jpg
您无需编写和添加自定义清单。
资源
更新
以下内容可在我的机器上使用:
在example/Hello.java
创建一个Java源文件:
package example;
public class Hello {
public static void main(String[] args) {
System.out.println("Hello world!");
}
}
用命令编译
javac example/Hello.java
带命令的罐子
jar cfe example.jar example.Hello example/*.class
用命令执行
java -jar example.jar
输出是
Hello world!
UPDATE2
现在看起来像是配置问题。 代码和罐子显然是正确的。
快速修复/工作方法:代替直接启动jar,而是编写一个简短的批处理或shell脚本文件,该文件只需执行java -jar ...
命令即可。
打开cmd提示并输入
set JAVA_HOME=c:\PATH\TO\JAVA_DIRECTORY
set CLASSPATH=.;%JAVA_HOME%\bin;%JAVA_HOME%\lib
确保也将这些变量包括在PATH环境变量中。
通过转至控制面板->系统->高级系统设置->高级选项卡->环境变量,可以获取Win7中的环境变量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.