使用 javac 编译一组 Java 文件时缺少类文件

我正在使用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

与输出...

注意:某些输入文件使用或覆盖已弃用的 API。
注意:使用 -Xlint:deprecation 重新编译以获取详细信息。
注意:某些输入文件使用未经检查或不安全的操作。
注意:使用 -Xlint:unchecked 重新编译以获取详细信息。

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

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

是什么原因造成的,我该如何解决?


  • 我正在使用org.apache.commons.lang3的来源

  • 我尝试编译:

    • OpenJDK 11

    • JDK 11

    • JDK 8


繁星淼淼
浏览 136回答 1
1回答

POPMUISE

问题是-cp争论。它用于将其他文件添加到类路径,如 jar 文件。我认为即使我没有指定任何其他文件,如果我一直使用它也不会有任何区别。现在我只在我真的需要它时才使用它,它解决了我的问题。所有预期的文件都在那里。虽然我不确定为什么这不能编译所有文件。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java