2012-03-13 6 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, когда я хочу, чтобы запустить его в Eclipse, компилируется Program.class:

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

также я не могу запустить по eclipse скомпилированным Program.class с javaw Program> NoDefClassFound error – ctekk

ответ

0

Теперь я получил его на работу.

я переименовал junit-4.10.jar в junit.jar, переехал в другую папку и как-то это решить проблему:

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

КСТАТИ:

Когда я в C:\Documents and Settings\x\Desktop\eclipse\x\Program\ он также работает с:

javac -classpath extres\junit.jar src\data\Program.java 
1

При использовании 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

if ";" не работает, пожалуйста, добавьте «:» –

+0

на окна его; afaik – ctekk

+0

; должен работать над окнами, вы получаете какую-либо ошибку? –

-3

Вам действительно нужно узнать больше о теме Java CLASSPATH. Ваши ошибки, как при компиляции, так и во время выполнения, связаны с тем, что вы не предоставляете полный путь к классам.

+0

Что именно вам не нравится в моем ответе? Вы ожидаете, что люди опубликуют команды, которые вы можете скопировать-вставить, чтобы выполнить свою работу? Пришли ли мы к ЭТОУ требуемый уровень владения руками? – vagelis

+0

Нет, но говоря: «Ты делаешь все неправильно, твоя домашняя работа» тоже не поможет ... – 11684

Смежные вопросы