Bug#705565: more detail

Daniel Pocock daniel at pocock.com.au
Tue Aug 27 15:10:50 UTC 2013


severity -1 grave

Not usable currently

Easily fixed though

It needs the main class declared in the manifest, from upstream, that
appears to be com.google.javascript.jscomp.CommandLineRunner


I tried running the JAR from this package manually:

java -classpath /usr/share/java/closure-compiler.jar
com.google.javascript.jscomp.CommandLineRunner

and it fails with

Exception in thread "main" java.lang.NoClassDefFoundError:
org/kohsuke/args4j/CmdLineException
Caused by: java.lang.ClassNotFoundException:
org.kohsuke.args4j.CmdLineException
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class:
com.google.javascript.jscomp.CommandLineRunner.  Program will exit.

Comparing the JAR with upstream's JAR, it looks like org/kohsuke has
been stripped out.  If that is in another package then it needs to be a
dependency and it also needs to be listed in the manifest of
closure-compiler.jar so that it will be found automatically

I manually installed libargs4-java and I then get

Exception in thread "main" java.lang.NoClassDefFoundError:
com/google/common/io/LimitInputStream
Caused by: java.lang.ClassNotFoundException:
com.google.common.io.LimitInputStream
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class:
com.google.javascript.jscomp.CommandLineRunner.  Program will exit.



and adding libguava-java I then get another exception about
org/json/JSONException


....


finally, it works with this command line:

java -classpath
/usr/share/java/closure-compiler.jar:/usr/share/java/args4j.jar:/usr/share/java/guava.jar:/usr/share/java/json.jar
com.google.javascript.jscomp.CommandLineRunner

and these dependencies:

libargs4-java libguava-java libandroid-json-org-java



More information about the pkg-java-maintainers mailing list