Java Classpath错误 - 无法找到我的类

时间:2012-08-01 13:36:46

标签: java classpath randoop

我正在尝试使用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

我确信这是微不足道的事情,但我对这些事情缺乏经验。

3 个答案:

答案 0 :(得分:2)

您需要设置类路径,以便jvm能够找到所有资源,如类,文件,罐等。
在您的情况下,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

应该解决你的问题。我建议你搜索设置类路径并继续阅读。

答案 1 :(得分:0)

这是错误的

  

我的类名为ArrayListError.java,位于   /家庭/埃利泽/桌面/ 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

答案 2 :(得分:0)

在命令行上检查您的类路径; 我看到home/eliezer/myclasses,没有前导/