2009-12-09 44 views
0

我使用Eclipse進行Java開發。如何讓Eclipse自動刪除我的exe文件

在我的工作區的子目錄中有一個* .exe文件,它不斷被刪除。

具體而言,其中一個項目致力於使用MSVC進行C++開發;那裏沒有Java。這個項目的根目錄有cpp和h文件,我使用MSVC生成/bin目錄下的exe文件。

作爲其內置構建過程的一部分,Eclipse在編譯* .java文件時刪除了此exe文件,顯然是因爲它認爲exe文件是二進制輸出。請注意,在任何/目標目錄中,exe是而不是

順便說一下,我使用的是Maven-Eclipse插件,但是當Eclipse構建工作區時,這種行爲顯然會發生,而不是Maven運行的一部分。

我寧願將exe保存在這個目錄中;它是合適的地方,所以我寧願不去努力將它作爲解決方法。 我該如何防止這種情況發生?在Eclipse中是否有一些配置可以說明構建時不會清理exe文件?

+1

莫非你的細節,而Eclipse項目設置中現有的文件夾結構? – 2009-12-18 21:47:40

+0

您應提供調查 – 2009-12-21 11:32:54

回答

3

的問題是你是存儲在/ bin中的可執行文件,這是一個Eclipse輸出目錄。每次執行乾淨的構建時都會刪除該目錄。解決方案:將您的可執行文件存儲在別處(即/ exe)。

+0

這很有道理!我會試試這個。 – 2009-12-20 15:28:50

+0

或者,將項目 - >屬性 - > Java構建路徑 - >默認輸出文件夾設置爲一些無意義的名稱(因爲這個「項目」實際上沒有任何Java。 – 2009-12-20 15:32:32

+0

另外,可以設置Project-> Java Compiler-> Building - >啓用項目特定設置 - >篩選資源*。*,並取消選擇「清理輸出文件夾」。 – 2009-12-21 11:42:45

3

您可以嘗試將.exe設置爲「只讀」以便快速修復。

+0

偷偷摸摸的,但有效的:) – orip 2009-12-17 23:21:49

0

我假設這個子目錄是Eclipse的'target'目錄,以便在Java程序當前目錄中具有EXE文件。您可以(例如)在Eclipse中啓動您的程序,並使用程序讀取的-Dsettingname =%path%(從System.getProperty(「settingname」))來通知它該exe文件的位置。

如果省略該設置,則程序可以繼續呈現當前目錄,使您可以在創建可分發組件時將其捆綁。

+0

>構建路徑的輸出文件夾 由於最小的工作空間,但它不是一個輸出或目標文件夾。請參閱我的評論上面的托爾比約恩Ravn的安徒生 – 2009-12-09 19:33:37

3

當Eclipse清理它時,通常發生的唯一情況是在構建路徑的輸出文件夾中。

最簡單的方法是創建一個新的源文件夾,並將該exe文件放入與您希望它在輸出文件夾中結束的位置相對應的包中。構建過程會根據情況自動複製。這與您需要以類路徑結束的屬性和其他文件的方式相同。

+0

>構建路徑的輸出文件夾 感謝響應,但它不是一個輸出或目標文件夾。實際上,在我的工作區中,這是一個沒有Java的Eclipse項目,只有C++。這個項目的根目錄中有cpp和h文件,我使用MSVS將它們編譯到/ bin子目錄中的exe文件中。我希望Eclipse在構建過程中完全忽略此項目。我使用Maven-Eclipse插件,但是當我運行Maven時,並沒有發生所描述的問題,而是Eclipse在構建工作區時(例如,如果我選擇了項目 - >清理 - >全部)。 – 2009-12-09 19:33:02

+0

那麼你的問題措辭不好。 – 2009-12-09 20:21:14

3

我不認爲在構建/清理過程中刪除exe文件是正常行爲。你正在使用什麼樣的Eclipse項目?

無論如何,在「屬性」,「Java編譯器」,「建築」下有一些選項可以配置。如果您需要更多靈活性,請從Ant構建文件創建一個項目並在其中定義清潔行爲。

+0

>你正在使用什麼樣的Eclipse項目? Maven/Eclipse插件正在爲我配置這些Eclipse項目。但是,在Eclipse構建過程中出現問題階段,而不是在啓動Maven時。 – 2009-12-17 11:07:01

+0

我設置了篩選資源(在您提到的Eclipse對話框中)包含* .exe。你是這個意思嗎? – 2009-12-17 11:34:34

+2

不,這是指文件不被複制到輸出文件夾。您可以在清除項目時清除「清理輸出文件夾」複選框 - 因爲您不使用任何Java,所以您不需要它。但是,我不知道這是否會起作用。它與項目結構有關,Maven-Eclipse可能與它有關。一個普通的Java項目不會刪除exe文件。 – kgiannakakis 2009-12-17 11:59:57

1

在您告訴它的目錄之外,Eclipse在清除內部版本時不會觸及任何文件。你可以擁有所有類型的文件,無論是exe文件還是其他文件,它都不會觸及!乾淨是爲了清理所有輸出文件夾。結論:你的exe文件實際上(直接或間接地)在這樣的輸出文件夾中(也許你只是不會注意到),或者它不是eclipse就會刪除文件(即使看起來如此)。

爲了確保eclipse不觸及你的項目中的任何東西,請檢查文件「.project」。在這個XML文件中有一個節點「buildSpec」,其中列出了所有與您的項目相關的eclipse構建器。將文件保存到其他位置,然後刪除unter「buildSpec」中的所有條目。

在我的例子原 「的.project」:

<?xml version="1.0" encoding="UTF-8"?> 
<projectDescription> 
    <name>org.jmock</name> 
    <comment></comment> 
    <projects> 
    </projects> 
    <buildSpec> 
     <buildCommand> 
      <name>org.eclipse.jdt.core.javabuilder</name> 
      <arguments> 
      </arguments> 
     </buildCommand> 
     <buildCommand> 
      <name>org.eclipse.pde.ManifestBuilder</name> 
      <arguments> 
      </arguments> 
     </buildCommand> 
     <buildCommand> 
      <name>org.eclipse.pde.SchemaBuilder</name> 
      <arguments> 
      </arguments> 
     </buildCommand> 
    </buildSpec> 
    <natures> 
     <nature>org.eclipse.pde.PluginNature</nature> 
     <nature>org.eclipse.jdt.core.javanature</nature> 
    </natures> 
</projectDescription> 

編輯後:

<?xml version="1.0" encoding="UTF-8"?> 
<projectDescription> 
    <name>org.jmock</name> 
    <comment></comment> 
    <projects> 
    </projects> 
    <buildSpec> 
    </buildSpec> 
    <natures> 
     <nature>org.eclipse.pde.PluginNature</nature> 
     <nature>org.eclipse.jdt.core.javanature</nature> 
    </natures> 
</projectDescription> 

此編輯後確保exe文件是存在的。然後清理你的工作區。你的exe不會被刪除(至少不會被eclipse)。

如果這沒有幫助你...也許你已經安裝了一個... ...看中插件,不知怎的,刪除的exe?東西不附帶日食?

1

對於您的問題,快速而簡單的修復方法可能是將* .exe文件複製到(您的)src /文件夾中的一個文件夾中,或添加一個僅包含此文件的新文件夾作爲源該項目僅用於此目的。然後,Eclipse將重新創建項目時,將* .exe複製回bin /。

其實默認的Eclipse似乎複製它找到源代碼樹中的一切(和它不知道如何編譯)到輸出目錄的分別命名的子目錄。