Java 错误包不存在
Java error Package does not exist
我的主文件夹是ABC里面有2个文件夹叫classes和src,src里面有2个文件夹叫objectFile和testFile,objectFile里面是ABC.java而testFile里面是TestABC.java.(在 classes 中是相同的,但 .class 代替)现在 ABC 包含
package objectFile;
public class ABC
private int something;
而测试ABC.java 包含
package testFile;
import objectFile.ABC;
public class TestABC
错误说测试ABC.java:2:错误:包对象文件不存在
导入objectFile.ABC;
您是否指定 sourcepath?这告诉编译器在哪里可以找到它需要导入的 类。
javac -sourcepath src -d classes src\testFile\TestABC.java
请注意,这不仅会编译 TestABC.java,还会编译 ABC.java(因为您的 import
声明)。
然后您可以使用 jar
命令将 类 放入存档中:
jar cfe myJavaArchive.jar testFile/TestABC -C classes .
这将c用f文件名创建一个新的jar myJavaArchive.jar 和 entrypoint testFile/TestABC 由 类[=42= 中的所有文件制成]目录。
因为是入口,TestABC必须有一个main
方法,例如
package testFile;
import objectFile.ABC;
public class TestABC {
public static void main(String[] args) {
ABC abc1 = new ABC(1);
ABC abc2 = new ABC(2);
System.out.println("abc1.i is " + abc1.getI());
System.out.println("abc2.i is " + abc2.getI());
}
}
和
package objectFile;
public class ABC {
private int i;
public ABC(int i) {
this.i = i;
}
public int getI() {
return i;
}
}
然后你可以使用java -jar
命令执行代码:
java -jar myJavaArchive.jar
我的主文件夹是ABC里面有2个文件夹叫classes和src,src里面有2个文件夹叫objectFile和testFile,objectFile里面是ABC.java而testFile里面是TestABC.java.(在 classes 中是相同的,但 .class 代替)现在 ABC 包含
package objectFile;
public class ABC
private int something;
而测试ABC.java 包含
package testFile;
import objectFile.ABC;
public class TestABC
错误说测试ABC.java:2:错误:包对象文件不存在
导入objectFile.ABC;
您是否指定 sourcepath?这告诉编译器在哪里可以找到它需要导入的 类。
javac -sourcepath src -d classes src\testFile\TestABC.java
请注意,这不仅会编译 TestABC.java,还会编译 ABC.java(因为您的 import
声明)。
然后您可以使用 jar
命令将 类 放入存档中:
jar cfe myJavaArchive.jar testFile/TestABC -C classes .
这将c用f文件名创建一个新的jar myJavaArchive.jar 和 entrypoint testFile/TestABC 由 类[=42= 中的所有文件制成]目录。
因为是入口,TestABC必须有一个main
方法,例如
package testFile;
import objectFile.ABC;
public class TestABC {
public static void main(String[] args) {
ABC abc1 = new ABC(1);
ABC abc2 = new ABC(2);
System.out.println("abc1.i is " + abc1.getI());
System.out.println("abc2.i is " + abc2.getI());
}
}
和
package objectFile;
public class ABC {
private int i;
public ABC(int i) {
this.i = i;
}
public int getI() {
return i;
}
}
然后你可以使用java -jar
命令执行代码:
java -jar myJavaArchive.jar