Skip to content

Instantly share code, notes, and snippets.

@ctrueden
Last active August 29, 2015 14:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ctrueden/1a13596ab64aee382806 to your computer and use it in GitHub Desktop.
Save ctrueden/1a13596ab64aee382806 to your computer and use it in GitHub Desktop.
ImageJ launcher --main-class flag
: curtis@sirius-linux64 ~/code/ome/openmicroscopy/dist/lib/ImageJ.app (imagej-scripts)
jar tf jars/x.jar
META-INF/
META-INF/MANIFEST.MF
foo/
foo/X.class
foo/X.java
: curtis@sirius-linux64 ~/code/ome/openmicroscopy/dist/lib/ImageJ.app (imagej-scripts)
javap -cp jars/x.jar foo.X
Compiled from "X.java"
public class foo.X {
public foo.X();
public static void main(java.lang.String...);
}
: curtis@sirius-linux64 ~/code/ome/openmicroscopy/dist/lib/ImageJ.app (imagej-scripts)
java -cp jars/x.jar foo.X
<---------- Hello world! --------->
: curtis@sirius-linux64 ~/code/ome/openmicroscopy/dist/lib/ImageJ.app (imagej-scripts)
./ImageJ-linux64 --debug --main-class foo.X
Available RAM: 430MB, using 3/4 of that: 323MB
JRE not found in '/home/curtis/code/ome/openmicroscopy/dist/lib/ImageJ.app/jre'
JAVA_HOME points to a JRE: '/usr/lib/jvm/java-7-openjdk-amd64/jre'
Re-executing with correct library lookup path (/usr/share/java:/usr/lib::/home/curtis/code/ome/openmicroscopy/dist/lib/ImageJ.app/lib/linux64:/home/curtis/code/ome/openmicroscopy/dist/lib/ImageJ.app/mm/linux64)
Available RAM: 430MB, using 3/4 of that: 323MB
JRE not found in '/home/curtis/code/ome/openmicroscopy/dist/lib/ImageJ.app/jre'
JAVA_HOME points to a JRE: '/usr/lib/jvm/java-7-openjdk-amd64/jre'
java -Dpython.cachedir.skip=true -Dplugins.dir=/home/curtis/code/ome/openmicroscopy/dist/lib/ImageJ.app -Xmx323m -Xincgc -XX:PermSize=128m -Djava.class.path=/home/curtis/code/ome/openmicroscopy/dist/lib/ImageJ.app/jars/imagej-launcher-3.0.1-SNAPSHOT.jar -Dimagej.dir=/home/curtis/code/ome/openmicroscopy/dist/lib/ImageJ.app -Dij.dir=/home/curtis/code/ome/openmicroscopy/dist/lib/ImageJ.app -Dfiji.dir=/home/curtis/code/ome/openmicroscopy/dist/lib/ImageJ.app -Dfiji.defaultLibPath=lib/amd64/server/libjvm.so -Dfiji.executable=./ImageJ-linux64 -Dij.executable=./ImageJ-linux64 -Djava.library.path=/usr/share/java:/usr/lib::/home/curtis/code/ome/openmicroscopy/dist/lib/ImageJ.app/lib/linux64:/home/curtis/code/ome/openmicroscopy/dist/lib/ImageJ.app/mm/linux64 -Dij.debug=true -Dscijava.log.level=debug net.imagej.launcher.ClassLauncher -classpath . foo.X
Using JAVA_HOME /usr/lib/jvm/java-7-openjdk-amd64/jre
Opening Java library /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server/libjvm.so
Adding option: -Djava.home=/usr/lib/jvm/java-7-openjdk-amd64
Launching main class foo.X with parameters []
Class loader = sun.misc.Launcher$AppClassLoader@52934c3b
java.lang.ClassNotFoundException: foo.X
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at net.imagej.launcher.ClassLauncher.launch(ClassLauncher.java:205)
at net.imagej.launcher.ClassLauncher.run(ClassLauncher.java:158)
at net.imagej.launcher.ClassLauncher.main(ClassLauncher.java:71)
Exception in thread "main" java.lang.NullPointerException
at net.imagej.launcher.ClassLauncher.launch(ClassLauncher.java:222)
at net.imagej.launcher.ClassLauncher.run(ClassLauncher.java:158)
at net.imagej.launcher.ClassLauncher.main(ClassLauncher.java:71)
package foo;
public class X {
public static void main(String... args) {
System.out.println("<---------- Hello world! --------->");
}
}
@ctrueden
Copy link
Author

ctrueden commented May 9, 2014

Add --full-classpath to make this work!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment