我正在尝试使用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
应该解决您的问题。我建议您搜索设置类路径并继续阅读。