[英]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.