2017-08-09 9 views
0

src内のパッケージ "first"の下にEclipseを作成しました。 私は日食でうまく実行されます。しかし、私は、コマンドプロンプトから実行しようとしたとき、それはエラー:メインクラスCreatingThreadを見つけられませんでした。

"Error: Could not find or load main class CreatingThread".

を言うだろうが、私はいくつかの他のフォルダに同じクラスをコピーして、package firstを削除すると、それが正常に動作します。
私は以下のように環境変数を設定しています

path %JAVA_HOME%\lib;C:\Program Files\Java\jre1.8.0_144\bin 

classpath %JAVA_HOME%\lib\tools.jar;.; 

そして、あなたのクラスTest.javaたとえば場合、これらはクラス

package first; 

public class CreatingThread { 

    public static void main(String[] args) { 
     System.out.println(Thread.currentThread().getName()); 
     System.out.println(Thread.currentThread().getPriority()); 
     System.out.println(Thread.currentThread().getThreadGroup()); 
     for(int i=0;i<=25;i++) { 
      System.out.println(Thread.currentThread().getName()+" "+i); 
     } 

     MyThread myThread= new MyThread(); 
     myThread.setName("Child Thread"); 
     myThread.getThreadGroup(); 
     myThread.start(); 
     System.out.println("Done"); 
    } 
} 

セカンドクラス

package first; 

public class MyThread extends Thread { 
    @Override 
    public void run() { 
     for(int i=0;i<=25;i++){ 
      System.out.println("child thread "+i); 
     } 
    } 
} 
+0

CreatingThread.classに至るパスとは何ですか? – Ouney

+0

iinコマンドプロンプト私はcd workspace \ corejava \ multithreadingrevision \ src \ firstを実行した後、Javac * .java – spa

+0

を実行してください。最初の.CreatingThread' –

答えて

-1

ですクラス内の最初の行よりsrc/testパッケージにあると、package test;のようになります。 javac Test.javaを使用してtestフォルダから直接コンパイルすることができます。しかし、実行はフォルダの外からパッケージ全体のパスを使って行う必要があります。testの代わりにjava Testsrcフォルダから実行する必要があります。

希望すると、これが役立ちます。

+0

は、Javaファイルが存在するフォルダに到達した後にjavac * .javaを実行した後、Java CreatingThreadを実行しました - それに失敗しました。私はJavaを試しましたfirst.CreatingThread - java.src.first.CreatingThreadも失敗しました。私はクラスからパッケージのキーワードを削除し、それらのクラスを任意のフォルダに入れてコンパイルすると、正常に実行されます。 – spa

+0

"java first.CreateThread"を "java src.first"の代わりにsrcフォルダから実行します。スレッドの作成 " –

+0

Tnq @Mikita Berazouski – spa

関連する問題