2009-12-09 3 views
0

Java 개발 용 Eclipse를 사용합니다.Eclipse가 내 exe 파일을 자동으로 삭제하지 못하게하는 방법

내 작업 영역의 하위 디렉토리에 * .exe 파일이있어 계속 삭제됩니다.

특히 프로젝트 중 하나는 MSVC를 사용하는 C++ 개발을 전담합니다. Java가 없습니다. 이 프로젝트의 루트는 cpp 및 h 파일을 가지고 있으며 MSVC를 사용하여 /bin 디렉토리 아래에서 exe 파일을 생성합니다.

가 내장 된 빌드 프로세스의 일환으로, Eclipse는 그것이 EXE 파일이 바이너리 출력이라고 생각 분명히 있기 때문에, * 된 .java 파일을 컴파일로이 exe 파일을 삭제합니다. exe는 이 아니며 / 디렉토리에이 아닙니다. 그런데

, 나는 메이븐 - 이클립스 플러그인을 사용하고 있지만, 이클립스 작업 공간, 메이븐 실행의 일부를 건설 할 때이 문제가 분명히 발생합니다.

나는이 디렉토리에 exe를 유지하고 싶다. 그것은 그것을 가지고 올바른 장소이며, 나는 차라리 해결 방법으로 이동 노력에 가지 않을 것입니다. 어떻게 이런 일이 일어나지 않도록 할 수 있습니까? 이클립스 내에 빌드 할 때 exe 파일을 지우지 않아도되는 몇 가지 구성이 있습니까?

+1

이클립스 프로젝트가 설정되어있는 기존 폴더 구조를 자세히 설명해 주시겠습니까? –

+0

조사를 위해 최소한의 작업 공간을 만들어야합니다. –

답변

3

문제점은 실행 파일을/bin (Eclipse 출력 디렉토리)에 저장하는 것입니다. 이 디렉토리는 새로 빌드 할 때마다 제거됩니다. 해결책 : 실행 파일을 다른 위치 (즉,/exe)에 저장하십시오.

+0

이것은 많은 의미가 있습니다! 나는 이것을 시도 할 것이다. –

+0

또는 프로젝트 -> 속성 -> Java 빌드 경로 -> 기본 출력 폴더를 일부 말도 안되는 이름으로 설정하십시오 (이 "프로젝트"에는 실제로 Java가 없으므로) –

+0

또한 Project-> Java Compiler-> Building -> 프로젝트 별 설정 활성화 -> 필터링 된 리소스 *. *를 선택하고 "출력 폴더 제거"도 선택 취소하십시오. –

3

빠른 수정을 위해 .exe를 '읽기 전용'으로 설정해보십시오.

+0

부적절하지만 효과적입니다. – orip

0

Java 프로그램의 현재 디렉토리에 EXE 파일을 갖기 위해이 서브 디렉토리가 Eclipse의 'target'디렉토리라고 가정합니다.

그런 다음 프로그램이이 exe의 위치를 ​​알리기 위해 System.getProperty ("settingname")에서 읽는 -Dsettingname = % path %를 사용하여 Eclipse에서 프로그램을 시작할 수 있습니다.

이 설정을 생략해도 프로그램은 현재 디렉토리를 계속 사용하여 배포 가능 파일을 만들 때 번들링 할 수 있습니다.

+0

> 빌드 경로의 출력 폴더 감사하지만 출력 또는 대상 폴더가 아닙니다. Thorbjørn Ravn Andersen –

3

Eclipse가 정리할 때 일반적으로 발생하는 유일한 위치는 빌드 경로의 출력 폴더에 있습니다.

가장 쉬운 방법은 새로운 소스 폴더를 생성하고이 출력 폴더에 종료 할 위치에 해당하는 패키지의 exe 파일을 넣어하는 것입니다. 빌드 프로세스는 자동으로 적절하게 복사합니다. 이는 클래스 경로에서 끝나야하는 속성 및 기타 파일을 사용하는 것과 같은 방법입니다.

+0

> 빌드 경로의 출력 폴더 감사하지만 출력 또는 대상 폴더가 아닙니다. 사실, 내 작업 공간에서 이것은 Java가없는 Eclipse 프로젝트이며 C++ 만 있습니다. 이 프로젝트의 루트에 cpp 및 h 파일이 있으며 MSVS를 사용하여/bin 하위 디렉토리의 exe 파일로 컴파일합니다. Eclipse가 빌드 프로세스에서이 프로젝트를 완전히 무시하고 싶습니다. Maven-Eclipse 플러그인을 사용하지만, Maven을 실행할 때 설명 된 문제가 발생하지 않지만, Eclipse에서 작업 공간을 빌드 할 때 (예 : 프로젝트 -> Clean-> All을 선택하는 경우). –

+0

귀하의 질문에 심하게 말을 걸었습니다. –

3

빌드/정리 프로세스 중에 exe 파일을 삭제하는 것이 정상적인 동작이라고 생각하지 않습니다. 어떤 종류의 Eclipse 프로젝트를 사용하고 있습니까?

어쨌든 "속성", "Java 컴파일러", "빌드"에서 구성 할 수있는 몇 가지 옵션이 있습니다. 유연성이 더 필요하면 Ant 빌드 파일에서 프로젝트를 생성하고 거기에서 정리 동작을 정의하십시오.

+0

> 어떤 종류의 Eclipse 프로젝트를 사용하고 있습니까? Maven/Eclipse 플러그인이이 Eclipse 프로젝트를 구성하고 있습니다. 그러나 문제가되는 단계는 Eclipse 구축 과정에서 나타나는 것으로 Maven을 시작하지는 않습니다. –

+0

내가 언급 한 Eclipse 대화 상자에서 * .exe를 포함하도록 필터링 된 리소스를 설정했습니다. 너가 말하는게 이거니? –

+2

아니요, 출력 폴더에 복사되지 않을 파일을 나타냅니다. 당신은 '프로젝트를 지울 때 출력 폴더 제거'체크 상자를 해제 할 수 있습니다. 자바를 사용하지 않으므로 어쨌든 필요하지 않습니다. 그러나, 이것이 작동하는지 나는 모른다. 그것은 프로젝트 구조와 관련이 있으며 아마 Maven-Eclipse는 그와 관련이 있습니다. 일반적인 Java 프로젝트는 exe 파일을 삭제하지 않습니다. – kgiannakakis

1

Eclipse는 사용자가 지정한 디렉토리 외부의 클린 빌드 중에 파일을 건드리지 않습니다. 당신은 모든 종류의 파일을 가질 수 있습니다, exe 또는 무엇이든, 그것은 만지지 않을 것입니다! 깨끗한 것은 모든 출력 폴더를 지우는 것입니다. 결론 : 귀하의 exe는 사실 (직접 또는 간접적으로) 출력 폴더 (어쩌면 당신이 통지하지 않음) 또는 파일을 삭제 일식되지 않습니다 (그렇게 보인다하더라도)입니다.

이클립스가 당신의 프로 첵트에 아무 것도 건드리지 않는지 확인하려면 ".project"파일을 확인하십시오.이 XML 파일에는 프로젝트를 터치하는 모든 Eclipse 빌더가 나열되는 노드 "buildSpec"이 있습니다. 파일을 다른 곳에 저장 한 다음 "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는 삭제되지 않습니다 (적어도 일식 제외).

이것이 도움이되지 않는다면 어쩌면 exe를 삭제하는 공상 ... 플러그인을 설치했을 것입니까? 이클립스와 함께 제공되지 않는 것이 있습니까?

1

문제를 빠르고 간단하게 해결하려면 * .exe 파일을 src/폴더에 복사하거나이 파일 만 포함 된 새 폴더를 원본으로 추가하는 것이 좋습니다 이 프로젝트를위한 것입니다. 그런 다음 이클립스는 프로젝트를 다시 빌드 할 때 항상 * .exe를 bin /으로 복사합니다.

사실 기본적으로 이클립스는 소스 트리에서 찾은 모든 것을 (그리고 컴파일 방법을 모르는) 출력 디렉토리의 각각의 서브 디렉토리에 복사하는 것처럼 보입니다.

관련 문제