本文介绍了从命令行编译java的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是文件夹结构:



 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.java

C:\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的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-23 05:47
查看更多