2009-08-17 55 views
40

我正在嘗試使用ANT腳本簽署jar文件。我知道這必須指向要運行的jarsigner.exe的JDK目錄,但是當我回顯java.home時,它會返回JRE目錄。如何更改Eclipse/ANT的JAVA.HOME

這不是javac的問題,因爲我可以設置可執行文件的路徑。但是,signjar不存在。

如何更改java.home路徑?當我在我的電腦右鍵單擊並轉到:

屬性>高級>環境變量

「路徑」變量指向正確的JDK(C:\program files\java\jdk\bin)。

更新:在更改下面建議的PATH變量後,文件現在正確簽名。

回答

11

在Windows下你需要遵循:

開始 - >控制面板 - >系統 - >高級 - >環境變量。

...並且您需要設置JAVA_HOME(與您提到的PATH變量不同)來引用JDK主目錄,而不是bin子目錄;例如「C:\ program files \ java \ jdk」。

+0

更改該變量說得那麼腳本犯規崩潰,所以,謝謝你。以上更新 - SF和DSA文件未放置在JAR中 – Ken 2009-08-17 15:23:28

4

另外一定要設置你的JAVA_HOME環境變量。實際上,我通常設置JAVA_HOME,然後在系統的PATH環境變量前面加上字符串「%JAVA_HOME%\bin」,以便如果Java升級或更改,則只需要更改JAVA_HOME變量。

並確保關閉任何命令提示符窗口或打開可能讀取您的環境變量的應用程序,因爲環境變量的更改通常在重新啓動應用程序時纔會發現。

+0

感謝文件現在簽名,但在META-INF文件夾下,我手動簽署jar時沒有收到SF或DSA文件。 WebStart仍然表示未簽名的條目。我需要做些什麼來讓那些出現或者需要這些? – Ken 2009-08-17 15:15:32

47

在Eclipse中,螞蟻java.home變量不是基於Windows的JAVA_HOME環境變量。相反,它被設置爲項目JRE的主目錄。

要更改默認的JRE(例如,將其更改爲JDK),你可以去Windows的>首選項...和選擇基於Java>已安裝的JRE

要更改只是一個單一項目的JRE,你可以去工程 - >屬性並選擇Java構建路徑並選擇標籤。找到JRE系統庫並單擊它,然後選擇編輯並選擇所需的JRE(或JDK)。

如果運行構建文件,你可以選擇運行原樣> Ant構建...並單擊JRE選項卡時不工作,那麼,選擇獨立的JRE並指定JRE你想有。

+0

這對我不起作用 - 從內部運行的測試仍然有eclipse的java環境。 (我使用默認的java運行eclipse,這是1.8 ea,但是該項目無法運行1.8(由於某些ASM東西與1.8編譯類不兼容) - 但ant拒絕監聽Eclipse的默認JDK或項目JDK在Ant Home條目中,沒有任何東西指向JDK – stolsvik 2013-06-05 14:58:45

+0

所以我有點困惑,你的第一句話說「從Ant運行的測試繼承了Eclipse的Java環境」,但你以「Ant拒絕聽到Eclipse的JDK「。如果你希望Eclipse運行1.8版本的項目,但Ant運行1.7版本,那麼看起來你會把項目的JRE設置爲1。8(列出的第二種方法),然後在Ant構建配置中指定備用JRE(列出的第三種方法)。我不知道什麼是Ant主頁條目,我會看看我是否可以刪除它。 – Pace 2013-06-05 19:44:47

+0

這並不影響Ant的JDK選擇,不得不改變stolsvik的答案 – davr 2016-03-20 02:08:05

13

對我來說,螞蟻顯然拒絕聽取Eclipse默認項目JDK的任何配置,並且「Ant Home Entries」的建議沒有牽引力 - 沒有提及JDK的東西。

然而,這個工程:

Menu "Run" -> "External Tools" -> "External Tools Configuration". 
    Goto the node "Ant build", choose the ant buildfile in question. 
    Choose tab "JRE". 
     Select e.g. "Run in same JRE as workspace", or whatever you want. 
0

如果您使用的是Eclipse,請嘗試以下操作:

  • 右鍵單擊Ant構建文件,然後選擇 「屬性」。
  • 點擊「運行/調試設置」,然後點擊啓動配置文件。你應該可以編輯它。
  • 單擊「編輯」後,您應該會看到一個新窗口,其中包含一個「屬性」選項卡,它將顯示一個Ant構建屬性列表。列表中有一個「java.home」屬性。確保它指的是正確的路徑。
7

簡單,執行JAVA版本的Ant在Eclipse:

在Ant文件使用運行方式選項,然後在JRE選項卡中選擇外部工具配置定義你的JDK /你想使用的JRE版本。

0

轉到環境變量,並

JAVA_HOME=C:\Program Files (x86)\Java\jdk1.6.0_37 

直到JDK路徑(排除bin文件夾)
現在設置JAVA_HOME到路徑PATH=%JAVA_HOME%\bin;
這將java的路徑設置爲它使用的是Java的所有應用程序。

對於ANT使用,

ANT_HOME=C:\Program Files (x86)\apache-ant-1.8.2\bin; 

和包括ANT_HOME到PATH,所以路徑將是PATH=%JAVA_HOME%\bin;%ANT_HOME%;

0

設置環境變量

這是我總是忘記的部分。由於您手動安裝Ant,因此您還需要手動設置環境變量。

對於Windows XP:設置在Windows XP環境變量,右擊我的電腦,選擇屬性。然後轉到高級選項卡並單擊底部的環境變量按鈕。

對於Windows 7:要在Windows 7上設置環境變量,請右鍵單擊計算機並選擇屬性。點擊高級系統設置,然後點擊底部的環境變量按鈕。

Windows XP和Windows 7的對話框相同。確保你只處理系統變量而不是用戶變量。

您絕對需要的唯一環境變量是JAVA_HOME,它告訴Ant JRE的位置。如果您已經安裝了JDK,那麼在Windows XP上可能爲c:\Program Files\Java\jdk1.x.x\jre,在Windows 7上可能爲c:\Program Files(x86)\Java\jdk1.x.x\jre。您會注意到它們的路徑中都有空格,這會導致問題。您需要使用重名的名稱[3],而不是完整的名稱。因此對於Windows XP,使用C:\Progra~1\Java\jdk1.x.x\jre,對於Windows 7,如果它安裝在Program Files(x86)文件夾中(否則使用與Windows XP相同),請使用C:\Progra~2\Java\jdk1.6.0_26\jre

僅此一項就足以讓Ant起作用,但爲了方便起見,將Ant二進制路徑添加到PATH變量是個不錯的主意。該變量是一個用分號分隔的目錄列表來搜索可執行文件。爲了能夠在任何目錄下運行ant,Windows需要知道ant二進制文件和java二進制文件的位置。您需要將這兩個都添加到PATH變量的末尾。對於Windows XP,你很可能會增加這樣的事情:

;c:\java\ant\bin;C:\Progra~1\Java\jdk1.x.x\jre\bin 

對於Windows 7,它會是這個樣子:

;c:\java\ant\bin;C:\Progra~2\Java\jdk1.x.x\jre\bin 

完成

一旦你做到了這一點,並應用更改,您需要打開新的命令提示符以查看變量是否設置正確。你應該能夠簡單地運行螞蟻,看到這樣的事情:

Buildfile: build.xml does not exist! 
Build failed 
+2

-1如果你要撕掉別人的工作,至少你可以做什麼, //www.nczonline.net/blog/2012/04/12/how-to-install-apache-ant-on-windows/ – Dan 2014-11-11 19:15:18

1

花了幾個小時今早面臨這個問題。我很可能是這些論壇上最不技術的人。就像請求者一樣,我忍受每一次提醒都要設置%JAVA_HOME%,每次看到這個非光明的建議時都會咬着舌頭。最後,我考慮了我的筆記本電腦的JRE是否在我的JDK之前版本(因爲JRE會自動更新),並且我安裝了最新的JDK。這種差異很小,源於幾個星期的不同版本。我在jdk v 1.0865上開始了這個錯誤。 JRE是1.0866。安裝後,我有jdk v1.0874和等效的JRE。那時,我指示Eclipse JRE專注於我的JDK,一切都很好。我的java.home的println甚至反映了正確的JRE。

如此多的反饋重複了錯誤的反應。我強烈要求人們閱讀別人的反饋意見,以避免無用的冗餘。請注意,SG

0

除了驗證可執行文件是否在您的路徑中,您還應該確保Ant可以在您的JDK中找到tools.jar。解決這個問題的最簡單的方法是將tools.jar加入Ant classpath中:

Adding tools.jar to Ant classpath.