web-dev-qa-db-ja.com

CreateProcessエラー= 206、main()メソッドの実行時にファイル名または拡張子が長すぎます

Eclipse heliosでこのエラーがあります:

コマンドラインの実行中に例外が発生しました。プログラム「C:\ Program Files(x86)\ Java\jre6\bin\javaw.exe」を実行できません(ディレクトリ「C:\ Users\motiver\helios_workspace\TimeTracker」内): CreateProcessエラー= 206、ファイル名または拡張子が長すぎます

私は少し調査しましたが、Google App Engineで作業しているとき、ほとんどの問題はDataNucleusに関連していました。ただし、Google App Engineにリモートで関連するものは使用していません。 JBOSS 6でServlet 3.0を使用した小さなプロジェクトを行っています。ORMおよびRESTEasyにHibernate 4.1.2を使用してWebサービスを公開しています。基本的にスキーマを削除して再作成するmain()メソッドを持つutilファイルを作成しました。テスト目的でクリーンなデータベースが必要な場合は、main()メソッドを実行します。 Tomcat 7では正常に動作しましたが、JBoss 6に移行したときに動作しなくなりました。

ヒントや解決策は大歓迎です。

77
motiver

この問題に対する単純な(数回のクリックや単純なコマンドのような)ソリューションはありません。

Eclipse.orgのこのバグレポート のいくつかの回答から引用すると、これらは回避策です。あなたにとって最も痛くないものを選んでください:

  • クラスパスを減らす
  • Jarファイルの代わりにディレクトリを使用する
  • 他のすべてのjarを含むパックされたjarファイルを使用し、マニフェストファイル内でclasspath変数を使用して他のjarを指すようにします
  • 設定ファイルからクラスパスを読み取る特別なクラスローダーを使用します
  • バグレポートドキュメントに添付されているパッチのいずれかを使用してみてください
  • 独自のラッパーを使用します。蟻
  • IntelliJに移動(更新:@nitindが指摘しているように、これはオプションではありません)

Update:2014年7月以降、より良い方法があります( @ Brad-Maceの回答のおかげで

Project -> Generate Javadocsを使用する代わりに独自のビルドファイルを作成した場合、この問題を解決するために特別に設計されたJavadocタスクにuseexternalfile="yes"を追加できます。

38
espinchi

Project -> Generate Javadocsを使用するのではなく、独自のビルドファイルを作成する場合、useexternalfile="yes"javadocタスクに追加できます。これは、この問題を解決するために特別に設計されています。

17
Brad Mace

今日この問題に直面し、 このGradleプラグイン を使用して解決することができました

github url is this

私のように、Gradleが何であるか分からないが、フロントエンドの作業を行うためにバックエンドを実行する必要がある場合は、build.gradleファイルを見つける必要がありますBEサーバーを起動し、これを先頭に追加するために呼び出されています。

plugins {
  id "ua.eshepelyuk.ManifestClasspath" version "1.0.0"
}
12
Alejandro B.

Eclipseバージョンを更新してください。問題は最近解決されました(2013-03-12)。バグレポートを確認してください https://bugs.Eclipse.org/bugs/show_bug.cgi?id=32719

6
Rodrigo

ここで自分の質問に答えて、ソリューションがコメントに埋もれないようにします。 Eclipse内からプロジェクトを実行可能なjarとしてエクスポートし、コマンドライン「Java -jar MyJar.jar」を実行しましたが、完全に正常に動作します

6
motiver

Mavenの呼び出し中に同じエラーが発生しました。

私の問題の根本原因はclasspathが非常に大きいことでした。クラスパスを更新すると、問題が修正されました。

4
Sandeep Jindal

バグレポートでは Bug 32719 修正されたと見なされますが、最近Eclipse Kepler 4.3.2で発生しました。

Eclipse Juno以降のパッチをダウンロードしてください:

https://bugs.Eclipse.org/bugs/attachment.cgi?id=21659

  1. ダウンロード後、既存のEclipse/plugins/org.Eclipse.jdt.launching_3。*。jarをバックアップします
  2. パッチ内のクラスをorg.Eclipse.jdt.launching JARにコピーアンドペーストします(既存のファイルを置き換えます)。
  3. Eclipseを再起動します。
3

これはEclipse専用ではありませんが、これを回避する方法は、mavenリポジトリへのシンボリックリンクを作成し、「C:\ R」のようなものを指すようにすることでした。次に、次をsettings.xmlファイルに追加しました。

<localRepository>C:\R</localRepository>

Mavenリポジトリパスは、Windowsマシンの長さの問題の原因でした。

2
Shygar

これを試して:

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

1
user3272405

質問は古いですが、まだ有効です。新しいメンバーがチームに参加するか、新しいコードセグメントが既存のコードに追加されるたびに、このような状況に遭遇することがよくあります。従う簡単な回避策は、ディレクトリを上に移動して「クラスパスを削減する」ことです。

質問のとおり、これはEclipseに固有のものではありません。 IntelliJ Idea 14および2018でもこの問題に遭遇しました。

長い調査の結果、解決策は

fork = false

antビルドファイルのjavcで。

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

これが、私のantビルドjavacの外観です。フォークの詳細については、 antのドキュメントを参照してください をご覧ください。

1
Don D

私の場合、システムJavaバージョンがintellijj/Eclipse Javaバージョンと異なるため、エラーが表示されていました。システムとユーザーにdiff Javaバージョンがありました。あるバージョンを使用してコードをコンパイルし、別のバージョンを使用して実行しようとすると、エラーが発生します。 User Java version is 1.8

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

簡単に言えば、コードが同じJavaバージョンでコンパイルおよび実行されていることを確認してください。

0
zee

dataNucleusが引数を多くのパスで上書きすることがあるために発生します。

これでそれらを上書きする必要があります:

-enhancerName ASM -api JDO -pu MediaToGo

あなたを助けることを願っています!

0
Rodrigohsb

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」を実行して修正しました。

0
maoyang

同じエラーが発生しました。クリーニング、再構築、invalidateCache、retartなどのソリューションを試しましたが、何も機能しません。

短い名前で新しいフォルダーを作成し、新しいフォルダーにすべてのファイル(アプリフォルダー、gradleファイルなど)をコピーしました。 Androidスタジオでアプリケーションを開き、正常に動作しました。

0
Tara

Android studioでも同じエラーが発生しました。 IDEでBuild-> Clean Projectを実行することで解決できました。

0
Kiran

このスレッドからの有効な答えは、私の特別な場合の正しい答えでした。 datanucleusのORMフォルダーパスを指定すると、確実にJavaパスコンパイルが削減されます。

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

0
smora

これは、プロジェクトディレクトリ名が長いため、CLASSPATHが非常に長くなるためです。 CLASSPATHに追加されたjarを減らす必要があります(不要なjarのみを削除するようにしてください)。または、プロジェクトディレクトリを減らして、プロジェクトを再度インポートするのが最善の方法です。これにより、CLASSPATHが削減されます。それは私のために働いた。

0
deepesh kumar

私は同じ問題を抱えていましたが、代わりにnetbeansを使用していました。
解決策を見つけたので、ここで共有しているので、どこにも見つからなかったので、netbeansでこの問題がある場合は、これを試してください。
(私のnetbeansはポルトガル語であるため、名前がオフになっている可能性があります)[プロジェクト]> [プロパティ]> [ビルド]> [コンパイル]を右クリックします。

0
Régis B.

解決するには:

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>
0
R. Pereira