java - 使用 javac 编译 Java 文件集时缺少类文件

标签 java cmd compilation javac

我正在使用javac编译一组Java文件。使用以下命令,我将所有 Java 文件保存到文本文件中:

dir *.java /S /B > files.txt

这里是 files.txt 的简短摘录:

C:\Users\User\Desktop\source\org\apache\commons\lang3\AnnotationUtils.java
C:\Users\User\Desktop\source\org\apache\commons\lang3\ArchUtils.java
C:\Users\User\Desktop\source\org\apache\commons\lang3\ArrayUtils.java
C:\Users\User\Desktop\source\org\apache\commons\lang3\BitField.java
C:\Users\User\Desktop\source\org\apache\commons\lang3\BooleanUtils.java
C:\Users\User\Desktop\source\org\apache\commons\lang3\CharEncoding.java
...

现在我将所有源代码都放在一个文件中,我想使用以下命令来编译它们:

javac -encoding ISO-8859-1 -g -cp @files.txt

输出...

Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

当我现在切换到源文件夹时,我可以看到一些已编译的文件,但不是全部。例如,文件 AnnotationUtils.class 丢失。

我希望在每个 Java 文件中看到一个类文件以及内部类的类文件,或者至少在编译期间看到一条错误消息。

造成这种情况的原因是什么以及如何解决?

<小时/>

最佳答案

问题出在 -cp 参数上。它用于将其他文件添加到类路径,例如 jar 文件。我认为即使我没有指定任何其他文件,当我一直使用它时也没有任何区别。现在我只在我真正需要它时才使用它并且它解决了我的问题。所有预期的文件都在那里。

虽然我不确定为什么这不能编译所有文件。

关于java - 使用 javac 编译 Java 文件集时缺少类文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57560432/

相关文章:

c - 在 Linux 中链接 - 寻找解释

java - 给定场景中的应用服务器是哪一个

java - ehcache与spring 3.0集成

windows - 安装 Cygwin 时在 cmd 中无法识别导出

apache - 如何编译 libmesos.so 文件?

c - 如何使函数具有库内部链接?

java - 重写 equals 和 hashCode - java

java - 如何结合Scene2d和Bullet?

batch-file - qBittorrent、FileBot、mkvmerge - 将所有视频文件重新混合到 *.mkv 并删除进程中的字幕

batch-file - 首次使用后命令提示符 "forgets"命令