2011-11-28 289 views
3

我想從命令行使用javac編譯一個java項目,但我在命令行上沒有輸出。另外,.class文件沒有被生成。javac不產生輸出

我使用調用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 

的問題是,有在命令行上沒有輸出(如果我錯過了,拼的命令行開關之一則有錯誤輸出在命令行中)並且沒有.class文件在classes文件夾中生成。 此外,如果我將'-Xstdout output.txt'開關添加到選項文件並嘗試編譯。 javac命令退出並創建output.txt文件,但文件中沒有信息。

我的問題是: 我使用錯誤的語法來調用javac,我應該如何改變它?

編輯:

我改變了選項和javaFiles文件在Jasper的答覆中提到,但現在我得到以下錯誤 :

* __ *的javac @options @javaFiles
的javac:文件未找到:com \ compname \ cloud \ automation \ portal \ definitions \ landing \ LandingPage.java
用法:javac <options> <source files>
使用-help查看可能的選項列表

編輯2:

好吧,這個問題是與類路徑中的罐子之一。當那個jar被移除時(每次移除每個jar的痛苦)一切都編譯正確,並創建.class文件。

我仍然不確定爲什麼javac會在該jar放在類路徑中時靜靜地失敗,即使使用了詳細開關。

目前,我可以避開這個罐子。我讚賞人們提供的幫助...

+0

你從哪個目錄調用'javac ...'?它應該從包層次結構根目錄的文件(即'com'目錄所在的目錄)中調用。 –

回答

0

在第二個文件中,不是使用完整路徑名,而是使用包的基本目錄中的路徑名。假設你的代碼是在一個包org.mypackage,和你的源文件所在的目錄C:\myproject\src\org\mypackage,把這個在第二個文件:

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

在第一個文件,添加一個-sourcepath選項:

-sourcepath C:\myproject\src 
+0

在您的輸入上編輯原始帖子 – bmooney

+0

您是否還添加了'-sourcepath'選項? – Jesper

0

我遇到了同樣的問題,似乎與簽署vs.未簽名的第三方jar文件:

  • 如果我叫的javac和使用簽名的JAR文件,一切正常
  • 如果我編譯我的代碼之前籤第三方jar文件,javac的默默失敗

希望這會有幫助, 。安德里亞