我已直接在C:\上创建了一个java文件Banana.java,如下所示:
package Bananas;
public class Banana{
...
}
然后我用这个命令编译它:
javac -d . Banana.java
它使用类文件创建目录:C:\ Bananas \ Banana.class 然后我把它放在一个jar文件中:
jar cvf Bananas.jar C:\Bananas\*.class
然后我把这个jar文件放在我的环境变量的Classpath的末尾,如下所示:; C:\ Bananas.jar
然后我创建另一个使用此jar文件的java文件Test.java:
import Bananas.Banana;
public class Test{
...
}
当我通过以下方式编译它时:
javac Test.java
它给了我错误:包香蕉不存在。 有人看到我的错误在哪里吗?
谢谢。
答案 0 :(得分:0)
它找不到你的课的原因是因为你没有直接创建jar。您在jar中包含了实际的类 - 但不包含目录。当您导入Bananas.Banana
时,编译器正在类路径中的某个子目录Banana
中查找类Bananas
。找不到此类,因为您的jar只包含Banana.class
而没有任何子目录。您需要使用完整的子目录结构创建jar文件:
jar cvf Bananas.jar C:\Bananas
这将包括目录Bananas
及其中的所有类。