NOTICE! This is a static HTML version of a legacy Fiji BugZilla bug.

The Fiji project now uses GitHub Issues for issue tracking.

Please file all new issues there.

Bug 1121 - 3D Viewer plugin fails to launch.
3D Viewer plugin fails to launch.
Status: RESOLVED DUPLICATE of bug 1095
Product: Fiji
Classification: Unclassified
Component: 3D Viewer
unspecified
Macintosh Mac OS
: P4 normal
Assigned To: Benjamin Schmid
: 1122
Depends on:
Blocks:
 
Reported: 2015-07-20 05:52 CDT by Timothy Grocott
Modified: 2015-07-28 05:01 CDT
4 users (show)

See Also:

Description Timothy Grocott 2015-07-20 05:52:59 CDT
Having updated Fiji today, the 3D Viewer plugin now fails to launch. The plugin worked fine on Friday before I updated.

The following exception is printed to the console:

version = 1.5
Exception in thread "J3D-Renderer-1" java.lang.UnsatisfiedLinkError: no jogl in java.library.path
	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1886)
	at java.lang.Runtime.loadLibrary0(Runtime.java:849)
	at java.lang.System.loadLibrary(System.java:1088)
	at com.sun.opengl.impl.NativeLibLoader.loadLibraryInternal(NativeLibLoader.java:189)
	at com.sun.opengl.impl.NativeLibLoader.access$000(NativeLibLoader.java:49)
	at com.sun.opengl.impl.NativeLibLoader$DefaultAction.loadLibrary(NativeLibLoader.java:80)
	at com.sun.opengl.impl.NativeLibLoader.loadLibrary(NativeLibLoader.java:103)
	at com.sun.opengl.impl.NativeLibLoader.access$200(NativeLibLoader.java:49)
	at com.sun.opengl.impl.NativeLibLoader$1.run(NativeLibLoader.java:111)
	at java.security.AccessController.doPrivileged(Native Method)
	at com.sun.opengl.impl.NativeLibLoader.loadCore(NativeLibLoader.java:109)
	at com.sun.opengl.impl.macosx.MacOSXGLDrawableFactory.<clinit>(MacOSXGLDrawableFactory.java:53)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:190)
	at javax.media.opengl.GLDrawableFactory.getFactory(GLDrawableFactory.java:108)
	at javax.media.j3d.JoglPipeline$QueryCanvas.<init>(JoglPipeline.java:9010)
	at javax.media.j3d.JoglPipeline.getBestConfiguration(JoglPipeline.java:8774)
	at javax.media.j3d.Renderer.doWork(Renderer.java:495)
	at javax.media.j3d.J3dThread.run(J3dThread.java:256)

Information about your version of Java:

  os.arch => x86_64
  os.name => Mac OS X
  os.version => 10.9.5
  java.version => 1.7.0_55
  java.vendor => Oracle Corporation
  java.runtime.name => Java(TM) SE Runtime Environment
  java.runtime.version => 1.7.0_55-b13
  java.vm.name => Java HotSpot(TM) 64-Bit Server VM
  java.vm.version => 24.55-b03
  java.vm.vendor => Oracle Corporation
  java.vm.info => mixed mode
  java.awt.graphicsenv => sun.awt.CGraphicsEnvironment
  java.specification.name => Java Platform API Specification
  java.specification.version => 1.7
  sun.cpu.endian => little
  sun.desktop => null
  file.separator => /

The up-to-date check says: REMIND_LATER

Information relevant to JAVA_HOME related problems:

  JAVA_HOME is set to: /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/
  imagej.dir => /Applications/Fiji.app

Information about the version of each plugin:

Activated update sites:
ImageJ: http://update.imagej.net/ (last check:20150715220840)
Fiji: http://fiji.sc/update/ (last check:20150714172641)

Files not up-to-date:
  b732dbf2 (MODIFIED) 20150709103750 Contents/Info.plist
  1ad3be0d (LOCAL_ONLY) 20130220222017 jars/jpedalSTD.jar
  050fdbc5 (LOCAL_ONLY) 20150506230519 plugins/Atlas_Toolkit_1.0-SNAPSHOT.jar
  4ed3330f (LOCAL_ONLY) 20150526174630 plugins/Cell_Segmentation_3D_1.0-SNAPSHOT.jar
  3702fd24 (LOCAL_ONLY) 20140819180235 plugins/test_1.0-SNAPSHOT.jar
  d154c785 (LOCAL_ONLY) 20121218131047 plugins/zAtlas/Concurrent_Boxel_Projection_$1.class
  ff657229 (LOCAL_ONLY) 20121218131047 plugins/zAtlas/Concurrent_Boxel_Projection_.class
  cd67a477 (LOCAL_ONLY) 20131120110906 plugins/zAtlas/Extract_Nuclear_Signal_.class
  b543e229 (LOCAL_ONLY) 20140606153539 plugins/zAtlas/Label_Registration_3D_$1.class
  88881289 (LOCAL_ONLY) 20140606153539 plugins/zAtlas/Label_Registration_3D_$2.class
  f690e1e2 (LOCAL_ONLY) 20140606153539 plugins/zAtlas/Label_Registration_3D_.class
  dcc8c2a1 (LOCAL_ONLY) 20130929131029 plugins/zAtlas/Mean_from_Node_.class
  9db3aeb1 (LOCAL_ONLY) 20140119124228 plugins/zAtlas/Merge_Registered_Volumes_.class
  5ab56912 (LOCAL_ONLY) 20130111150417 plugins/zAtlas/NuclearSegmenter$Fvector3d.class
  daa1725c (LOCAL_ONLY) 20130111150417 plugins/zAtlas/NuclearSegmenter$Ivector3d.class
  775bc2c0 (LOCAL_ONLY) 20130111150417 plugins/zAtlas/NuclearSegmenter.class
  7e13b2cc (LOCAL_ONLY) 20130306164618 plugins/zAtlas/OrthogonalTransform.class
  63c32228 (LOCAL_ONLY) 20130512184220 plugins/zAtlas/OrthogonalTransformSequence$1.class
  b668837a (LOCAL_ONLY) 20130512184220 plugins/zAtlas/OrthogonalTransformSequence$OrthogonalPlane.class
  d3bdc333 (LOCAL_ONLY) 20130512184220 plugins/zAtlas/OrthogonalTransformSequence.class
  ddc80b2d (LOCAL_ONLY) 20131114222339 plugins/zAtlas/Project_to_Anatomy_$1.class
  44919b2c (LOCAL_ONLY) 20131114222339 plugins/zAtlas/Project_to_Anatomy_$2.class
  96b7940c (LOCAL_ONLY) 20131114222339 plugins/zAtlas/Project_to_Anatomy_$3.class
  06377a2e (LOCAL_ONLY) 20131114222339 plugins/zAtlas/Project_to_Anatomy_$GD.class
  d7084438 (LOCAL_ONLY) 20131114222339 plugins/zAtlas/Project_to_Anatomy_.class
  0eebc203 (LOCAL_ONLY) 20130627150154 plugins/zAtlas/Sample_Volumes_.class
  dc335d42 (LOCAL_ONLY) 20130512184016 plugins/zAtlas/Sequential_Orthogonal_Registration_$1.class
  74c0ac91 (LOCAL_ONLY) 20130512184016 plugins/zAtlas/Sequential_Orthogonal_Registration_$2.class
  1044e481 (LOCAL_ONLY) 20130512184016 plugins/zAtlas/Sequential_Orthogonal_Registration_.class
  c70158cc (LOCAL_ONLY) 20130628185017 plugins/zAtlas/StackRegister.class
  0ae985dc (LOCAL_ONLY) 20130307113816 plugins/zAtlas/Transform_Stack_$1.class
  19db5aa4 (LOCAL_ONLY) 20130307113816 plugins/zAtlas/Transform_Stack_$2.class
  5cedd6c3 (LOCAL_ONLY) 20130307113816 plugins/zAtlas/Transform_Stack_.class
  00b2ba4d (LOCAL_ONLY) 20130428233126 plugins/zAtlas/Transform_Stack_new_$1.class
  d146a7c9 (LOCAL_ONLY) 20130512021451 plugins/zAtlas/Transform_Stack_new_.class
  5a54607f (LOCAL_ONLY) 20130626173737 plugins/zAtlas/Tree_to_Volume_$Node.class
  9375f83c (LOCAL_ONLY) 20130626173737 plugins/zAtlas/Tree_to_Volume_$TreeProcessor.class
  dbde5b3f (LOCAL_ONLY) 20130626173737 plugins/zAtlas/Tree_to_Volume_.class
  68850723 (LOCAL_ONLY) 20130221104848 plugins/zAtlas/cSegment_Cell_Nuclei_$1.class
  6f18214f (LOCAL_ONLY) 20130221104848 plugins/zAtlas/cSegment_Cell_Nuclei_.class
  ea0435ae (LOCAL_ONLY) 20130917113455 plugins/zAtlas/log10.class
  5fb3e5aa (LOCAL_ONLY) 20120302012545 plugins/zAtlas/org-netbeans-swing-outline.jar
Comment 1 Curtis Rueden 2015-07-20 11:22:45 CDT
This is a known issue, which we plan to address later this summer.
 
If curious about technical details, see:
https://github.com/imagej/imagej/issues/120

In the meantime, you can use Java 6 as a workaround.

http://imagej.net/FAQ#How_do_I_set_up_Java_6_on_OS_X.3F
http://imagej.net/FAQ#On_OS_X

But you would need to uninstall Java 8 for that to work, unfortunately.
Comment 2 Curtis Rueden 2015-07-20 11:23:14 CDT
*** Bug 1122 has been marked as a duplicate of this bug. ***
Comment 3 Timothy Grocott 2015-07-22 12:33:47 CDT
*** Something weird with JAVA_HOME ***

The suggested workaround was to uninstall Java 8 and use use Java 6 instead. I do not have Java 8 installed on my system (still running Mavericks so haven't needed to), but apparently there is a cryptic/hidden version of Java 7...

I noticed that under "Information about your version of Java:" it says that I am using Java 7 (1.7.0_55), yet when I run "java -version" from the terminal it says I am running Java 6 (1.6.0_55).

The folder "/Library/Java/JavaVirtualMachines" is empty.

The Folder "/System/Library/Java/JavaVirtualMachines" contains a copy of "jdk1.6.0.jdk" only, no other versions are present in this folder.

From my bug report, under "Information about your version of Java:" Fiji reports that "JAVA_HOME is set to: /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/".

According to OS X, JAVA_HOME is set to "/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home"

Why would Fiji be pointing to a different version of Java (Java 7) hidden inside an "internet plug-in", when the according to OS X I am running Java 6? Is this normal? If not, how can I fix it? I just removed and re-installed Fiji in case something got corrupted, but it still reports Java 7, and JAVA_HOME still points to that same "internet plug-in".

From examining other user's bug reports, their Fiji reports that JAVA_HOME is set to a sub-folder of "/Library/Java/JavaVirtualMachines".

There seems to be some dis-connect between Fiji and OS X regarding what version of Java I am using.

I tried forcing Fiji to use Java 6 via "--java-home" but Fiji failed to launch citing a missing library.

I guess my next move is to try reinstalling Java 6 (and then Fiji, in that order?) to see if that fixes Fiji's JAVA_HOME pointer. I don't know if it is safe to remove the offending "internet plug-in".

PS - I am using Netbeans to develop plugins. Could installing Netbeans have interfered with JAVE_HOME?

PPS - I don't know anything about internet plug-ins, but I'm using Google Chrome as a browser.

PPPS - I am trying to publish a Fiji plugin that requires a working version of 3D Viewer and am a little concerned about this problem arising during peer review.
Comment 4 Curtis Rueden 2015-07-22 13:02:38 CDT
> From my bug report, under "Information about your version of Java:"
> Fiji reports that "JAVA_HOME is set to: /Library/Internet
> Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/".
> 
> According to OS X, JAVA_HOME is set to
> "/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home"
> 
> Why would Fiji be pointing to a different version of Java (Java 7)
> hidden inside an "internet plug-in", when the according to OS X I am
> running Java 6? Is this normal?

Yes, it looks like Java 7 was installed from java.com, which installs a JRE (not a JDK) into the "/Library/Internet Plug-Ins/JavaAppletPlugin.plugin" folder.

You can uninstall that copy of Java 7 as described here:
https://www.java.com/en/download/help/mac_uninstall_java.xml

It basically just boils down to deleting that folder.

Actually though, it _is_ possible to use Java 6 with ImageJ even if you have Java 7 and/or 8 installed, but you have to do it a little differently. I updated the FAQ accordingly:

   http://imagej.net/FAQ#On_OS_X

> I tried forcing Fiji to use Java 6 via "--java-home" but Fiji failed
> to launch citing a missing library.

Right. As stated in the FAQ, the launcher's --java-home option does not support Apple Java anymore.

> I guess my next move is to try reinstalling Java 6 (and then Fiji, in
> that order?) to see if that fixes Fiji's JAVA_HOME pointer. I don't
> know if it is safe to remove the offending "internet plug-in".

It is totally safe, and the easiest solution to your problems, to just delete that JavaAppletPlugin.plugin folder. The only ramification will be that Java applets will not work in your browser anymore. But very few sites use Java applets these days. You would probably know if you use such a site, because of all the security hoops you have to jump through in those cases.

> I am trying to publish a Fiji plugin that requires a working version
> of 3D Viewer and am a little concerned about this problem arising
> during peer review.

We plan to address the 3D Viewer shortcomings before the end of the summer. But it will probably be a few more weeks. There will be an announcement when Fiji is updated to make the 3D Viewer work with Java 8 on OS X.

*** This bug has been marked as a duplicate of bug 1095 ***
Comment 5 Curtis Rueden 2015-07-22 13:07:01 CDT
Note that the invocation to launch ImageJ with Java 6 I gave in the FAQ will likely not _quite_ work for you to result in a working 3D Viewer. This is because of the "sed" part that strips the java.ext.dirs argument. _Part_ of that argument is needed in order to find the bundled version of Java 3D used by the 3D Viewer. But another part (the part that adds Java 7/8's lib/ext directory) should _not_ be there, or else the launch will fail.

All of this stuff is a real pain, and these issues will go away once we switch to JavaFX-based deployment later this summer.
Comment 6 Timothy Grocott 2015-07-28 05:01:42 CDT
Just wanted to confirm that deleting "/Library/Internet Plug-Ins/JavaAppletPlugin.plugin" resolved my issue with the different Java versions. Fiji is now reporting Java 6 and the 3D viewer is running fine again.

Many thanks for your time and patience - it is very much appreciated!