我无法使用 vscode 将一个文件的 class 导入到 Java 中子文件夹中的另一个文件
I cannot import class of one file to another in a subfolder in Java using vscode
如何在子文件夹的不同目录中导入 class?
我是 Java 编程语言的新手,我想通过导入他们的包在其他目录中使用 class,但我做不到!!
我有一辆class叫车。
package ir.tclas.clasor.models;
public class Car {
private String Models;
private String Name;
private String Color;
private Integer weigth;
public void setWeigth(Integer weigth) {
if (weigth > 50)
this.weigth = 45;
else {
this.weigth = weigth;
}
}
public String getModels() {
if (Models == null)
Models = "NO_Name";
return Models;
}
public void horn() {
System.out.println("Beeeeeep!!!");
}
}
现在我想从 MainApp 导入汽车
package ir.tclas.clasor;
import ir.tclas.clasor.models.Car;
public class MainApp {
public static void main(String[] args) {
Car bmw = new Car();
bmw.setName("BMW");
bmw.setColor("Blue");
bmw.setWeigth(55);
bmw.horn();
System.out.println(bmw.getName());
System.out.println(bmw.getModels());
System.out.println(bmw.getColor());
System.out.println(bmw.getWeigth());
}
}
这是我在 运行 我的代码之后的输出:
PS E:\java_pj[=15=]1\demo> cd
"e:\java_pj[=15=]1\demo\src\main\java\ir\tclas\clasor\" ; if ($?) {
javac MainApp.java } ; if ($?) { java MainApp.java }
MainApp.java:4: error: package ir.tclas.clasor.models does not exist
import ir.tclas.clasor.models.Car;
^
MainApp.java:9: error: cannot find symbol
Car bmw = new Car();
^
symbol: class Car
location: class MainApp
MainApp.java:9: error: cannot find symbol
Car bmw = new Car();
^
symbol: class Car
location: class MainApp
3 errors
PS E:\java_pj[=15=]1\demo\src\main\java\ir\tclas\clasor>
谁能告诉我怎么做?
Code Runner 在编译 .java 文件时不包含包,这就是发生错误的原因,您应该手动更改 Settings.json:
中的命令
"code-runner.executorMap": {
"java": "cd e:/java_pj/001/demo/src/main/java && javac ir/tclas/clasor/models/Car.java && javac ir/tclas/clasor/$fileName && java ir/tclas/clasor/$fileNameWithoutExt",
}
或者您可以通过 Java Extension 直接禁用扩展 Code Runner 和 运行 您的项目。在 Car.java
中添加 getter 和 setter 后,您的代码运行良好,没有显示任何错误:
如何在子文件夹的不同目录中导入 class?
我是 Java 编程语言的新手,我想通过导入他们的包在其他目录中使用 class,但我做不到!!
我有一辆class叫车。
package ir.tclas.clasor.models;
public class Car {
private String Models;
private String Name;
private String Color;
private Integer weigth;
public void setWeigth(Integer weigth) {
if (weigth > 50)
this.weigth = 45;
else {
this.weigth = weigth;
}
}
public String getModels() {
if (Models == null)
Models = "NO_Name";
return Models;
}
public void horn() {
System.out.println("Beeeeeep!!!");
}
}
现在我想从 MainApp 导入汽车
package ir.tclas.clasor;
import ir.tclas.clasor.models.Car;
public class MainApp {
public static void main(String[] args) {
Car bmw = new Car();
bmw.setName("BMW");
bmw.setColor("Blue");
bmw.setWeigth(55);
bmw.horn();
System.out.println(bmw.getName());
System.out.println(bmw.getModels());
System.out.println(bmw.getColor());
System.out.println(bmw.getWeigth());
}
}
这是我在 运行 我的代码之后的输出:
PS E:\java_pj[=15=]1\demo> cd
"e:\java_pj[=15=]1\demo\src\main\java\ir\tclas\clasor\" ; if ($?) {
javac MainApp.java } ; if ($?) { java MainApp.java }
MainApp.java:4: error: package ir.tclas.clasor.models does not exist
import ir.tclas.clasor.models.Car;
^
MainApp.java:9: error: cannot find symbol
Car bmw = new Car();
^
symbol: class Car
location: class MainApp
MainApp.java:9: error: cannot find symbol
Car bmw = new Car();
^
symbol: class Car
location: class MainApp
3 errors
PS E:\java_pj[=15=]1\demo\src\main\java\ir\tclas\clasor>
谁能告诉我怎么做?
Code Runner 在编译 .java 文件时不包含包,这就是发生错误的原因,您应该手动更改 Settings.json:
中的命令"code-runner.executorMap": {
"java": "cd e:/java_pj/001/demo/src/main/java && javac ir/tclas/clasor/models/Car.java && javac ir/tclas/clasor/$fileName && java ir/tclas/clasor/$fileNameWithoutExt",
}
或者您可以通过 Java Extension 直接禁用扩展 Code Runner 和 运行 您的项目。在 Car.java
中添加 getter 和 setter 后,您的代码运行良好,没有显示任何错误: