2014-10-10 70 views
0

我有兩個在同一目錄中的.class文件。java命令將不會執行我的.class文件

一個是包含我寫的沒有主函數的類的類文件。另一個類文件只包含公共靜態無效主函數,它創建我的類的對象並調用一個函數。

當我在Netbeans IDE中編譯並運行它們時,它運行良好。如果我通過Windows命令提示導航到.class文件,並嘗試使用java命令運行這些文件,我收到一個錯誤,說它找不到主類。

這裏是我的類主要功能:

package a3; 
public class mainTest 
{ 
    public static void main(String[] args) 
    { 
     A3 test = new A3(); 

      test.quiz(); 
    } 
} 

我與我所有的方法類,像這樣定義:

package a3; 

import java.util.Scanner; 
import java.util.Random; 

public class A3 
{ 

    public void quiz() 
    { 
     // stuff 
    } 

    //more helper functions called from quiz function 

} // end of class 

當我嘗試使用命令提示符下運行: java mainTest

我得到:錯誤:無法找到或加載主類mainTest 即使我盯着目錄中的mainTest.class文件從中我正在使用該命令......我在這裏錯過了什麼?

另外我不應該說我能夠用相同的命令啓動其他Java應用程序,所以我不認爲它與環境變量有什麼關係。它必須是我的代碼。

+0

你的第一類有一個額外的「}」它。刪除多餘的'}'並重試。 – fuzzyanalysis 2014-10-11 00:00:25

+0

另外,看看是否有一個類路徑文件指向其他地方的類引用。 – fuzzyanalysis 2014-10-11 00:03:35

+0

我不知道如何找到它。在我的Netbeans項目中有一個project.properties文件,我在這個文件中看到了一些涉及classpath的代碼,但是有許多不同的行與classpath有關 - 我不確定這些代碼是什麼意思。 – Sabien 2014-10-11 00:04:45

回答

2

您需要從目錄中的A3目錄(具有類文件的一個)之外運行它,執行如下:

java a3.mainTest 
+0

這工作, 謝謝!是因爲我有包a3;代碼在開始?如果我刪除了這行代碼,我是否可以簡單地從它的目錄運行它? Netbeans默認使用這個功能。 – Sabien 2014-10-11 00:13:07

+0

@Sabien不,你*爲NetBeans定義了一個名爲'a3'的包,並把它放在裏面。如果您不想將其放入包中,只需將其移至默認包,NetBeans將修復該來源。但課程應該包裝在一起。 – EJP 2014-10-11 00:39:50

+0

但我從來沒有寫過那行代碼,打包a3; - 當我創建項目時,它在那裏。我不確定它來自哪裏。無論如何,現在我知道了。 – Sabien 2014-10-11 01:04:17