Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ls或ls-a无法识别Java类文件_Java_Javac - Fatal编程技术网

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

ls或ls-a无法识别Java类文件,java,javac,Java,Javac,在使用“javac-d/mypath/classes-s/mypath/sourcefilename.java”成功编译两个java文件之后,我使用“java-classpath-d/mypath/classes Main”从源目录运行主文件 终端将成功输出如下所示: Make: Mazda Color: White Year: 1997 Model: Miata MX-5 当我调用classes目录或source目录时,我什么也得不到。我尝试ls-l,在两个目录中总共0个。我试过ls-a,终

在使用“javac-d/mypath/classes-s/mypath/sourcefilename.java”成功编译两个java文件之后,我使用“java-classpath-d/mypath/classes Main”从源目录运行主文件 终端将成功输出如下所示:

Make: Mazda
Color: White
Year: 1997
Model: Miata MX-5
当我调用classes目录或source目录时,我什么也得不到。我尝试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

在根目录级别有一个目录结构,其中包含源文件和类,然后在主目录中有相同的结构,该结构为空,并且在主目录中执行
ls
~/hope/proj1/…

这将编译在主文件夹外找到的Car.java文件

javac -d /hope/proj1/classes -s /hope/proj1/source Car.java
这将编译主文件夹中的Car.java文件,并将类文件存储在主文件夹中

javac -d ~/hope/proj1/classes -s ~/hope/proj1/source Car.java
但是,由于您的工作区文件夹中似乎有源文件,因此必须将上述文件更改为

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

请分享目录结构和终端输出的屏幕截图。请确保在这两种情况下对同一个目录执行命令。谢谢nullpointer,我是堆栈溢出新手,在格式化问题时遇到问题。“我运行…使用'java-classpath-d/mypath/classes Main.java'”不,您不需要。您运行时没有
.java
扩展。--另外,该代码没有编译,只是注意到您共享的输出与您共享的类也不匹配。一定要确保这里提供的内容在有人试图验证它时足够正常。我尝试了ls-a,终端告诉我“…”。和。。不是文件,而是目录路径
是当前目录,
是当前目录的父目录。这些对你来说是个麻烦。你能帮我澄清一下吗,我不确定你在说什么/hope表示磁盘上目录结构顶部的文件夹,~/hope表示主目录中的文件夹。执行
ls-al/
时,您应该会在其他内容中看到一个
hope`文件夹,然后执行'ls-al~/
时,您还应该在主文件夹中有一个文件夹
hope
以及文件和文件夹。执行这两个命令时,我确实会看到hope目录和其他内容。但是,我没有看到编译的Car.class和Main.class。当然,这只是为了帮助你理解两者之间的区别,你仍然需要像以前一样深入挖掘<例如,代码>ls-al/hope/proj1/classes或
cd/hope/proj1
后跟
ls-al classes/