Java Class ls 或 ls -a 无法识别的文件
Java Class Files not recognized by ls or ls -a
在我使用“javac -d /mypath/classes -s /mypath/source filename.java”成功编译两个 java 文件后,我 运行使用“ java -classpath -d /mypath/classes Main 从源目录中获取 Main 文件
终端会成功输出如下:
Make: Mazda
Color: White
Year: 1997
Model: Miata MX-5
当我访问 classes 目录或源目录时,我什么也得不到。我尝试 ls -l 并且我在两个目录中总计 0。我尝试了 ls -a 并且终端告诉我“. ..”我认为这表示那里有两个文件,但我根本看不到它们。如何才能看到创建的 class 文件和用 javac
编译的源文件?
#Car.java
public class Car {
String model;
String make;
String color;
int year;
public void getCarFacts(){
System.out.println("Model: " + model);
System.out.println("Make: " + make);
System.out.println("Color: " + color);
System.out.println("Year: " + year);
}
}
#Main.java
public class Main{
public static void(String args[]){
Car myCar
myCar = new Car();
myCar.model = "Miata MX-5";
myCar.make = "Mazda";
myCar.color = "White";
myCar.year = 1997;
myCar.getCarFacts();
}
}
# ===File Tree===
├── classes
├── source
└── workspace
├── Car.java
└── Main.java
从开始到结束的整个终端输出
achrotz@penguin:~/hope/proj1$ tree ./
./
├── classes
├── source
└── workspace
├── Car.java
└── Main.java
3 directories, 2 files
achrotz@penguin:~/hope/proj1$ cd workspace
achrotz@penguin:~/hope/proj1/workspace$ javac -d /hope/proj1/classes -s /hope/proj1/source Car.java
achrotz@penguin:~/hope/proj1/workspace$ javac -d /hope/proj1/classes -s /hope/proj1/source Main.java
achrotz@penguin:~/hope/proj1/workspace$ cd ..
achrotz@penguin:~/hope/proj1$ cd source
achrotz@penguin:~/hope/proj1/source$ java -classpath /hope/proj1/classes Main
Make: Mazda
Color: White
Year: 1997
Model: Miata MX-5
achrotz@penguin:~/hope/proj1/source$ cd ..
achrotz@penguin:~/hope/proj1$ cd source
achrotz@penguin:~/hope/proj1/source$ ls -a
. ..
achrotz@penguin:~/hope/proj1/source$ ls -l
total 0
achrotz@penguin:~/hope/proj1/source$ ls
achrotz@penguin:~/hope/proj1/source$ cd ..
achrotz@penguin:~/hope/proj1$ cd classes
achrotz@penguin:~/hope/proj1/classes$ ls -a
. ..
achrotz@penguin:~/hope/proj1/classes$ ls -l
total 0
achrotz@penguin:~/hope/proj1/classes$ ls
你在根级别有一个目录结构 /hope/proj1/...
你的源文件和 classes 在那里你有相同的结构在你的主目录中是空的并且你执行你的 ls
, ~/hope/proj1 /...
这将编译在您的主文件夹外找到的 Car.java 文件
javac -d /hope/proj1/classes -s /hope/proj1/source Car.java
这将编译在您的主文件夹中找到的 Car.java 文件,并将 class 文件也存储在主文件夹中
javac -d ~/hope/proj1/classes -s ~/hope/proj1/source Car.java
但由于您似乎在工作区文件夹中有源文件,因此必须将上面的内容更改为
javac -d ~/hope/proj1/classes -s ~/hope/proj1/workspace Car.java
在我使用“javac -d /mypath/classes -s /mypath/source filename.java”成功编译两个 java 文件后,我 运行使用“ java -classpath -d /mypath/classes Main 从源目录中获取 Main 文件 终端会成功输出如下:
Make: Mazda
Color: White
Year: 1997
Model: Miata MX-5
当我访问 classes 目录或源目录时,我什么也得不到。我尝试 ls -l 并且我在两个目录中总计 0。我尝试了 ls -a 并且终端告诉我“. ..”我认为这表示那里有两个文件,但我根本看不到它们。如何才能看到创建的 class 文件和用 javac
编译的源文件?
#Car.java
public class Car {
String model;
String make;
String color;
int year;
public void getCarFacts(){
System.out.println("Model: " + model);
System.out.println("Make: " + make);
System.out.println("Color: " + color);
System.out.println("Year: " + year);
}
}
#Main.java
public class Main{
public static void(String args[]){
Car myCar
myCar = new Car();
myCar.model = "Miata MX-5";
myCar.make = "Mazda";
myCar.color = "White";
myCar.year = 1997;
myCar.getCarFacts();
}
}
# ===File Tree===
├── classes
├── source
└── workspace
├── Car.java
└── Main.java
从开始到结束的整个终端输出
achrotz@penguin:~/hope/proj1$ tree ./
./
├── classes
├── source
└── workspace
├── Car.java
└── Main.java
3 directories, 2 files
achrotz@penguin:~/hope/proj1$ cd workspace
achrotz@penguin:~/hope/proj1/workspace$ javac -d /hope/proj1/classes -s /hope/proj1/source Car.java
achrotz@penguin:~/hope/proj1/workspace$ javac -d /hope/proj1/classes -s /hope/proj1/source Main.java
achrotz@penguin:~/hope/proj1/workspace$ cd ..
achrotz@penguin:~/hope/proj1$ cd source
achrotz@penguin:~/hope/proj1/source$ java -classpath /hope/proj1/classes Main
Make: Mazda
Color: White
Year: 1997
Model: Miata MX-5
achrotz@penguin:~/hope/proj1/source$ cd ..
achrotz@penguin:~/hope/proj1$ cd source
achrotz@penguin:~/hope/proj1/source$ ls -a
. ..
achrotz@penguin:~/hope/proj1/source$ ls -l
total 0
achrotz@penguin:~/hope/proj1/source$ ls
achrotz@penguin:~/hope/proj1/source$ cd ..
achrotz@penguin:~/hope/proj1$ cd classes
achrotz@penguin:~/hope/proj1/classes$ ls -a
. ..
achrotz@penguin:~/hope/proj1/classes$ ls -l
total 0
achrotz@penguin:~/hope/proj1/classes$ ls
你在根级别有一个目录结构 /hope/proj1/...
你的源文件和 classes 在那里你有相同的结构在你的主目录中是空的并且你执行你的 ls
, ~/hope/proj1 /...
这将编译在您的主文件夹外找到的 Car.java 文件
javac -d /hope/proj1/classes -s /hope/proj1/source Car.java
这将编译在您的主文件夹中找到的 Car.java 文件,并将 class 文件也存储在主文件夹中
javac -d ~/hope/proj1/classes -s ~/hope/proj1/source Car.java
但由于您似乎在工作区文件夹中有源文件,因此必须将上面的内容更改为
javac -d ~/hope/proj1/classes -s ~/hope/proj1/workspace Car.java