Program Club

CreateProcess 오류 = 206, main () 메서드를 실행할 때 파일 이름 또는 확장자가 너무 깁니다.

proclub 2020. 10. 12. 08:21
반응형

CreateProcess 오류 = 206, main () 메서드를 실행할 때 파일 이름 또는 확장자가 너무 깁니다.


이클립스 헬리오스 에이 오류가 있습니다.

명령 줄 실행 중에 예외가 발생했습니다. "C : \ Program Files (x86) \ Java \ jre6 \ bin \ javaw.exe"프로그램을 실행할 수 없습니다 ( "C : \ Users \ motiver \ helios_workspace \ TimeTracker"디렉터리) : CreateProcess error = 206, 파일 이름 또는 확장자는 다음과 같습니다. 너무 오래

약간 조사했지만 대부분의 문제는 Google App Engine에서 작업 할 때 DataNucleus와 관련이있었습니다. 하지만 Google App Engine과 관련된 것은 원격으로 사용하지 않습니다. JBOSS 6에서 Servlet 3.0으로 작은 프로젝트를 수행하고 있습니다. 웹 서비스를 노출하기 위해 ORM 및 RESTEasy에 Hibernate 4.1.2를 사용하고 있습니다. 기본적으로 스키마를 삭제하고 다시 만드는 main () 메서드가있는 util 파일을 만들었습니다. 테스트 목적으로 깨끗한 데이터베이스가 필요할 때 main () methos를 실행합니다. Tomcat 7에서 잘 작동했지만 JBoss 6으로 옮겼을 때 작동이 중지되었습니다.

어떤 힌트 나 해결책이라도 대단히 감사하겠습니다.


이 문제에 대한 간단한 (두 번의 클릭 또는 간단한 명령처럼) 해결책은 없습니다.

Eclipse.org의이 버그 보고서 에서 몇 가지 답변을 인용 하면 다음과 같은 해결 방법이 있습니다. 가장 고통스럽지 않은 것을 선택하십시오.

  • 클래스 경로 줄이기
  • jar 파일 대신 디렉토리 사용
  • 다른 모든 jar를 포함하는 압축 된 jar 파일을 사용하고 매니페스트 파일 내의 classpath 변수를 사용하여 다른 jar를 가리 킵니다.
  • 구성 파일에서 클래스 경로를 읽는 특수 클래스 로더를 사용하십시오.
  • 버그 보고서 문서에 첨부 된 패치 중 하나를 사용해보십시오.
  • 개미와 같은 자체 포장지 사용
  • IntelliJ로 이동 (업데이트 : @nitind가 지적했듯이 옵션이 아님)

업데이트 : 2014 년 7 월 이후 더 나은 방법이 있습니다 ( 아래 @ Brad-Mace의 답변 덕분에 :

을 사용하는 대신 고유 한 빌드 파일을 작성한 경우이 문제를 해결하도록 특별히 설계된 Javadoc 태스크에 Project -> Generate Javadocs추가 할 수 있습니다 useexternalfile="yes".


당신이 사용하는 대신 자신 만의 빌드 파일을 작성하는 경우 Project -> Generate Javadocs추가 할 수 있습니다를 useexternalfile="yes"받는 javadoc이 문제를 해결하기 위해 특별히 설계 작업.


오늘이 문제에 직면 했고이 Gradle 플러그인을 사용하여 해결할 수있었습니다.

그것의 GitHub의 URL은 이것이다

나처럼 Gradle이 무엇인지 모르지만 프런트 엔드 작업을 수행하기 위해 백엔드를 실행해야하는 경우, BE 서버를 시작하기 위해 호출되는 build.gradle 파일을 찾아 이를 추가하는 것입니다. 상단:

plugins {
  id "ua.eshepelyuk.ManifestClasspath" version "1.0.0"
}

해결책이 댓글에 묻히지 않도록 여기에서 내 질문에 답합니다. 이클립스 내에서 프로젝트를 실행 가능한 jar로 내보내고 "java -jar MyJar.jar"명령 줄을 실행했는데 완벽하게 작동합니다.


Eclipse 버전을 업데이트 해보십시오. 문제는 최근에 종결되었습니다 (2013-03-12). 버그 보고서 확인 https://bugs.eclipse.org/bugs/show_bug.cgi?id=327193


Maven을 호출하는 동안 동일한 오류가 발생했습니다.

내 문제의 근본 원인 classpath은 매우 컸습니다. 클래스 경로를 업데이트하면 문제가 해결되었습니다.


버그 보고서 버그 327193에서 수정 된 것으로 간주되지만 최근 Eclipse Kepler 4.3.2에서 저에게 발생했습니다.

Eclipse Juno 이상용 패치를 다운로드하십시오.

https://bugs.eclipse.org/bugs/attachment.cgi?id=216593

  1. 다운로드 후 기존 eclipse / plugins / org.eclipse.jdt.launching_3. *. jar 백업
  2. 패치의 클래스를 org.eclipse.jdt.launching JAR에 복사하여 붙여 넣으십시오 (기존 파일 대체).
  3. Eclipse를 다시 시작하십시오.

이것은 특별히 이클립스를위한 것은 아니지만,이 문제를 해결하는 방법은 내 maven 저장소에 대한 심볼릭 링크를 만들고 "C : \ R"과 같은 것을 가리키는 것입니다. 그런 다음 settings.xml 파일에 다음을 추가했습니다.

<localRepository>C:\R</localRepository>

maven 저장소 경로가 내 Windows 시스템의 길이 문제에 기여했습니다.


이 시도:

java -jar -Dserver.port = 8080 build / libs / APP_NAME_HERE.jar


질문이 오래되었지만 여전히 유효합니다. 새 구성원이 팀에 합류하거나 새 코드 세그먼트가 기존 코드에 추가 될 때마다 이러한 상황이 자주 발생합니다. 우리가 따르는 간단한 해결 방법은 디렉토리를 위로 이동하여 "클래스 경로를 줄이는"것입니다.

언급했듯이 이것은 일식에만 국한되지 않습니다. IntelliJ Idea 14 및 2018에서도이 문제를 발견했습니다.

오랜 연구 끝에 해결책은

포크 = 거짓

개미 빌드 파일의 javc에서.

<javac destdir="${build.dir}" fork="false" debug="on">
    <classpath .../>
    <src ... />
    <patternset ... />
</javac>

이것이 내 개미 빌드 javac의 모습입니다. fork에 대한 자세한 내용은 ant 문서참조하십시오.


DataNucleus가 때때로 많은 경로로 인수를 덮어 쓰기 때문에 발생합니다.

다음과 같이 덮어 써야합니다.

-enhancerName ASM -api JDO -pu MediaToGo

희망이 있습니다!


이 스레드의 유효한 대답은 내 특별한 경우에 대한 정답이었습니다. datanucleus에 대한 ORM 폴더 경로를 지정하면 Java 경로 컴파일이 확실히 줄어 듭니다.

https://stackoverflow.com/a/1219427/1469481


' ant deploy '를 실행할 때 아래 오류가 발생했습니다.

Cannot run program "C:\java\jdk1.8.0_45\bin\java.exe": CreateProcess error=206, The filename or extension is too long

전에 ' ant clean ' 을 실행하여 수정했습니다 .


안드로이드 스튜디오에서 같은 오류가 발생했습니다. 내가 실행하여 해결할 수 있었다 빌드 -> 클린 프로젝트 는 IDE한다.


이것은 프로젝트 디렉토리 이름이 길기 때문에 CLASSPATH전체적으로 매우 길어 집니다. 에 추가 된 jar를 줄여야 CLASSPATH하거나 (불필요한 jar 만 제거해야 함) 가장 좋은 방법은 프로젝트 디렉토리를 줄이고 프로젝트를 다시 가져 오는 것입니다. 이렇게하면 CLASSPATH. 그것은 나를 위해 일했습니다.


나는 같은 문제가 있었지만 대신 netbeans를 사용했습니다.
해결책을 찾았으므로 어디서도 찾지 못했기 때문에 여기에서 공유하고 있으므로 netbeans 에서이 문제가 발생하면 다음을 시도하십시오.
(내 netbeans가 포르투갈어로되어 있으므로 이름이 꺼져있을 수 있음) 프로젝트> 속성을 ​​마우스 오른쪽 단추로 클릭하십시오. > 빌드> 컴파일> 외부 VM에서 컴파일 실행을 선택 취소합니다.


같은 오류가 발생했습니다. 청소, 재 구축, invalidateCache, retart 등과 같은 솔루션을 시도했지만 아무것도 작동하지 않습니다.

짧은 이름으로 새 폴더를 만들고 새 폴더에 모든 파일 (앱 폴더, gradle 파일 등)을 복사했습니다. 안드로이드 스튜디오에서 열린 응용 프로그램과 잘 작동합니다.


그것을 해결하려면 :

Eclipse를 사용하는 경우 :

.m2 저장소를 다음으로 이동

c : \ Eclipse> Windows / Preferences / Maven / User Settings로 이동-> 콘텐츠가 포함 된 자신 만의 setting.xml 만들기 :

<settings>
  <localRepository>c:/.m2/repository</localRepository>
</settings>

IntelliJ를 사용하는 경우 : IntelliJ로 이동> "pom.xml"에서 마우스 오른쪽 버튼 클릭> maven> "settings.xml"생성

내용 :

<settings>
      xmlns="yourcontent"
      xmlns:xsi="yourcontent"
      xsi:schemaLocation="yourcontent.xsd">
  <localRepository>c:/.m2/repository</localRepository>
</settings>

제 경우에는 시스템 Java 버전이 intellijj / eclipse Java 버전과 다르기 때문에 오류가 표시되었습니다. 시스템과 사용자의 Java 버전이 다릅니다. 한 버전을 사용하여 코드를 컴파일하고 다른 버전을 사용하여 실행하려고하면 오류가 발생합니다.User java version is 1.8

#The system java version is 1.7.131
$ java -version
java version "1.7.0_131"

간단히 말해서 코드가 동일한 Java 버전으로 컴파일되고 실행되는지 확인하십시오.

참고URL : https://stackoverflow.com/questions/10519558/createprocess-error-206-the-filename-or-extension-is-too-long-when-running-main

반응형