2012-05-09 531 views
56

當我有此錯誤在蝕的Helios: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做一個小項目。我正在使用Hibernate 4.1.2 for ORM和RESTEasy來公開Web服務。我創建了一個具有main()方法的util文件,該方法基本上可以刪除並重新創建模式。當我需要一個乾淨的數據庫進行測試時,我運行main()方法。它在Tomcat 7上運行良好,但當我轉移到JBoss 6時它停止工作。

任何提示或解決方案將不勝感激。

+0

可能重複的[CreateProcess錯誤= 206,文件名或擴展名太長](http://stackoverflow.com/questions/8850920/createprocess-error-206-the-filename-or-extension-is-too -long) –

+0

可能有用:https://bugs.eclipse.org/bugs/show_bug.cgi?id=327193 – Jeremy

+0

我想了解是否C:\ Program Files文件(x86)\ Java \ jre6 \ bin \ javaw .exe'很長或另一個'C:\ Users \ motiver \ helios_workspace \ TimeTracker'。我也有同樣的問題。 –

回答

32

這個問題沒有簡單的(如點擊幾下或簡單的命令)解決方案。

引用this bug report in Eclipse.org中的一些答案,這些是解決方法。挑選一個最痛苦最少給你:

  • 減少classpath中
  • 使用的目錄,而不是JAR文件
  • 使用它包含了所有其他的jar打包的jar文件,使用清單文件中的CLASSPATH變量指向其他罐子
  • 使用一個特殊的類加載器從一個配置文件
  • 嘗試使用附帶的補丁中的一個bug報告文件中
  • 請使用自己的包裝讀取類路徑例如螞蟻
  • 移動到的IntelliJ(更新:如@nitind指出,這不是一個選項)

更新:在2014年7月,有一個更好的方法(感謝@Brad-Mace's answer below

如果您已經創建了自己的構建文件而不是使用Project -> Generate Javadocs,那麼您可以將useexternalfile="yes"添加到Javadoc任務中,該任務專爲解決此問題而設計。

+0

感謝您的寶貴意見。我在eclipse中將項目導出爲可運行的jar,並執行了一個命令行「java -jar MyJar.jar」,它工作得很好。我想這有點類似於你的第三個要點。 – motiver

+7

如果完全是因爲啓動JVM時使用的類路徑的長度,IntelliJ *會不會有這個問題? – nitind

+1

這可能只是日食問題,我可以使用maven運行應用程序。 – surajz

5

回答我自己的問題,以便解決方案不會出現bur在評論中ied。我從eclipse中將該項目導出爲可運行jar,並執行了一個命令行「java -jar MyJar.jar」,並且它工作得很好

0

它發生是由於DataNucleus有時會覆蓋具有許多路徑的參數。

你有這個覆蓋它們:

-enhancerName ASM -API JDO -pu MediaToGo

希望幫助你!

13

如果你創建自己的構建文件,而不是使用Project -> Generate Javadocs可以添加useexternalfile="yes"javadoc任務,這是專門設計來解決這個問題。

+0

嗨 - 我怎麼加這個? –

+0

@PrateekNarendra你可以將它添加到你的ant構建文件(build.xml)中:https://ant.apache.org/manual/Tasks/javadoc.html –

3

在錯誤報告Bug 327193它被認爲是固定的,但它發生在我最近與Eclipse開普勒4.3.2。

請下載補丁適用於Eclipse朱諾或更新:。

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

  1. 下載備份現有的後 蝕/插件/ org.eclipse.jdt.launching_3 *罐子
  2. 複製將修補程序中的類粘貼到org.eclipse.jdt.launching JAR (替換現有文件)。
  3. 重新啓動Eclipse。
+0

這對我有用。請注意,應用此操作會從已安裝的JRE中刪除我的JDK Java安裝。我不得不重新添加它們。只有1個JRE安裝持續存在。 – Joetjah

3

我得到同樣的錯誤,同時調用Maven。

我的問題的根本原因是classpath是非常巨大的。更新類路徑解決了問題。

0

我,當我運行下面的錯誤「螞蟻部署

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

通過之後,才能「螞蟻乾淨」固定它。

+0

如果我使用Android Studio,該怎麼辦?我也收到同樣的問題 – portfoliobuilder

1

試試這個:

Java的罐子-Dserver.port = 8080編譯/庫/ APP_NAME_HERE.jar

0

我在Android Studio中得到了同樣的錯誤。我能夠通過在IDE中運行BuildClean Project來解決此問題。

相關問題