ls或ls -a无法识别的Java类文件

时间:2018-12-24 18:34:56

标签: java javac

使用“ 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

当我进入类目录或源目录时,我什么也没得到。我尝试ls -l,两个目录中的总数为0。我尝试了ls -a,终端告诉我“ ..”,我认为那表示其中有两个文件,但我根本看不到它们。我该如何做才能看到用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

1 个答案:

答案 0 :(得分:0)

您在根级别/hope/proj1/...处具有一个目录结构,在该目录结构中您的源文件和类在主目录中具有相同的结构,该目录结构为空,并且在其中执行ls,{{1 }}

这将编译主文件夹之外的Car.java文件

~/hope/proj1 /...

这将编译在主文件夹中找到的Car.java文件,并将类文件也存储在主文件夹中

javac -d /hope/proj1/classes -s /hope/proj1/source Car.java

但是由于您似乎在工作区文件夹中包含了源文件,因此必须将以上内容更改为

javac -d ~/hope/proj1/classes -s ~/hope/proj1/source Car.java