2012-03-13 70 views
0

我不能编译命令行(仅在Eclipse)我Program.java。发生在JUnit类 当我想用声明外部库在Java中 - 编译错误

javac Program.java 

编译它“无法找到符号”错误。

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 

当我想用Eclipse来启动它编译Program.class Java命令的输出:

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

“它似乎没有工作”不是很精确 - 究竟发生了什么?这应该做工精细... – 2012-03-13 11:04:14

+0

刚刚发布的日志,不管我怎么尝试添加JUnit的罐子发生这种情况 – ctekk 2012-03-13 11:04:28

+0

我也不能日食编译Program.class与javaw进程计划> NoDefClassFound错误 – ctekk 2012-03-13 11:06:59

回答

0

现在,我得到它的工作。

我改名junit-4.10.jarjunit.jar,它移动到另一个文件夹,并在某种程度上这解决了这个问题:

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

BTW:

当我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

”不工作请在Windows上添加“:” – 2012-03-13 11:29:24

+0

; afaik – ctekk 2012-03-13 11:46:39

+0

;应该在Windows上工作,你有任何错误? – 2012-03-13 11:48:38

-3

您确实需要了解更多关于Java CLASSPATH的主题。无论是在编译时还是在运行时,你的错误都是由于你没有提供完整的类路径。

+0

什么是你不喜欢我的答案?你期望人们发布命令,你可以复制粘贴来完成你的工作吗?我们是否达到了这个手持要求的水平? – vagelis 2012-03-13 12:35:35

+0

没有,但说:“你这样做是完全错误的,做功课”不会帮助太... – 11684 2012-06-16 17:40:16

相关问题