Error opening zip file or JAR manifest missing : C:\Program

122,242

Solution 1

Jordan Fish from Google Cloud Platform Support helped me solve this problem. He said:

As far as the error message when you try to start the dev_appserver, I believe this is probably due to a vm argument in the run configuration for your project. Can you please go to the run configuration (with the project selected, go to the Run menu and select Run Configurations), click on the Arguments tab, and see what is listed in the VM arguments text box?

Here was my original VM arguments:

-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

Here is what I changed it to (added double quotes around the directory that's passed as the -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

This fixed my problem, I was able to complete step "Running project on the Server" from https://developers.google.com/appengine/docs/java/webtoolsplatform#dynamic_web_project

Solution 2

You just have to add "" to your jar file behind -javaagent:

Solution 3

If you use IntelliJ the solution appears to be slightly different. You need to edit the Run Configuration the same way that the Eclipse users do, but add the "VM Options" using this format instead:

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

Note the formatting with the brackets after the colon with no spaces for each parameter. If you miss that you'll get a runtime error message about JavaAgent expecting that input format.

Also, remember that if you use a build tool like Maven or Gradle and add this to your JAVA_ARGS variable (via something like MAVEN_OPTS) you'll need to wrap the whole thing in double quotes.

The second parameter appears to be necessary to tell DMEnhancer what to instrument (mine was relative to the top level of my classpath; because my compiled POJOs were in the META-INF directory).

Lastly, you may notice that you sometimes get an error talking about a class being implemented in two places in the classpath internal to the VM:

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

This seems to happen because of a bug in the JVM and is fixed (on MacOS X) in 1.8u152 (at the time of writing, this is considered an Early Access Release available here). See this other answer for more information on this JVM bug.

Share:
122,242

Related videos on Youtube

Michael Osofsky
Author by

Michael Osofsky

Interested in Behavior Driven Development (BDD), Test Driven Development (TDD), Vipassana meditation, innovation, transgender issues, and chocolate.

Updated on June 27, 2020

Comments

  • Michael Osofsky
    Michael Osofsky almost 4 years

    I'm on step "Running project on the Server" from https://developers.google.com/appengine/docs/java/webtoolsplatform#dynamic_web_project and I ran into a problem:

    Error occurred during initialization of VM agent library failed to init: instrument Error opening zip file or JAR manifest missing : C:\Program

    Another person reported a similar problem here: Error opening zip file or JAR manifest missing : C:/Program. But the solution was for a different set of technologies. I'm using Eclipse, Web Tools Platform, and Google-App-Engine.

    Most likely it's because my Java is installed in C:\Program Files, a directory which contains a space. But I'm not sure how to fix this. I’m not sure how to safely move the Java\jre7 directory to a directory without a space in it.

  • matthieusb
    matthieusb over 6 years
    This pretty much saved my life. Thanks !
  • kensai
    kensai over 6 years
    in case of Intellij idea I just had to put my jar into /opt/intellij/bin directory,no need for full path or double quotes or classes meta-inf. but thanks for this elaboration anyway, it helps to understand how it works on low-level.
  • User9102d82
    User9102d82 over 4 years
    @Crytis: Not able to understand this. Could you please give an explicit example?
  • razvang
    razvang over 4 years
    In Intellij -javaagent:"/Users/razvan/Downloads/dcevm8u232b09/Contents/H‌​ome/jre/lib/ext/hots‌​wap-agent.jar"