无法让javac自动重新编译源文件

无法让javac自动重新编译源文件,java,classpath,javac,Java,Classpath,Javac,我正在试验javac命令行选项,以便了解-sourcepath和-classpath选项。当我运行javac,尝试了四种不同的命令行选项后,我无法获得重新编译的.class文件 这是我的文件夹结构。请注意,由于测试的原因,Test.java文件位于“bat”文件夹中,这是一个公认的奇怪位置 projects \ prj1 \ bat \ bat.bat Test.java Test.class &

我正在试验
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
关于在命令提示符下执行
javac
,下面是我尝试过的四个选项。我从名为bat.bat的批处理文件中运行了这些命令,该批处理文件位于“bat”文件夹中


在上面所有这些
javac
命令中,我无法为Test.java文件获得重新编译的.class文件。这是因为我在最初编译Test.java文件后没有编辑它吗?请注意,我没有设置
CLASSPATH
环境变量。谢谢。

如果目标/输出文件夹中已经存在类文件,
javac
只会在源java文件自类文件的日期/时间以来被修改的情况下重新编译源java文件


如果要重新编译源文件,请先删除*.class文件,然后再调用
javac

我使用IDE,这样可以确保我的代码根据需要重新编译,而不必保存文件。只需键入代码并运行它。
// 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 ..\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)