2011-03-01 136 views
0

我正在嘗試重新編譯從Eclipse導出的現有Java項目。有必要重新編譯它,因爲我在安裝了不同(較舊)版本的Java的其他機器上遠程運行模擬。我已經嘗試重新編譯我的.java文件,它指定了有問題的模擬。但是,似乎有必要重新編譯所有其他類等。有沒有人有一個想法如何做到這一點,而不使用Eclipse(我不是其他機器上的管理員,因此Eclipse不可用),而不是手動,因爲該項目是相當巨大的?Java編譯問題,Linux,來自Eclipse的項目在Linux上重新編譯

非常感謝您的任何建議!

+0

無法導出Ant文件的Eclipse? (請參閱Ant進行編譯,它只是一個像GNUMake的工具,嗯,不是) – slezica 2011-03-01 14:09:37

回答

1

我建議你總是有一種命令行方式來構建應用程序。在Java中執行此操作的常用方法是使用ANT(或Maven)。

1
  1. As @Santiago Lezica說,Eclipse可以生成一個Ant文件。

  2. 我相信Eclipse允許您構建比當前運行的目標平臺更舊的目標平臺。這樣你就可以在本地完成所有的構建。

第二種方法的優點是你可以修復從編譯的舊平臺中出現的問題(例如使用新的語言功能,使用新的類/方法),從自己的舒適...工作站。

0

您應該考慮另一個選項:告訴Eclipse爲舊Java版本生成代碼(請參閱編譯器選項)。這樣,即使Eclipse使用Java 5,也可以創建在Java 1.3上運行的代碼。

+0

感謝您的建議。然而,這一點的重點是我想在遠程機器上編譯它。這是一個集羣,因此編譯它應該更好。特別是因爲我可能需要偶爾改變一些班級,如果我必須在其他地方這樣做,這將是相當不方便的。 – 2011-03-01 14:50:35

+0

這不是C重新編譯目標架構上的代碼使其更快。這些類已經編譯完成。爲什麼不做任何修改就重新編譯它們這只是浪費時間。由於Java運行時(JIT)將在運行時對其進行優化,因此生成的代碼不會更快或更好; Java編譯器本身不會優化太多。 – 2011-03-01 20:14:17

0

不確定您的需求是什麼,但是您可以在Linux的(舊)級別爲項目設置編譯器級別安裝。這會導致Eclipse在該版本上重新編譯它,而不是更新的版本。

在我的公司我們使用IBM的Rational Application Developer(而不是純粹的Eclipse),但我假設這個選項在同一個位置。如果右鍵單擊項目,則可以轉至Java編譯器選項,然後將兼容性設置爲Linux上的級別(1.3,1.4等)。

由於編譯Java字節碼應該是可移植的(大多數情況下),這應該會讓你通過大多數問題。

否則,另一種選擇是使用類似Ant或Maven腳本(可以由Eclipse啓動),然後在運行之前使用屬性來設置編譯器。這樣,如果您確實需要「更新」的編譯代碼,並且無法在兩個系統上使用「較舊」的代碼,那麼您不必始終在項目上切換屬性。

+0

謝謝,我會嘗試與Ecplise重新編譯。但我想應該有一種方法可以在遠程機器上編譯? Eclipse方法有點令人不滿意。 – 2011-03-01 14:26:44

+0

所以我會使用別人在這裏提出的建議,並使用Ant或Maven來構建您的項目。將構建文件存儲在項目中可能不是一個好主意。這給了你兩個優點:1)你現在可以在你的Linux機器上在Eclipse之外構建項目。您只需要安裝和配置JDK和Ant或Maven。 2)您可以讓Eclipse運行您的Ant腳本或Maven腳本(如果您安裝了m2eclipse插件)。現在你正在構建相同的,只是你使用Eclipse來啓動它。對我來說最有意義的是這兩種系統的方式。 – 2011-03-02 13:43:55