Java类路径错误找不到我的类
我正在尝试使用randoop(Java自动测试生成器),randoop找不到我的类:Java类路径错误找不到我的类,java,classpath,randoop,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.pr
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/Elizer/Desktop/myclasses
中找到
randoop文档位于:
我确信这是一件非常琐碎的事情,但我对这些事情缺乏经验 这是错误的
我的类名为ArrayListError.java,可以在中找到
/home/Elizer/Desktop/myclasses
您的ArrayListError.java是源代码,但java虚拟机的类路径中需要一个已编译的类
编辑:
既然您说您还有.class文件,那么您的问题可以通过两种方式解决
a。没有包裹
运行命令(注意--testclas,它不是目录,应该是类)
java-ea-classpath randoop.1.3.2.jar:/home/eliezer/myclasses
randoop.main.main gentests--testclass=ArrayListError
b。封装类
如果您的ArrayListError确实有包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
在命令行上检查类路径;
我看到home/eliezer/myclasses
,如果没有前面的//code>,您需要设置类路径,以便jvm能够找到所有资源,如类、文件、JAR等。
在您的情况下,ArrayListError
位于目录/home/elizer/Desktop/myclasses
下。您需要将其放置在类路径中。
将类路径指向上述目录后,需要将类名传递给--testclass=ArrayListError
java-ea-classpath randoop.1.3.2.jar:/home/eliezer/Desktop/myclasses randoop.main.main gentests--testclass=ArrayListError
应该能解决你的问题。我建议您搜索设置类路径并继续阅读。home.elizer.Desktop.myclasses
是您的包还是目录结构?@Rp这是一个目录结构-我只测试一个类,它位于/home/elizer/myclasses中,名称为ArrayListError.java,然后您需要将类路径设置为home/eliezer/Desktop/myclasses
('Desktop'在您的类路径中丢失),您需要调用classForName(“ArrayListError”)代码>@Rp我已经做了,现在仍然是错误。如何以及在何处调用classForName(“ArrayListError”)Thanksryjava-ea-classpath randoop.1.3.2.jar:/home/eliezer/Desktop/myclasses randoop.main.main gentests--testclass=ArrayListError
我认为我不需要创建jar文件您不需要创建jar,只要编译包层次结构的根目录在类路径上,也就是在/home/elizer/Desktop/myclasses中,并且您将Desktop添加到了路径中?在这一点上,一切都有点混乱。eliezer@ubuntu:~/Desktop$java-ea-classpath randoop.1.3.2.jar:/home/eliezer/Desktop/myclasses randoop.main.main gentests--testclass=/home/eliezer/Desktop/myclasses/arraylisteror在您的回复中提到对--testclass的更改,这非常相关。接得好。