web-dev-qa-db-ja.com

アプリケーションの起動に失敗する(CreateProcessエラー= 87)、クラスパスの短縮回避策を使用できない

Windows上のEclipseでアプリケーションを起動すると、次のエラーが表示されます。

コマンドラインの実行中に例外が発生しました。

プログラムを実行できません..:CreateProcessエラー= 87、パラメーターが正しくありません

過去にCLASSPATHを短縮することでこれを解決しました。

これで、CLASSPATHを短くすることができなくなったので、他の回避策があるかどうかを知りたいと思います。

http://support.Microsoft.com/kb/83047 は、Windows XPの最大コマンドプロンプト行の長さが8191文字であることを示しているようです。唯一の解決策は、フォルダ名を短くし、フォルダーツリー、パラメーターファイルの使用など.

29
Ivo Bosticky

これ eclipsecoding FAQ page は診断を確認します:

CLASSPATHが長すぎると、プログラムを起動できません(少なくともWindowsで)-クラスパスを短くしてください。プラグインの場合、不要な必須プラグインを削除しようとすることができます。

そして、あなたは ここではスレッド ログエラーの詳細を持っています。

Eclipseは起動できますが、アプリケーションは起動できないため、起動構成に含まれるプラグインが多すぎないかどうかを確認します。 必要なプラグインのみを追加 があるかどうか確認できますか?

16
VonC

回避策として:

  1. 失敗しているタスクのEclipse実行構成を開きます。
  2. 「クラスパス」タブを選択し、デフォルトのクラスパスを選択して、「編集」ボタンをクリックします
  3. [エクスポートされたエントリのみを含める]チェックボックスをオンにします。

これにより、Eclipse 3.6(Helios)でこの問題を回避できました。

12
Nick

これは間違いなく、クラスパスが長すぎてコマンドラインが最大制限を超えてしまう問題です。解決するには、クラスパスを短くします。 Mavenを使用している場合(たとえばJive developmentのように)、maven settings.xmlを変更して.m2の場所を変更します

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

次に、リポジトリをユーザーディレクトリからそこに移動しますが、settings.xmlおよびsettings-security.xml(該当する場合)がユーザーディレクトリにあることを確認します。このように、クラスパスはc:\ Documents and Settings\username.m2を繰り返し表示するのではなく、c:.m2を表示するため、クラスパスとコマンドの長さを大幅に短縮できます。 Windowsでは、.m2という名前のディレクトリを(自分で)作成できないため、ディレクトリを切り取り、c:に貼り付けてから、ユーザーフォルダにコピーする必要があることに注意してください。

2
Moe

Eclipse Helios(この部門で正式にサポートされている唯一のバージョン)で同じ問題が発生し、問題を解決するのが非常に困難だったため、ここに解決策があります。

最新のEclipseをインストールします(私の場合は4.3.2が機能しました)。

この問題はEclipseバグとして報告されていました: https://bugs.Eclipse.org/bugs/show_bug.cgi?id=327193 そしてそれは修正されました。

これが、このページにアクセスする将来のユーザーに役立つことを願っています。

1
user1485864

これは、Eclipseの既知のバグです。 Bug 32719 -[パッチ] Windowsでコマンドラインを起動すると、プロセス作成コマンドの制限を超えます

2013年にリリースされたEclipse e4 4.3で修正されます。3.4.2で修正するほど重要とは見なされていませんでした。しかし、バグの添付ファイルには、Eclipseのバージョンを修正するためのいくつかの代替クラスがあります。

1
Aaron Digulla

ジャンクション(http://technet.Microsoft.com/en-us/sysinternals/bb896768)で簡単に作成できるダイナミックリンクを使用します。プロジェクトのリンクを作成し、それを通してEclipseに追加します。使用例:md d:\ shortname junction d:\ shortname\d:\ my\very\long\long\long\long\long\long\projectnamefolder

1
Imre Szikora

私はEclipseで同じ問題を扱っていたので、そのため、Intellijで同じプロジェクトを試してみることにしました。それがIDE問題かどうかを知るためだけです。

驚いたことに、Intellijはこの問題(長いクラスパス)を検出し、ダイアログを表示して、動的クラスパス機能を使用することを推奨します。このオプションを有効にすると、問題はなくなりました。

Dynamic.classpathフラグの機能: dynamic.classpathフラグの機能は何ですか?(IntelliJプロジェクトの設定)

だから、私の質問は次のとおりです。Eclipseでも同じことをする方法はありますか?不要な依存関係をすべて手動で削除するのではなく、この問題に対するシンプルでエレガントなソリューションのようです。

1
Mauro Monti

私は同じ問題に直面しました、プロジェクトはun-build jarファイルを参照しました。 tools-1.6.jarがビルドされ、依存関係として追加されたとします。後でtools-1.6.jarのソースコードが変更され、#mvnクリーンインストールが実行されない場合があります。

クリーンビルドを行い、Mavenの依存関係を更新しました。エラーは解決しました。

0

私がEclipseに対して持っている1つの解決策は、Workspace Resolutionによって有効化された特定のプロジェクトを閉じ、代わりにこれらをローカルのMavenリポジトリから解決することです。とにかくそれは私のために働いた

0
DJ180

同じ問題が発生しました。試したものは何でも、スクラップブックページを実行しようとしても成功しません。ワークスペースで.pluginsディレクトリの内容を確認しました。 de org.Eclipse.jdt.coreディレクトリに多くのインデックスファイルがあることに気付きました。このディレクトリの名前を変更すると、スクラップブックプロセスを再度実行できます。

0
Rob in het Veld