Java Classpath错误 – 无法找到我的类
我试图使用randoop(Java自动测试生成器)和randoop找不到我的类:
eliezer@ubuntu:~/Desktop$ java -ea -classpath \ randoop.1.3.2.jar:home/eliezer/myclasses \ randoop.main.Main gentests \ --testclass=/home/eliezer/Desktop/myclasses/ArrayListError policy = sun.security.provider.PolicyFile@85af80 Throwable thrown while handling command:java.lang.Error:\ classForName(/home/eliezer/Desktop/myclasses/ArrayListError) java.lang.Error: classForName(/home/eliezer/Desktop/myclasses/ArrayListError) at randoop.util.Reflection.classForName(Reflection.java:206) at randoop.util.Reflection.loadClassesFromList(Reflection.java:386) at randoop.main.GenInputsAbstract.findClassesFromArgs(GenInputsAbstract.java:507) at randoop.main.GenTests.handle(GenTests.java:184) at randoop.main.Main.nonStaticMain(Main.java:80) at randoop.main.Main.main(Main.java:42) Caused by: java.lang.ClassNotFoundException: \ /home/eliezer/Desktop/myclasses/ArrayListError at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:186) at randoop.util.Reflection.classForName(Reflection.java:198) ... 5 more Randoop failed. Last sequence under execution:null
我的类名为ArrayListError.java,可在/home/eliezer/Desktop/myclasses
。
randoop文档位于: https ://randoop.github.io/randoop/manual/index.html。
我确信这是微不足道的事情,但我对这些事情缺乏经验。
您需要设置类路径,以便jvm能够找到所有资源,如类,文件,jar等。
在您的情况下, ArrayListError
位于目录/home/eliezer/Desktop/myclasses
。 您需要将它放在类路径中。 将类路径指向提到的目录后,需要将类名传递给--testclass=ArrayListError
。
java -ea -classpath randoop.1.3.2.jar:/home/eliezer/Desktop/myclasses randoop.main.Main gentests --testclass=ArrayListError
应该解决你的问题。 我建议你搜索设置classpath并继续阅读。
在命令行上检查类路径; 我看到home/eliezer/myclasses
,没有领先/
。
这是错的
我的类名为ArrayListError.java,可在/ home / eliezer / Desktop / myclasses中找到。
您的ArrayListError.java是源代码,但java虚拟机在其类路径中需要一个已编译的类。
编辑:既然你说你也有.class文件,那么你的问题可以通过两种方式解决
一个。 没有包裹
运行命令(照顾–testclas,它不是目录,它应该是类)
java -ea -classpath randoop.1.3.2.jar:/ home / eliezer / myclasses randoop.main.Main gentests –testclass = ArrayListError
湾 包中的类
如果您的ArrayListError确实有package com.test;
在myclasses目录中创建一个目录/ com / test并运行以下命令
java -ea -classpath randoop.1.3.2.jar:/ home / eliezer / myclasses / com / test / randoop.main.Main gentests –testclass = com.test.ArrayListError