2017-08-12 384 views
-2

我有一個類的主要方法。當我使用Windows命令行來運行該類的主要方法時,使用「javac」命令的編譯過程效果很好(命令行的當前位置 - 具有此類的目錄)。名爲「Card.class」的文件幾乎被創建爲「Card.java」文件。但命令「java card」返回錯誤,描述爲「無法找到或加載主類」。在Intellij Idea中,這個方法在這個類中工作得很好。java控制檯錯誤無法找到或加載主類

我所試圖做的解決(解決了一些從StackOverflow的主題拍攝)問題:

1)JDK和JRE的完全重新安裝。

2)重寫了我所有的環境變量:

JAVA_HOME = C:\ Program Files文件\的Java \ jdk1.8.0_144

JDK_HOME =%JAVA_HOME%

PATH = C:\ Program Files文件\爪哇\ jdk1.8.0_144 \ BIN

CLASSPATH =%JAVA_HOME%\ lib中\ dt.jar;%JAVA_HOME%\ JRE \ lib中\的tools.jar

3)我嘗試不同的變化爲「CLASSPA TH「環境變量。另外,我手動編寫了這個文件:「java -classpath」$ s「Card」,其中「-classpath」參數的值是從Intellij Idea命令複製的,在IDE中運行該程序後已返回。

4)嘗試命令中的類名的一些變體(從源項目目錄中的「java card」 變爲「java package_name.Card」)。所有這些變體都被命令行識別,返回相同的錯誤。

我在想「classpath」變量的問題,但是我發現的所有解決方案都爲這個變量建議了不同的值,並且他們中的任何一個都工作了。之前提到了變量的上次更新值。

這裏是我的類(可能的問題是在這裏):

package cards; 

public class Card { 

    //Constants, constructor, getters, setters, validation checking methods 

    public static void main(String[] args) { 

     // Just to see in the command line that the method was invoked 
     System.out.println("WORK"); 

     // "assert" checks for constants values 

    } 
} 

堆棧跟蹤了我的錯誤:

myPathToTheProject的\ src \卡> Java卡

錯誤:無法找到或加載主類卡

+0

請重新格式化您的代碼,以便閱讀。 – UmarZaii

+0

之前,當命令行的「位置」位於項目的源文件夾(src)中時,我嘗試了此命令:「java cards.Card」。它不起作用。但是,當我手動添加-cp 作爲命令參數時,確實如此。所以Tuyen Nguyen的解決方案確實有幫助。這是我的CLASSPATH環境變量的錯誤,顯然可能發生在其他人身上。類似的問題在這裏:https://stackoverflow.com/questions/18093928/what-does-could-not-find-or-load-main-class-mean?rq=1,最好的答案(加上兩個頂級投票)正在爲此描述另一個解決方案。 –

+0

關於「簡單的印刷錯誤」:http://screenshot.su/show.php?img = 1cf41c141fdc9bd60056965b7ba6793f.jpg –

回答

-1

讓我們設置classpath中運行之前正確的。這項工作適合我:java -cp ./ Cardjava -cp . Card。部分:-cp .-cp ./用於將classpath設置爲當前文件夾。

0

打開CMD的位置,你有Card.class

set CLASSPATH="" 
java Card 

我假設你沒有包減速對Card.java

+0

naa,同樣的錯誤顯示出來。 –

+0

另外您發佈的代碼不包含包裝聲明,問題非常相似。如果你的包減速可以在你的課堂上說出「包裝卡片」,你可以像javac Card.java一樣編譯它,而不會出現問題。但是如果你嘗試運行它,它會拋出異常「main not found」,你需要上一層並執行「java card.Card」。不知道還會發生什麼。 – Imran

+0

我也厭倦了這些變化,就像我在問題中所描述的那樣,但是它沒有幫助將類路徑設置爲項目的源文件夾 –

相關問題