我正在尝试使用在Java档案库中创建的类,这是我的目录结构:
所有这些文件所在的目录是:/home/user/learning_java
,
现在我已经看到了这个问题:using classes in java archieve,但是由于某种原因,这并不能解决我的问题(因此这不是重复的)。
我仅使用文本编辑器 vscode ,因此只能从终端(ubuntu上的AM)进行编译。
请忽略.class文件,
constructor.java
文件具有源代码:
package com.beez.java;
public class constructor {
private String name;
private int age;
private int weight;
public constructor(String var1, int var2) {
this.name = var1;
this.age = var2;
this.weight();
this.weight = this.get_weight();
}
public void weight() {
double var1 = 5.13D;
this.weight = (int)((double)this.age * var1 + 3.0D);
}
public int get_weight() {
return this.weight;
}
public String get_name() {
return this.name;
}
public int get_age() {
return this.age;
}
}
,而run_test.java
具有源代码:
import com.beez.java.construc.constructor;
import static java.lang.System.*;
public class run_test{
public static void main(String[] args){
constructor niraj = new constructor("niraj", 12);
int niraj_weight = niraj.get_weight();
out.println("weight of niraj: "+niraj_weight);
}
}
然后我从目录/home/user/learning_java
在终端中进行编译,该目录是run_test.java
所在的目录,使用:
javac -classpath '.:com.beez.java.construc.jar' run_test.java
这是我得到的错误:
run_test.java:1: error: package com.beez.java.construc does not exist
import com.beez.java.construc.constructor;
^
run_test.java:7: error: cannot find symbol
constructor niraj = new constructor("niraj", 12);
^
symbol: class constructor
location: class run_test
run_test.java:7: error: cannot find symbol
constructor niraj = new constructor("niraj", 12);
^
symbol: class constructor
location: class run_test
3 errors
我正在犯什么错误?
答案 0 :(得分:1)
在主类中,您正在导入错误的类。当您将软件包声明为“ com.beez.java”作为软件包声明语句时,mian类将导入“ com.beez.java.construc.constructor”。要么在run_test类中更正导入,要么在“ com.beez.java.construc”包中移动构造函数类。