Java3D Issue: BoneJ with latest Fiji version - Problem solved

bonej
imagej

#42

Please stick with us & have a go with BoneJ2 experimental as @rimadoma suggests, and let us know how you get on.

I personally need something strong before doing anything with Apple products; happy to give you my Martini recipe off-forum.


#43

LOL, if only I drank martinis (don’t hate me).

We are using the Volume Fraction component.

The truly frustrating thing about this is that I had it BoneJ and the 3D libraries working two weeks ago. Then the iMac crashed (new BTW) and got wiped by the Apple Store folks.

Thank you for the instructions. I will try this soonest and get back.

-Dave


#44

@ctreuden:

Thank you for the detailed reply. Unfortunately, I only understood about half of what you said. My forté is Windows.

As far as “sticking with an older version of macOS”, that may not be an option. This is a brand new iMac. I will give it some thought.

Do you think a Linux VM would be easier than getting this to work on Sierra?


#45

It would be worth a try. The performance of Java 3D in a VM may suffer (or may not—try and see). But hopefully it will at least still function.

Alternately, you could Boot Camp to Windows or Linux, which should retain good 3D performance.


#46

@ctreuden

Update:

In an attempt to get this working anywhere, I have now downloaded Fiji w/Java 6 and Fiji w/Java 8 onto my Win10 PC.

Our best case scenario right now (on both Mac and PC) goes like this…

  1. File -> Import -> Image Sequence -> select folder containing images -> wait while images are imported
  2. Plugins -> 3D Viewer (3D viewer launches fine with no errors) -> we can see and manipulate the compiled image in the 3D Viewer.
  3. Plugins -> BoneJ -> Volume Fraction -> Immediately get message: “Java 3D libraries are not installed. Please install and run the ImageJ 3D Viewer…etc…”

Does this help?

Thank you again for your time and attention.

Dave


#47

@Dave_Maag

It’s possible that even if the 3D viewer works for viewing, the libraries it uses under the hood have changed, so BoneJ doesn’t recognise them. @rimadoma suggested making BoneJ’s environment check more specific so that it only complains about missing 3D libraries at the point in the code when they’re really needed. I’m a bit short on bandwidth right now to do this for BoneJ1; the alternative is to have a go with BoneJ2.


#48

Sounds great. Which version did you use for testing in your following report? Java 6? Or Java 8?


#49

Maybe it’d be best to only complain about missing 3D libs where possible, i.e. “You wanted me to display surfaces, but I can’t. Here’s your other results though.” instead of “I won’t run because there are no 3D libs”. With Volume Fraction having the libs for creating a mesh is essential, and the surface based version cannot run without them. But the voxel based can.


#50

I used both.

I will try BoneJ2. Thank you.


#52

OK, good news. I was able to get this working by using BoneJ2. Thank you for the suggestion @mdoube

Next, I will go try this on the iMac.

Once more unto the breach, dear friends, once more…


#53

@mdoube Just a side note: at the moment BoneJ2 can create meshes with marching cubes and calculate their properties in Volume fraction and Isosurface, but it doesn’t know how to visualize them yet.


#54

Hi @Dave_Maag,

@ctrueden (big thanks!) and I have been trying to reproduce your problem on Windows 10, but in our environments BoneJ works fine. Here are the steps we took to get BoneJ up and running:

  1. Download and install Java 6 lifeline version of Fiji
  2. Download BoneJ and drop it to the Fiji.app/plugins/ folder as per normal.
  3. Launch Fiji and start using the plugins.

We’ve tested that these steps work on both Win 8.1 64-bit and Win 10 64-bit.

Best regards,
Richard


BoneJ Isosurface- cannot measure surface area BS(um^2)
#55

Thanks for this. Running Fiji under Ubuntu 16.04 with Java 8 update site, the 3D ImageJ suite was complaining that Java3D was not working, and this manual install fixed it.


#56

Hi everyone,

First, thank you all for your contributions to this thread over the years, this has been really helpful!

I wanted to use the Slice Geometry routine of BoneJ in Fiji last week, and followed the advice given here to download the Java 6 life-line version of Fiji – I’m on High Sierra 10.13.6, with Java 8.181 – but it wouldn’t even open on my computer (the latest version of Fiji, of course, works just fine when I don’t need to use BoneJ).

I know there are more and more High Sierra-related issues for BoneJ at each new update of it, but this one doesn’t seem to have been described anywhere, so I was wondering if anyone knew why the old Fiji won’t open and if there is anything to do about it. In the latest version of Fiji, I get an error message “java.lang.NoClassDefFoundError: javax/media/opengl/GLCapabilitiesChooser” when trying to use Slice Geometry.

Many thanks in advance!

Best regards,
Lucas


#57

Hi @Lucas_L,

Could you elaborate a bit, please? Your message makes me think you have two problems:

  1. BoneJ + Java 6 lifeline version of Fiji won’t work at all
  2. Your latest Fiji version has problems locating JavaFX libraries
    Do you have two different versions of Fiji installed on your computer?

Best regards,
Richard


#58

Hi Richard,

Here is the complete error message I get when I try to run Slice Geometry on any picture:

java.lang.NoClassDefFoundError: javax/media/opengl/GLCapabilitiesChooser
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:264)
	at javax.media.j3d.Pipeline$1.run(Pipeline.java:162)
	at java.security.AccessController.doPrivileged(Native Method)
	at javax.media.j3d.Pipeline.createPipeline(Pipeline.java:157)
	at javax.media.j3d.MasterControl.loadLibraries(MasterControl.java:965)
	at javax.media.j3d.VirtualUniverse.<clinit>(VirtualUniverse.java:299)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:264)
	at org.doube.util.ImageCheck.checkEnvironment(ImageCheck.java:240)
	at org.doube.bonej.SliceGeometry.run(SliceGeometry.java:193)
	at ij.IJ.runUserPlugIn(IJ.java:228)
	at ij.IJ.runPlugIn(IJ.java:192)
	at ij.Executer.runCommand(Executer.java:137)
	at ij.Executer.run(Executer.java:66)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassNotFoundException: javax.media.opengl.GLCapabilitiesChooser
	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	... 16 more

Indeed, I’ve had 2 versions of Fiji at the same time at one point (the Java 6 lifeline and the latest one). I have since deleted the lifeline one, since it wouldn’t work, but I have also tried to delete the latest one and see if the lifeline one could be opened as the only version of Fiji on my computer – it still couldn’t. Maybe I didn’t delete any of them the correct way – I thought different versions of Fiji/ImageJ installed on the same computer would be completely independent?

Hope this is clear enough!

Best,
Lucas


#59

Hi Lucas,

OK, so the BoneJ JAR only works in the Java 6 lifeline version, as detailed above. Unfortunately we’ve had reports of other Mac users who’ve had problems even with this solution. From experience it’s to forget what you’ve installed, and where, so maybe it’s worth trying to install the lifeline version one more time, rename it to say Fiji.app-lifeline, and make sure that bonej.jar goes there. On the other hand if you’re feeling adventurous, you could try the new BoneJ update site, which works with latest Fiji. Instructions here. NB This software is experimental.

As for your second question, I think the problem is that because of (past) licensing issues, Fiji doesn’t ship with a version of Java that includes JavaFX libraries. Try installing the Jave 8 JRE from the official Oracle site. Download and run the .dmg file.

Best regards,
Richard


#60

Thank you Richard, will try one more time and see if I can make it work.

Best regards,
Lucas