web-dev-qa-db-ja.com

ZipファイルまたはJARマニフェストを開くときにエラーが発生しました:C:\ Program

https://developers.google.com/appengine/docs/Java/webtoolsplatform#dynamic_web_project の「サーバーでプロジェクトを実行する」ステップにいるので、問題が発生しました。

VMエージェントライブラリの初期化に失敗しました:機器がZipファイルを開くエラーまたはJARマニフェストが見つかりません:C:\ Programの初期化中にエラーが発生しました

別の人がここで同様の問題を報告しました: ZipファイルまたはJARマニフェストのオープンエラー:C:/ Program 。しかし、解決策は異なるテクノロジーセットに対するものでした。 Eclipse、Web Tools Platform、およびGoogle-App-Engineを使用しています。

ほとんどの場合、これはmy Javaがスペースを含むディレクトリであるC:\ Program Filesにインストールされているためです。しかし、これを修正する方法がわかりません。 Java\jre7ディレクトリをスペースのないディレクトリに移動します。

16
Michael Osofsky

Google Cloud Platform SupportのJordan Fishがこの問題の解決に役立ちました。彼は言った:

Dev_appserverを起動しようとしたときのエラーメッセージに関する限り、これはおそらくプロジェクトの実行構成のvm引数によるものと考えられます。実行構成に移動して(プロジェクトを選択した状態で、[実行]メニューに移動し、[実行構成]を選択)、[引数]タブをクリックして、VM引数テキストボックス?

ここに私の元のVM引数:

-javaagent:C:\Program Files\Eclipse\plugins\com.google.appengine.Eclipse.sdkbundle_1.9.4\appengine-Java-sdk-1.9.4\lib\agent\appengine-agent.jar -Xmx512m -Dappengine.fullscan.seconds=5 -Ddatastore.default_high_rep_job_policy_unapplied_job_pct=50

変更したものを次に示します(-javaagent:paramとして渡されるディレクトリの周りに二重引用符を追加しました):

-javaagent:"C:\Program Files\Eclipse\plugins\com.google.appengine.Eclipse.sdkbundle_1.9.4\appengine-Java-sdk-1.9.4\lib\agent\appengine-agent.jar" -Xmx512m -Dappengine.fullscan.seconds=5 -Ddatastore.default_high_rep_job_policy_unapplied_job_pct=50

これで問題が解決し、「サーバーでプロジェクトを実行する」の手順を完了することができました https://developers.google.com/appengine/docs/Java/webtoolsplatform#dynamic_web_project

28
Michael Osofsky

""の後ろのjarファイルに-javaagentを追加する必要があります。

7
Crytis

IntelliJを使用する場合、ソリューションはわずかに異なるように見えます。 Eclipseユーザーと同じ方法で実行構成を編集する必要がありますが、代わりにこの形式を使用して「VMオプション」を追加します。

-javaagent:[/absolute/path/DMEnhancerJava-1.0.jar][classes=META-INF/]

各パラメーターのスペースなしで、コロンの後に角かっこで書式設定することに注意してください。それを見逃すと、JavaAgentがその入力形式を予期していることに関する実行時エラーメッセージが表示されます。

また、MavenやGradleなどのビルドツールを使用して、これを(MAVEN_OPTSなどの方法で)Java_ARGS変数に追加する場合は、全体を二重引用符で囲む必要があることに注意してください。

2番目のパラメーターは、DMEnhancerに何をインストルメントするかを指示するために必要なようです(私のコンパイルされたPOJOはMETA-INFディレクトリにあったため、クラスパスの最上位に相対的でした)。

最後に、VMの内部のクラスパスの2つの場所で実装されているクラスについてエラーが発生することがあります。

Class JavaLaunchHelper is implemented in both <Two full classspaths shown here> One of the two will be used. Which one is undefined.

これはJVMのバグが原因で発生するようで、1.8u152で修正されています(MacOS Xで)(執筆時点では、これは利用可能な早期アクセスリリースと見なされます here )。このJVMバグの詳細については、他の answer を参照してください。

1
Jason D

Eclipseでマニフェストファイルを含むjarを次のようにエクスポートします。

enter image description here[〜#〜]または[〜#〜]

マニフェストファイルと作成されたjarをマージします。 CMD:jar ufm /Users/inzamam/Desktop/inzaa.jar META-INF/MANIFEST.MF

0
Inzamam Syed