2017-10-18 3 views
1

EclipseとJavaプログラミングには新しくなっています。Eclipse IDEを使用するとJavaプログラムを完全にコンパイルして実行できますが、「javac」を使用するとエラーが発生します

私は最近、JavaとEclipse IDEを使用してプログラムを作成しました。

私は次のクラスを作った:

package Test; 
import java.util.*; 
import Test.AnotherClass; 

public class Program{ 
    public static void main(String[] args){ 
    AnotherClass ac = new AnotherClass(); 
    ac.callingAMethod(); 
    } 
} 

このクラスはProgram.javaという名前のファイルに存在し、私はこのように実装されているAnotherClass.javaという名前の別のファイル行わ:今

package Test; 
import java.util.*; 

public class AnotherClass{ 
    public void callingAMethod(){ 
    System.out.println("Hello, World!"); 
    } 
} 

を私がEclipseを使用すると、プログラムは完全に実行され、出力は「Hello、World!」として表示されます。 Eclipseのコンソールで。もう一つの問題は、Eclipseは/ binに.classファイルに組み込まれて作成され

Program.java:3: error: cannot find symbol import Test.AnotherClass; ^ symbol: class AnotherClass location: package Test Program.java:58: error: cannot find symbol AnotherClass ac = new AnotherClass(); ^ symbol:
class AnotherClass location: class Program Program.java:58: error: cannot find symbol AnotherClass ac = new AnotherClass(); ^ symbol: class AnotherClass location: class Program 3 errors

と私はターミナル上で、次に実行するならば、それは次のように私を与える:しかし、私は、ターミナルとjavacを使用している場合、それは私に次のエラーを与えるコンパイルしますエラー:私は問題を見つけることが起こることができません

Error: Could not find or load main class Program

私は「javacの」を使用する場合、コンパイルし、その後に「Javaの」を使用するのに対し、どのように来るのプログラムは、Eclipse IDEでコンパイルすることができ、同様の出力を示し、それを実行するとエラーが発生します。

何か助けていただければ幸いです。ありがとうございました。

+0

'javac 'でコンパイルするために使用しているコマンドラインは何ですか? –

+1

ちょうどヒントですが、パッケージ名は小文字にする必要があります。 Testのパッケージの代わりに。それはエラーではなく、単にスタイル・コンベンションhttp://www.oracle.com/technetwork/java/codeconvtoc-136057.html – Doleron

+0

コマンドを使用しています: "javac。Program.java AnotherClass.java"。今はコンパイルしますが、 "java Program"や "java。Program"をbinディレクトリ(.classファイルが置かれている場所)の中で使うと、私はまだ同じエラーが出ます - > Error:メインクラスを見つけられませんでしたプログラム –

答えて

0

あなたはまず、このようなバイナリ・ファイル(.classファイル)を作成するためにあなたのクラスAnotherClass.javaとProgram.javaをコンパイルする必要があります。そして、あなたはどのディレクトリのパッケージ名を「テスト」に行くべき

javac Program.java AnotherClass.java 

を存在する。それはあなたのように、AnotherClassのクラスファイルを期待しています、あなたはのjavacを使用してProgram.javaをコンパイルしようとすると

java -classpath . test.Program 
0

:次に、あなたのmainメソッドを含むクラスを呼び出している間も、クラスパスを含め、以下のコマンドを実行する必要がありますあなたは、コードのjavacは、このクラスファイルを認識していないので、最初のエラーのためのソリューションは、まずjavacのを使用して

  1. コンパイルAnotherClass.javaで実行したときに日食は、このクラスファイルを作成しているにもかかわらず、このクラスではそれを言及していますコンパイルProgram.java

  2. 2番目の問題は、クラスをパッケージ内に組み込み、javacを使用してコンパイルするとパッケージ構造を作成せず、以下のコマンドを使用してパッケージ構造を作成するときです。

    javac -d。 AnotherClass.java

    javac -d。 Program.java

    JavaのTest.Program

あなたは置き換えることができます ""どのディレクトリでも、私は "を与えた。同じディレクトリ内にパッケージ構造を作成します。これは、あなたが一度に1つの以上のファイルをコンパイルするために、クラスファイル名以外のいくつかのパラメータを指定する必要があり、コンパイルするコマンドラインを使用するには、出力

0

を必要となります:

javac -sourcepath src -d bin src\Test\Program.java 

それは見つけてコンパイルしますすべての関連クラスをProgram.java、つまりAnotherClass.javaと一緒にソースパスsrcに配置し、すべてのコンパイル済みクラスをbinに配置します。それはbinでコンパイルされたクラスを見つけて、それを実行します

java -classpath bin Test.Program 

binの下に位置し、あなたのプログラムを実行するために

関連する問題