【发布时间】:2012-01-07 21:27:32
【问题描述】:
我正在尝试使用 javac 从命令行编译一个 java 项目,但我在命令行上没有得到任何输出。此外,没有生成 .class 文件。
我用来调用 javac 命令的确切语法如下:
javac @options @javaFiles
选项文件的内容如下:
-g
-verbose
-d classes
-classpath cp1;cp2;cp3
其中 cp1、2、3 等指的是我机器上的 jar 文件。 javaFiles 文件有一个我希望编译的 java 文件列表:
C:\path\to\dir\one.java
C:\path\to\dir\two.java
问题是命令行上没有输出(如果我拼错了一个命令行开关,那么命令行上就会有错误输出)并且在 classes 文件夹中没有生成 .class 文件。 此外,如果我将“-Xstdout output.txt”开关添加到选项文件并尝试编译。 javac 命令退出并创建了 output.txt 文件,但文件中没有任何信息。
我的问题是: 我是否使用错误的语法来调用 javac,我应该如何更改它?
编辑:
我更改了 Jasper 的回答中提到的选项和 javaFiles 文件,但我得到了 现在出现以下错误:
*__* javac @options @javaFiles
javac:找不到文件:com\compname\cloud\automation\portal\definitions\landing\LandingPage.java
用法:javac <options> <source files>
使用 -help 获取可能选项的列表
编辑 2:
好的,这个问题出在类路径中的一个 jar 上。当那个 jar 被移除时(每次移除每个 jar 的痛苦),一切都会正确编译并创建 .class 文件。
我仍然不确定为什么当这个 jar 在类路径上时 javac 会静默失败,即使使用了详细开关。
目前,我可以不用这个罐子。感谢人们提供的帮助...
【问题讨论】:
-
您从哪个目录调用
javac ...?它应该从包层次结构根目录的文件中调用(即com目录所在的目录)。