我正在尝试使用javac
命令行选项,以了解-sourcepath
和-classpath
选项。当我运行javac
时,为它尝试了四种不同的命令行选项,我无法获得重新编译的.class文件。
这是我的文件夹结构。请注意,由于测试,Test.java文件位于" bat"文件夹,这是一个奇怪的位置。
projects \ prj1 \ bat \ bat.bat
Test.java
Test.class <--- unable to obtain recompiled file.
src \ Main.java
Main.class
我的两个.java测试文件的内容是:
// Main.java, located in the src folder
class Main {
public static void main(String[] args) {
new Test();
}
}
// Test.java, located in the bat folder
class Test {}
关于在命令提示符下执行javac
,这里有四个我尝试过的选项。我从名为bat.bat的批处理文件中运行这些命令,该文件位于&#34; bat&#34;文件夹中。
javac ..\src\Main.java (no sourcepath, no cp)
javac -sourcepath . ..\src\Main.java (sourcepath)
javac -cp . ..\src\Main.java (cp)
javac -sourcepath . -cp . ..\src\Main.java (sourcepath, cp)
在上面的所有这些javac
命令中,我无法获得Test.java文件的重新编译的.class文件。这是因为我没有编辑Test.java文件,因为最初编译它?请注意,我没有设置CLASSPATH
环境变量。感谢。
答案 0 :(得分:3)
如果目标/输出文件夹中已存在类文件,javac
将仅重新编译源java文件(如果已从类文件的日期/时间开始修改它。
如果要重新编译源文件,请先调用* .class文件,然后再调用javac
。