我使用Eclipse进行Java开发。
我的工作区的子目录中有一个* .exe文件,该文件不断被删除。
具体来说,其中一个项目致力于使用MSVC进行C ++开发;那里没有Java。这个项目的根目录有cpp和h文件,我使用MSVC在 / bin 目录下生成exe。
作为其内置构建过程的一部分,Eclipse在编译* .java文件时删除此exe文件,显然是因为它认为exe文件是二进制输出。请注意,任何 / target 目录中的exe 不。
顺便说一句,我使用的是Maven-Eclipse插件,但是这种行为显然发生在Eclipse构建工作区时,而不是Maven运行的一部分。
我宁愿将exe保存在这个目录中;它是一个合适的地方,所以我宁愿不去努力将其作为一种解决方法。 我怎样才能防止这种情况发生? Eclipse中是否有一些配置可以说明构建时不会清除exe文件?
答案 0 :(得分:3)
您可以尝试将.exe设置为“只读”以进行快速修复。
答案 1 :(得分:3)
当Eclipse清理它时,通常会发生在构建路径的输出文件夹中。
最简单的方法是创建一个新的源文件夹,并将exe文件放在一个包中,该包对应于您希望它在输出文件夹中结束的位置。然后,构建过程会根据需要自动复制。这与使用属性和其他需要在类路径中结束的文件的方式相同。
答案 2 :(得分:3)
我不认为在构建/清理过程中删除exe文件是正常行为。您使用的是哪种Eclipse项目?
无论如何,在“属性”,“Java编译器”,“构建”下,您可以配置一些选项。如果您需要更多灵活性,请从Ant构建文件创建项目并在那里定义清理行为。
答案 3 :(得分:3)
问题是您将可执行文件存储在/ bin中,这是一个Eclipse输出目录。每次执行干净构建时都会删除此目录。解决方案:将您的可执行文件存储在其他位置(即/ exe)。
答案 4 :(得分:1)
Eclipse在您告诉它的目录之外的干净构建期间不会触及任何文件。你可以拥有所有类型的文件,无论是exe还是其他什么,它都不会触及!干净是为了清除所有输出文件夹。结论:你的exe实际上(直接或间接)在这样的输出文件夹中(也许你只是没注意到)或者不是eclipse删除文件(即使看起来如此)。
要确保eclipse不接触您的proect中的任何内容,请检查文件“.project”。在这个XML文件中有一个节点“buildSpec”,其中列出了触及项目的所有eclipse构建器。将文件保存在其他位置,然后删除所有条目“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?是什么东西不带eclipse?
答案 5 :(得分:1)
对您的问题进行快速而简单的修复可能只是将* .exe文件复制到您的src /文件夹(其中一个)或添加一个只包含此文件的新文件夹作为源文件项目只是为了这个目的。然后Eclipse会在重新启动项目时将* .exe复制回bin /。
实际上,默认情况下Eclipse似乎将它在源代码树中找到的所有内容(以及它不知道如何编译)复制到输出目录的相应命名子目录中。
答案 6 :(得分:0)
我假设这个子目录是Eclipse的'target'目录,以便将EXE文件放在Java程序的当前目录中。
然后您可以(例如)在Eclipse中使用程序读取的-Dsettingname =%path%(从System.getProperty(“settingname”))启动程序,以通知它该exe的位置。
如果省略该设置,程序可以继续采用当前目录,使您可以在创建可分发时将其捆绑。