编译器找不到Class.forName()的类

时间:2017-08-04 15:21:24

标签: java unit-testing intellij-idea annotations

尝试从String OUTPUT_FOLDER = "pathwhereyouwantcreatefolders"; for(int i = 1 ;i<5;i++){ File folder = new File(OUTPUT_FOLDER+"_"+i); if(!folder.exists()){ folder.mkdir(); } }//for 编译.java文件。

Thinking in Java

Сlasspackage pck; /... public class AtUnitExample1 { public String methodOne() { return "This is methodOne"; } @Test boolean testMethodOne() { return methodOne().equals("This is methodOne"); } // ... public static void main(String[] args) throws Exception { // OSExecute.command("java net.mindview.atunit.AtUnit pck.AtUnitExample1"); // ORIGINAL OSExecute.command("java -classpath ./out/production/Exercises/ net.mindview.atunit.AtUnit pck.AtUnitExample1"); // My version } } AtUnit测试的一种实现,它使用反射检查带有JUnit注释的方法。它将сlass的名称作为命令行参数进行检查。

但是当我尝试编译原始文件时,编译器抛出一个@Test,表示OSExecuteException

我认为这可能是类的不同位置的问题并且更改了命令。在这种情况下,我有Could not find or load main class net.mindview.atunit.AtUnit的消息:FileNotFoundException/mnt/data-disk/MEGA/Программирование/Java/Exercises/pck.AtUnitExample1.class (No such file or directory)尝试调用AtUnit时会出现例外情况。

怎么了?

包的结构:

enter image description here

enter image description here

UPD:我用西里尔符号重命名了该文件夹,但没有帮助。

UPD2:项目类路径:

Class.forName()

1 个答案:

答案 0 :(得分:0)

我已经找到了解决方案。我刚刚更改了OSExecute.command()中的命令,根据我的情况,它必须是java -classpath ./out/production/Exercises/ net.mindview.atunit.AtUnit ./out/production/Exercises/pck/AtUnitExample1.class