问题描述
这是文件夹结构:
C:。 $ b $b└───src$ b $b├───main$ b $b│└───java$ b $b│└───com$ b $b│└───myCompany$ b $b│└───Runner.java$ b $b│$ b $b└───test$ b $b└───java$ b $b└───com$ b $b└───── myCompany $ b $b└───BasicTest.java
这是BasicTest.java:
package com.myCompany;
import junit.framework.TestCase;
公共类BasicTest扩展TestCase {
public BasicTest(){
}
public void testTrue(){
assertTrue(真);
}
}
这是Runner.java:
package com.myCompany;
公共类Runner {
public static void main(String [] args){
BasicTest bt = new BasicTest();
bt.testTrue();
System.out.print(已完成);
}
}
很简单,对吧?请继续阅读...
我尝试过:
时间编译BasicTest.java
C:\ workspace \BasicTest> javac -cp c:\ junit\latest \ junit -4.10.jar c:\ workspace \ BasicTest \ src\test\java \ com \ myCompany \ * .java
这很好用...
当我尝试编译Runner.java时,我得到了这个:
C:\ workspace \BasicTest> javac -cp c:\ workspace \BasicTest \src\test\java \ com \ myCompany c: \ workspace \ BASesTest \ src \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ pre> c:\ workspace \BasicTest \ src \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ com \ myCompany \ Runner.java:7:错误:找不到符号
BasicTest bt = new BasicTest();
^
符号:class BasicTest
location:class Runner
c:\ workspace \BasicTest \ src \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ .java:7:错误:找不到符号
BasicTest bt = new BasicTest();
^
符号:class BasicTest
location:class Runner
2错误
我用谷歌搜索,直到我脸红了,无法弄清楚这个错误。我理解错误,它是基本的,我想说的是我不明白为什么我得到它 - 我明确地给了编译器路径。
这并不意味着。它是!两个源文件都以:
package com.myCompany;
这本身就会引发一堆错误......它没有考虑到junit jar。
当我修改你的建议时:
javac -cp c:\ junit \\ \\ _ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \ * .java
它有效!!!谢谢。
但这还没有解决。它编译 - 但是我无法运行:
C:\ workspace \BasicTest \src \ main \ java> java com.myCompany.Runner< br />
线程main中的异常java.lang.NoClassDefFoundError:com / myCompany / BasicTest< br />
at com.myCompany.Runner.main(Runner.java :7)< br />
引起:java.lang.ClassNotFoundException:com.myCompany.BasicTest< br />
at java.base / jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader .java:582)< br />
在java.base / jdk.internal.loader.ClassLoaders
Here's the folder structure:
C:. └───src ├───main │ └───java │ └───com │ └───myCompany │ └───Runner.java │ └───test └───java └───com └───myCompany └───BasicTest.java
Here's BasicTest.java:package com.myCompany; import junit.framework.TestCase; public class BasicTest extends TestCase { public BasicTest() { } public void testTrue() { assertTrue(true); } }
Here's Runner.java:package com.myCompany; public class Runner { public static void main(String[] args) { BasicTest bt = new BasicTest(); bt.testTrue(); System.out.print("Finished"); } }
Simple enough, right? Read on...
What I have tried:
Time to compile BasicTest.javaC:\workspace\BasicTest>javac -cp c:\junit\latest\junit-4.10.jar c:\workspace\BasicTest\src\test\java\com\myCompany\*.java
This works just fine...
When I try to compile Runner.java, I get this:C:\workspace\BasicTest>javac -cp c:\workspace\BasicTest\src\test\java\com\myCompany c:\workspace\BasicTest\src\main\java\com\myCompany\*.java
c:\workspace\BasicTest\src\main\java\com\myCompany c:\workspace\BasicTest\src\main\java\com\myCompany\Runner.java:7: error: cannot find symbol BasicTest bt = new BasicTest(); ^ symbol: class BasicTest location: class Runner c:\workspace\BasicTest\src\main\java\com\myCompany\Runner.java:7: error: cannot find symbol BasicTest bt = new BasicTest(); ^ symbol: class BasicTest location: class Runner 2 errors
I've googled until I'm blue in the face and cannot figure this error out. I understand the error, it's elementary enough, what I'm trying to say is I don't understand why I'm getting it -- I explicitly gave the compiler the paths.解决方案
It's not implied to be. It is! Both source files start with:package com.myCompany;
That by itself throws a mess of errors... it's not taking into account the junit jar.
When I modify your suggestion like so:javac -cp c:\junit\latest\junit-4.10.jar;c:\workspace\BasicTest\src\test\java c:\workspace\BasicTest\src\main\java\com\myCompany\*.java
It works!!! Thank-you.
But this still isn't solved yet. It compiles -- but I cannot run:C:\workspace\BasicTest\src\main\java>java com.myCompany.Runner<br />Exception in thread "main" java.lang.NoClassDefFoundError: com/myCompany/BasicTest<br /> at com.myCompany.Runner.main(Runner.java:7)<br />Caused by: java.lang.ClassNotFoundException: com.myCompany.BasicTest<br /> at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)<br /> at java.base/jdk.internal.loader.ClassLoaders
这篇关于从命令行编译java的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!