128

Eclipseヘリオスでこのエラーが発生しました:

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

少し調べましたが、問題のほとんどは、GoogleAppEngineで作業しているときのDataNucleusに関連していました。しかし、私はGoogleAppEngineにリモートで関連するものは何も使用していません。JBOSS6でサーブレット3.0を使用して小さなプロジェクトを実行しています。ORMおよびRESTEasyにHibernate4.1.2を使用して、Webサービスを公開しています。基本的にスキーマを削除して再作成するmain()メソッドを持つutilファイルを作成しました。テスト目的でクリーンなデータベースが必要な場合は、main()メソッドを実行します。Tomcat 7では正常に機能しましたが、JBoss6に移行すると機能しなくなりました。

ヒントや解決策をいただければ幸いです。

4

31 に答える 31

57

この問題に対する単純な (数回のクリックまたは単純なコマンドのような) 解決策はありません。

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

  • クラスパスを減らす
  • jar ファイルの代わりにディレクトリを使用する
  • 他のすべての jar を含むパックされた jar ファイルを使用し、マニフェスト ファイル内のクラスパス変数を使用して他の jar をポイントします。
  • 構成ファイルからクラスパスを読み取る特別なクラスローダーを使用します
  • バグ レポート ドキュメントに添付されているパッチのいずれかを使用してみてください
  • ant などの独自のラッパーを使用する

更新: 2014 年 7 月以降、より良い方法があります (以下の @Brad-Mace の回答に感謝します:

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

于 2012-05-15T09:42:10.330 に答える
19

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

于 2014-04-25T17:47:14.750 に答える
13

IntelliJ 2020.2のHibernate / JPA コンソールJPQLクエリを実行しようとして、この問題に遭遇していました。

これを私の.idea/workspace.xmlに追加すると修正されました

<component name="PropertiesComponent">
 
...
     <property name="dynamic.classpath" value="true"/>
 
...
 
</component>

ソリューションの起源: https://youtrack.jetbrains.com/issue/IDEA-166929?_ga=2.167622078.1290412178.1604511702-23036228.1574844686

于 2020-11-04T17:47:32.787 に答える
8

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

于 2012-05-15T22:18:19.307 に答える
7

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

<localRepository>C:\R</localRepository>

maven リポジトリ パスが、Windows マシンの長さの問題の原因となっていました。

于 2019-01-31T01:00:36.027 に答える
6

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

質問が述べたように、これは日食に固有のものではありません。IntelliJ Idea 14 および 2018 でもこの問題に遭遇しました。

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

フォーク = false

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

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

これは、私のantビルドjavacが現在どのように見えるかです。fork の詳細については、 ant のドキュメントを参照してください。

于 2019-01-02T06:54:20.537 に答える
3

バグ レポートBug 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. エクリプスを再起動します。
于 2014-05-22T19:52:22.937 に答える
2

これを build.gradle ( gradle version 4.10.x) ファイルに追加してみて、これcom.xxx.MainClassがメイン メソッドが存在するクラスであることを確認してください。

plugins {
  id "ua.eshepelyuk.ManifestClasspath" version "1.0.0"
}
apply plugin: 'application'
application {
    mainClassName = "com.xxx.MainClass"
}

上記の変更は問題を解決する必要がありますrun.sh。以下のスクリプトを使用してこの問題を解決できる別の方法がありますが、IntelliJ で起動するのではなく、コマンドラインでの修正になりますgradle bootRun

于 2020-03-09T12:33:49.003 に答える
1

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

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

これに記載されているように、大きなクラスパスを更新するには複数の方法があります: How to set a long Java classpath in Windows?

  1. ワイルドカードを使用する
  2. 引数ファイル
  3. パッシングジャー

私は Intellij を使用しているため、使用した Argument File を使用するオプションが提供されています。

于 2015-01-06T20:44:09.837 に答える
0

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

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

-enhancerName ASM -api JDO -pu MediaToGo

あなたを助けてください!

于 2013-05-02T14:55:31.253 に答える
0

VSCode を使用している場合:

  1. launch.json ファイル insde .vscode/ を作成します

  2. 追加

    {"configurations": [{ "type": "java","shortenCommandLine ": "auto",}]}
    

intellij を使用している場合:

  1. .idea/workspace.xml を開く

  2. 内部<component name="PropertiesComponent"> に追加<property name="dynamic.classpath" value="true"/>

于 2022-01-12T14:31:22.020 に答える
-2

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

于 2018-05-22T06:23:45.093 に答える