javac没有产生输出

时间:2011-11-28 12:04:04

标签: java cmd javac

我正在尝试使用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的a $$中的痛苦)一切都正确编译并创建.class文件。

我仍然不确定当这个jar在类路径上时,为什么javac会无声地失败,即使使用了详细的开关。

目前,我可以绕过不使用这个罐子。我感谢人们提供的帮助......

2 个答案:

答案 0 :(得分:0)

在第二个文件中,不使用完整路径名,而只使用程序包基本目录中的路径名。假设您的代码位于包org.mypackage中,并且您的源文件位于C:\myproject\src\org\mypackage目录中,请将其放在第二个文件中:

org\mypackage\One.java
org\mypackage\Two.java

在第一个文件中,添加-sourcepath选项:

-sourcepath C:\myproject\src

答案 1 :(得分:0)

我遇到了同样的问题,它似乎与已签名和未签名的第三方jar文件有关:

  • 如果我调用javac并使用未签名的jar文件,一切都按预期工作
  • 如果我在编译代码之前签署了第三方jar文件,那么javac会无声地失败

希望这有帮助, .Andrea