簡體   English   中英

Java應用程序的類路徑指定執行均返回:“錯誤:找不到或加載主類”

[英]No matter classpath designation execution of java application returns: “Error: Could not find or load main class”

前一個問題已關閉,指出它是一個重復的問題,但事實並非如此。 我已經搜索了幾個小時。 這不是類路徑錯誤的情況,也不是鍵入java someprogram.class而不是Java someprogram的情況,這不是Linux語法錯誤的情況,堆棧溢出問題沒有其他問題解決了我的問題。

從昨天開始,我一直在嘗試各種方法。 我正在嘗試從Linux Mint的終端運行Java應用程序。 我認為這可能與兩個不同的Java安裝有關。

我開始使用JDK 7和舊的Eclipse構建進行教程,但必須同時將Javafx升級到JDK 8和Eclipse 4.4.4,然后從使用Java文件夾轉到Java2文件夾。 Java文件夾中的所有內容都將從終端運行,但是Java2文件夾中的任何內容都不會。

錯誤歸結為:

這有效:

dalsgaard@dalsgaard $ pwd
/home/dalsgaard/Skrivebord/Java/tutorials/bin
dalsgaard@dalsgaard $ java Welcome
Hej med dig!

這不是:

dalsgaard@dalsgaard $ pwd
/home/dalsgaard/Skrivebord/Java2/tutorials/bin/application
dalsgaard@dalsgaard $ java helloWorld 
Error: Could not find or load main class helloWorld

這也不起作用:

dalsgaard@dalsgaard $ java -cp /home/dalsgaard/Skrivebord/Java2/tutorials/bin/application/ helloWorld`
Error: Could not find or load main class helloWorld

這也不是:

dalsgaard@dalsgaard $ java -cp . helloWorld`
Error: Could not find or load main class helloWorld

我嘗試使用-cp modfier,現在將classpath設置為10億個不同的目錄(使用export $ CLASSPATH),這使我無所適從。 如您所見,我有一個主班:

package application;

public class helloWorld {

    public static void main(String[] args) {
        System.out.println("Hello StackOverflow!");

    }

}

我嘗試了以下方法:

dalsgaard@dalsgaard $ javapackager -createjar -appclass application.TicTacToeRandom -outdir . -outfile outjar -srcdir . -v
dalsgaard@dalsgaard $ java -jar outjar.jar
Error: Could not find or load main class Application.TicTacToeRandom
dalsgaard@dalsgaard $ 

它編譯沒有問題(那么如何將classpath變成問題?),javapackager會找到所有正確的文件! Java版本,Linux版本等:

dalsgaard@dalsgaard $ java -version
java version "1.8.0_25"
Java(TM) SE Runtime Environment (build 1.8.0_25-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)
dalsgaard@dalsgaard $ uname -a
Linux dalsgaard 3.13.0-24-generic #47-Ubuntu SMP Fri May 2 23:30:00 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

在大多數情況下,您要么沒有為主類提供程序包名稱,要么在以下情況下沒有通過-cp提供正確的類路徑,這兩種情況都是不正確的。

dalsgaard@dalsgaard $ pwd
/home/dalsgaard/Skrivebord/Java2/tutorials/bin/application
dalsgaard@dalsgaard $ java helloWorld 
Error: Could not find or load main class helloWorld

應該是(pwd和java命令返回的注意路徑):

dalsgaard@dalsgaard $ pwd
/home/dalsgaard/Skrivebord/Java2/tutorials/bin/
dalsgaard@dalsgaard $ java application.helloWorld 

Java類必須存儲在與類本身相同的文件中。 另外,不允許在類名中包含空格字符。 參見例如http://docstore.mik.ua/orelly/java-ent/jnut/ch07_01.htm

例如,在以下代碼段中,您已在命令行中添加了空格字符:

dalsgaard@dalsgaard $ java -cp /home/dalsgaard/Skrivebord/Java2/tutorials/bin/application/ helloWorld`
Error: Could not find or load main class helloWorld

當創建jar時,您使用的文件名不正確。 應該是helloWorld.java

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM