web-dev-qa-db-de.com

Fehler beim Öffnen der Zip-Datei oder des JAR-Manifests: C: \ Program

Ich bin im Schritt "Projekt auf dem Server ausführen" von https://developers.google.com/appengine/docs/Java/webtoolsplatform#dynamic_web_project und bin auf ein Problem gestoßen:

Bei der Initialisierung von VM Agentenbibliothek konnte nicht initialisiert werden: instrument Fehler beim Öffnen der Zip-Datei oder des fehlenden JAR-Manifests: C:\Program

Eine andere Person hat hier ein ähnliches Problem gemeldet: Fehler beim Öffnen der Zip-Datei oder des fehlenden JAR-Manifests: C:/Program . Die Lösung bestand jedoch in einem anderen Satz von Technologien. Ich benutze Eclipse, Web Tools Platform und Google-App-Engine.

Höchstwahrscheinlich liegt es daran, dass mein Java in C:\Programme installiert ist, einem Verzeichnis, das ein Leerzeichen enthält. Ich bin mir jedoch nicht sicher, wie ich das beheben kann. Ich bin nicht sicher, wie ich es sicher machen soll Verschieben Sie das Verzeichnis Java\jre7 in ein Verzeichnis ohne Leerzeichen.

16
Michael Osofsky

Jordan Fish vom Google Cloud Platform Support hat mir bei der Lösung dieses Problems geholfen. Er sagte:

Was die Fehlermeldung beim Versuch, den dev_appserver zu starten, betrifft, glaube ich, dass dies wahrscheinlich auf ein vm-Argument in der Ausführungskonfiguration für Ihr Projekt zurückzuführen ist. Können Sie bitte zur Ausführungskonfiguration gehen (mit dem ausgewählten Projekt, gehen Sie zum Menü Ausführen und wählen Sie Ausführungskonfigurationen), klicken Sie auf die Registerkarte Argumente und sehen Sie, was im Text VM= Argumente aufgeführt ist Box?

Hier war meine ursprüngliche VM Argumente:

-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

Folgendes habe ich geändert (doppelte Anführungszeichen um das als -javaagent: param übergebene Verzeichnis hinzugefügt):

-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

Dies hat mein Problem behoben. Ich konnte den Schritt "Projekt auf dem Server ausführen" über https://developers.google.com/appengine/docs/Java/webtoolsplatform#dynamic_web_project ausführen

28
Michael Osofsky

Sie müssen nur "" Zu Ihrer JAR-Datei hinter -javaagent Hinzufügen:

7
Crytis

Wenn Sie IntelliJ verwenden, sieht die Lösung etwas anders aus. Sie müssen die Ausführungskonfiguration auf dieselbe Weise wie die Eclipse-Benutzer bearbeiten, jedoch die "VM-Optionen" in diesem Format hinzufügen:

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

Beachten Sie die Formatierung mit den Klammern nach dem Doppelpunkt ohne Leerzeichen für jeden Parameter. Wenn Sie dies verpassen, erhalten Sie eine Laufzeitfehlermeldung über JavaAgent, das dieses Eingabeformat erwartet.

Denken Sie auch daran, dass Sie das Ganze in doppelte Anführungszeichen setzen müssen, wenn Sie ein Build-Tool wie Maven oder Gradle verwenden und dies zu Ihrer Java_ARGS-Variablen hinzufügen (über etwas wie MAVEN_OPTS).

Der zweite Parameter scheint notwendig zu sein, um DMEnhancer mitzuteilen, was instrumentiert werden soll (meiner war relativ zur obersten Ebene meines Klassenpfads; meine kompilierten POJOs befanden sich im META-INF-Verzeichnis).

Zuletzt stellen Sie möglicherweise fest, dass manchmal ein Fehler auftritt, wenn eine Klasse an zwei Stellen im Klassenpfad innerhalb der VM implementiert wird:

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

Dies scheint auf einen Fehler in der JVM zurückzuführen zu sein und wurde (unter MacOS X) in 1.8u152 behoben (zum Zeitpunkt des Schreibens gilt dies als verfügbares Early Access Release hier ). In diesem anderen answer finden Sie weitere Informationen zu diesem JVM-Fehler.

1
Jason D

Exportieren Sie die JAR-Datei mit der Manifestdatei in Eclipse wie folgt:

enter image description here [~ # ~] oder [~ # ~]

Manifest-Datei mit erstelltem Jar zusammenführen. CMD: jar ufm /Users/inzamam/Desktop/inzaa.jar META-INF/MANIFEST.MF

0
Inzamam Syed