2012-03-13 5 views
0

Program.javaをコンパイルすることはできません(Eclipseのみ)。 私はJavaで外部ライブラリを宣言する - コンパイルエラー

javac Program.java 

でそれをコンパイルしたい場合は、エラーのJUnitクラスで発生「シンボルは見つけることができません」。

EclipseにはJUnit classesがありますが、それを自分でコンパイルするには何とかJUnit.jarをプログラムでコンパイルする必要があります。どうやってやるの?

javac -cp absolutePathTo\JUnitJar Program.java 

それともJUnit classesが私の(ネストされた)新しいThreadクラスで実装されていないので、この問題が多分原因で発生して動作するようには思えないのですか?

C:\Documents and Settings\xxxx\Desktop\eclipse\xxxx\Program\src\da 
    ta>javac -cp junit-4.10.jar Testworks.java 
    Program.java:81: package org.junit.runner does not exist 
    import org.junit.runner.Description; 
         ^
    Program.java:82: package org.junit.runner does not exist 
    import org.junit.runner.JUnitCore; 
         ^
    Program.java:83: package org.junit.runner does not exist 
    import org.junit.runner.Request; 
         ^
    Program.java:84: package org.junit.runner does not exist 
    import org.junit.runner.Result; 
         ^
    Program.java:85: package org.junit.runner.notification does not exist 
    import org.junit.runner.notification.Failure; 
             ^
    Program.java:86: package org.junit.runner.notification does not exist 
    import org.junit.runner.notification.RunListener; 
             ^
    Program.java:253: cannot find symbol 
    symbol : class JUnitCore 
    location: class data.Program 
      JUnitCore jCore; //-> Core Runner - has no pleaseStop() 
      ^
    Program.java:254: cannot find symbol 
    symbol : class RunListener 
    location: class data.Program 
      RunListener jRl; 
      ^
    Program.java:255: cannot find symbol 
    symbol : class Request 
    location: class data.Program 
      Request jRq; 
      ^
    Program.java:2167: cannot find symbol 
    symbol : class RunListener 
    location: class data.Program 
      class RlOne extends RunListener{ 
           ^
    Program.java:2170: cannot find symbol 
    symbol : class Description 
    location: class data.Program.RlOne 
          public void testRunStarted(Description descRun) 
                ^
    Program.java:2179: cannot find symbol 
    symbol : class Description 
    location: class data.Program.RlOne 
          public void testStarted(Description descStart) 
                ^
    Program.java:2185: cannot find symbol 
    symbol : class Description 
    location: class data.Program.RlOne 
          public void testFinished(Description descFinish) 
                ^
    Program.java:2202: cannot find symbol 
    symbol : class Failure 
    location: class data.Program.RlOne 
          public void testFailure(Failure failure) 
                ^
    Program.java:2211: cannot find symbol 
    symbol : class Description 
    location: class data.Program.RlOne 
          public void testIgnored(Description descIgno) 
                ^
    Program.java:2221: cannot find symbol 
    symbol : class Result 
    location: class data.Program.RlOne 
          public void testRunFinished(Result result) 
                 ^
    Program.java:2422: cannot find symbol 
    symbol : variable Request 
    location: class data.Program.ThirdThread 
            jRq = Request.aClass(cRun); 
             ^
    Program.java:2426: cannot find symbol 
    symbol : variable Request 
    location: class data.Program.ThirdThread 
            jRq = Request.method(cRun, comb_meth.getSelected 
    Item().toString()); 
             ^
    Program.java:2584: cannot find symbol 
    symbol : class JUnitCore 
    location: class data.Program 
          jCore = new JUnitCore(); 
             ^
    19 errors 

javaコマンドの出力IがProgram.classをコンパイルしたEclipseのことで、それを開始したい:

C:\Documents and Settings\xxxx\Desktop\eclipse\xxxx\Program\bin\da 
ta>java Program 
Exception in thread "main" java.lang.NoClassDefFoundError: Program 
Caused by: java.lang.ClassNotFoundException: Program 
     at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
Could not find the main class: Program. Program will exit. 
+0

"動作していないようです"というのはあまり正確ではありません。それは正常に動作するはずです... –

+0

ちょうど私がJUnit jarファイルを追加しようとしても、この問題が発生します。 – ctekk

+0

も実行できません。javawでProgram.classをコンパイルしても実行できません。プログラム> NoDefClassFoundエラー – ctekk

答えて

0

今私はそれを働かせました。

私は別のフォルダに移動し、何とかこれで問題が解決し、junit.jarjunit-4.10.jarと改名:

ところで
javac -classpath "C:\Documents and Settings\x\Desktop\eclipse\x\Program\extres\junit.jar" src\data\Program.java 

javac -classpath extres\junit.jar src\data\Program.java 
:私は C:\Documents and Settings\x\Desktop\eclipse\x\Program\にいるとき

を、それはまたで動作します

1

外部のjarとjavacコマンドを使用している間、あなたは

javac -classpath path-to-external-jar/jarname1.jar;/path-to-external-jar2/jarname2.jar Program.java

を使用する必要がありますjavaコマンドと同じ:

java -classpath path-to-external-jar/jarname1.jar;/path-to-external-jar2/jarname2.jar Program

+0

";" does not work ":" Windowsの –

+0

を追加してください。 afaik – ctekk

+0

;ウィンドウで動作するはずですが、何かエラーが出ますか? –

-3

Java CLASSPATHのトピックについて詳しく知る必要があります。コンパイル時と実行時のエラーは、完全なクラスパスを提供していないためです。

+0

私の答えについてあなたが気に入らないのは正確に何ですか?コピーして作業をするために貼り付けることができるコマンドを投稿することを期待していますか?私たちはこの必要レベルの手持ちに来ましたか? – vagelis

+0

いいえ、「あなたはすべて間違っている、あなたの宿題をやっている」と言っても助けにならない – 11684

関連する問題