如何让Eclipse自动删除我的exe文件

问题描述:

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

的问题是你是存储在/ 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

您可以尝试将.exe设置为“只读”以便快速修复。

+0

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

我假设这个子目录是Eclipse的'target'目录,以便在Java程序当前目录中具有EXE文件。您可以(例如)在Eclipse中启动您的程序,并使用程序读取的-Dsettingname =%path%(从System.getProperty(“settingname”))来通知它该exe文件的位置。

如果省略该设置,则程序可以继续呈现当前目录,使您可以在创建可分发组件时将其捆绑。

+0

>构建路径的输出文件夹 由于最小的工作空间,但它不是一个输出或目标文件夹。请参阅我的评论上面的托尔比约恩Ravn的安徒生 – 2009-12-09 19:33:37

当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

我不认为在构建/清理过程中删除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

在您告诉它的目录之外,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?东西不附带日食?

对于您的问题,快速而简单的修复方法可能是将* .exe文件复制到(您的)src /文件夹中的一个文件夹中,或添加一个仅包含此文件的新文件夹作为源该项目仅用于此目的。然后,Eclipse将重新创建项目时,将* .exe复制回bin /。

其实默认的Eclipse似乎复制它找到源代码树中的一切(和它不知道如何编译)到输出目录的分别命名的子目录。