Hi Julien,
It is quite possible that I have the --add-opens incorrectly formatted... This is what I have, so far: <resources> <j2se version="1.8+" initial-heap-size="64m" max-heap-size="384m" java-vm-args="-ea --add-opens=java.base/java.util=ALL-UNNAMED" /> <extension name="Java3D" href="jogl.jnlp"> </extension> <jar href="joglquad.jar" /> </resources> I am very unsure about --add-opens=java.base/java.util=ALL-UNNAMED perhaps --add-opens java.base/=ALL-UNNAMED ? Not sure about that at all...really. Any ideas? Should I be using add-exports? http://openjdk.java.net/jeps/261 says: "It is sometimes necessary to violate the access-control boundaries defined by the module system, and enforced by the compiler and virtual machine, in order to allow one module to access some of the unexported types of another module. This may be desirable in order to, e.g., enable white-box testing of internal types, or to expose unsupported internal APIs to code that has come to depend upon them. The --add-exports option can be used, at both compile time and run time, to do this. Its syntax is: --add-exports <source-module>/<package>=<target-module>(,<target-module>)*" The --add-exports option enables access to the public types of a specified package. It is sometimes necessary to go further and enable access to all non-public elements via the setAccessible method of the core reflection API. The --add-opens option can be used, at run time, to do this. It has the same syntax as the --add-exports option: --add-opens <source-module>/<package>=<target-module>(,<target-module>)* where <source-module> and <target-module> are module names and <package> is the name of a package. --- I must say, both extensions are all very new, to me. Thanks! - Doug On 1/3/18 2:46 PM, gouessej [via jogamp] wrote: > Douglas, according to your stack trace, either there is still something > wrong with "--add-opens" or you forgot a part of my suggestion. > > You can simply use jogamp-fat.jar and the automated native library > loading will extract and load the appropriate native libraries, it would > simplify your JNLP file. > > Happy new year everybody. > Julien Gouesse | Personal blog <http://gouessej.wordpress.com> | Website > <http://tuer.sourceforge.net> > > > ------------------------------------------------------------------------ > If you reply to this email, your message will be added to the discussion > below: > http://forum.jogamp.org/Jogl-Jogamp-on-Java-9-tp4038012p4038480.html > To unsubscribe from Jogl/Jogamp on Java 9, click here > < > NAML > <http://forum.jogamp.org/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml> > |
In reply to this post by gouessej
https://vimeo.com/249658772
has a demo showing jogl+jdk9+ mac running, as well as a demo showing jogl+jdk9+jws+mac as well as a demo of java3d/jogl+jdk9+jws+ mac. There is an interesting exception being thrown, but we are catching it and now things are running fine. I wish I could say it was easy...once we had the mac libs set, we used: with <extension name="Java3D" href="jogl.jnlp"> </extension> in the root jnlp and jogl.jnlp containing: <resources os="Mac"> <jar href="libs/jogl/j3dcore.jar" download="eager"/> <jar href="libs/jogl/j3dutils.jar" download="eager"/> <jar href="libs/jogl/vecmath.jar" download="eager"/> <jar href="libs/jogl/jogamp-fat.jar" download="eager"/> </resources> Now, if only we could get windows to work. The problem appears to be the amd64 dlls are not for 64bit machines. <resources os="Windows"> <jar href="libs/jogl/j3dcore.jar" download="eager"/> <jar href="libs/jogl/j3dutils.jar" download="eager"/> <jar href="libs/jogl/vecmath.jar" download="eager"/> <jar href="libs/jogl/jogamp-fat.jar" download="eager"/> </resources> <resources os="Windows" arch="amd64"> <nativelib href="libs/jogl/natives/windows-amd64/gluegen-rt.dll.jar" download="e ager"/> <nativelib href="libs/jogl/natives/windows-amd64/joal.dll.jar" download="eager"/ > <nativelib href="libs/jogl/natives/windows-amd64/jocl.dll.jar" download="eager"/ > <nativelib href="libs/jogl/natives/windows-amd64/jogl_desktop.dll.jar" download= "eager"/> <nativelib href="libs/jogl/natives/windows-amd64/jogl_mobile.dll.jar" download=" eager"/> <nativelib href="libs/jogl/natives/windows-amd64/nativewindow_awt.dll.jar" downl oad="eager"/> <nativelib href="libs/jogl/natives/windows-amd64/nativewindow_win32.dll.jar" dow nload="eager"/> <nativelib href="libs/jogl/natives/windows-amd64/newt.dll.jar" download="eager"/ > <nativelib href="libs/jogl/natives/windows-amd64/oculusvr.dll.jar" download="eag er"/> <nativelib href="libs/jogl/natives/windows-amd64/soft_oal.dll.jar" download="eag er"/> </resources> why is windows-amd64/nativewindow_win32.dll.jar in the 64bit directory? Is that right? These dlls don't feel right, to me. used to be, all we needed was: <resources os="Windows" arch="amd64"> <nativelib href="libs/windows-amd64/j3dcore-ogl_dll.jar" download="eager"/> </resources> Something changed and made the dll assortment complicated. on windows, webstart likes each dll to be in its own signed wrapper....so perhaps the fat object should be removed. Could be a load of the wrong dll in the wrong order (a fruitful source of bugs!)...I don't know. Anybody have any ideas about this? Thanks! - Doug |
Administrator
|
j3dcore-ogl_dll does not exist in Java3D >= 1.6.0!!! It was used in Java3D <= 1.5.2 by the native OpenGL renderer NOT based on JOGL. You're still mixing Java3D 1.6.0 with an obsolete version. Yes it's right, win32 designates the Win32 API whatever the bitness.
Keep in mind that numerous virus scanners are paranoid. Sometimes, they block the DLLs being extracted by GlueGen when using jogamp-far.jar but it happens with DLLs provided in separate JARs in some rare cases too. You can adapt your deployment to work around some unwanted behaviours but it won't work everywhere with Java Webstart. The least annoying solution (in my humble opinion) consists in not using Java Webstart and deploying the native libraries directly without using JARs which is impossible with Java Webstart. This is what causes the least problems. The stack trace mentions the bug 1004, I'll have to investigate. Edit.: If you still need j3dcore-ogl_dll, it means that your installation is dirty and you still use Java3D 1.5.2. It solves nothing for sure as Java3D 1.6.0 doesn't load it.
Julien Gouesse | Personal blog | Website
|
You Write:
"You're still mixing Java3D 1.6.0 with an obsolete version." How do I track down all obsolete versions of java3d and remove them? Perhaps there is a configuration issue here. It seems that all of my efforts (no matter how extreme) are unable to solve this basic issue. In the c: drive I have searched for joamp and j3dcore and there are no files (at least in the "program files\java" dir) with this name. Also, things are working with intellij I note that "imagej" has its own jvms and an older version of java3d. I used the uninstaller to remove it. The mac seems to be working fine, with webstart. But the web start resources on a mac: <resources os="Mac"> <jar href="libs/jogl/j3dcore.jar" download="eager"/> <jar href="libs/jogl/j3dutils.jar" download="eager"/> <jar href="libs/jogl/vecmath.jar" download="eager"/> <jar href="libs/jogl/jogamp-fat.jar" download="eager"/> </resources> would not work, as is, for windows. So I broke out the dlls and signed them separately for amd6 and 386; <resources os="Windows"> <jar href="libs/jogl/j3dcore.jar" download="eager"/> <jar href="libs/jogl/j3dutils.jar" download="eager"/> <jar href="libs/jogl/vecmath.jar" download="eager"/> </resources> Here, I added the awt.dll.jar, even though I know awt is a part of the jre. I did this because I was getting an exception on the windows machine that it "can't find awt.dll". <resources os="Windows" arch="amd64"> <nativelib href="libs/jogl/natives/windows-amd64/awt.dll.jar" download="eager"/> <nativelib href="libs/jogl/natives/windows-amd64/gluegen-rt.dll.jar" download="eager"/> <nativelib href="libs/jogl/natives/windows-amd64/joal.dll.jar" download="eager"/> <nativelib href="libs/jogl/natives/windows-amd64/jocl.dll.jar" download="eager"/> <nativelib href="libs/jogl/natives/windows-amd64/jogl_desktop.dll.jar" download="eager"/> <nativelib href="libs/jogl/natives/windows-amd64/jogl_mobile.dll.jar" download="eager"/> <nativelib href="libs/jogl/natives/windows-amd64/nativewindow_awt.dll.jar" download="eager"/> <nativelib href="libs/jogl/natives/windows-amd64/nativewindow_win32.dll.jar" download="eager"/> <nativelib href="libs/jogl/natives/windows-amd64/newt.dll.jar" download="eager"/> <nativelib href="libs/jogl/natives/windows-amd64/oculusvr.dll.jar" download="eager"/> <nativelib href="libs/jogl/natives/windows-amd64/soft_oal.dll.jar" download="eager"/> </resources> <resources os="Windows" arch="x86"> <nativeib href="libs/jogl/natives/windows-i586/gluegen-rt.dll.jar" download="eager"/> <nativeib href="libs/jogl/natives/windows-i586/joal.dll.jar" download="eager"/> <nativeib href="libs/jogl/natives/windows-i586/jocl.dll.jar" download="eager"/> <nativeib href="libs/jogl/natives/windows-i586/jogl_desktop.dll.jar" download="eager"/> <nativeib href="libs/jogl/natives/windows-i586/jogl_mobile.dll.jar" download="eager"/> <nativeib href="libs/jogl/natives/windows-i586/nativewindow_awt.dll.jar" download="eager"/> <nativeib href="libs/jogl/natives/windows-i586/nativewindow_win32.dll.jar" download="eager"/> <nativeib href="libs/jogl/natives/windows-i586/newt.dll.jar" download="eager"/> <nativeib href="libs/jogl/natives/windows-i586/oculusvr.dll.jar" download="eager"/> <nativeib href="libs/jogl/natives/windows-i586/soft_oal.dll.jar" download="eager"/> </resources> I deleted all the temporary files and cleared the java cache viewer in webstart. java.lang.ArrayIndexOutOfBoundsException: -1 at jogamp.opengl.windows.wgl.awt.WindowsAWTWGLGraphicsConfigurationFactory.chooseGraphicsConfigurationImpl(WindowsAWTWGLGraphicsConfigurationFactory.java:171) at com.jogamp.nativewindow.GraphicsConfigurationFactory.chooseGraphicsConfiguration(GraphicsConfigurationFactory.java:424) at com.jogamp.opengl.awt.GLCanvas.chooseGraphicsConfiguration(GLCanvas.java:1560) at com.jogamp.opengl.awt.GLCanvas.addNotify(GLCanvas.java:611) at java.desktop/java.awt.Container.addNotify(Unknown Source) at java.desktop/java.awt.Window.addNotify(Unknown Source) at java.desktop/java.awt.Frame.addNotify(Unknown Source) at java.desktop/java.awt.Window.show(Unknown Source) at java.desktop/java.awt.Component.show(Unknown Source) at java.desktop/java.awt.Component.setVisible(Unknown Source) at java.desktop/java.awt.Window.setVisible(Unknown Source) at j3d.JOGLQuad.main(JOGLQuad.java:96) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.base/java.lang.reflect.Method.invoke(Unknown Source) at jdk.javaws@9.0.1/com.sun.javaws.Launcher.executeApplication(Unknown Source) at jdk.javaws@9.0.1/com.sun.javaws.Launcher.executeMainClass(Unknown Source) at jdk.javaws@9.0.1/com.sun.javaws.Launcher.doLaunchApp(Unknown Source) at jdk.javaws@9.0.1/com.sun.javaws.Launcher.run(Unknown Source) at java.base/java.lang.Thread.run(Unknown Source) If we deploy jars directly, as you suggest below how will we avoid improperly synchronized versions? Don't we need an installer and an uninstaller for this? Without webstart how will we deploy to the public? I know, someone said that webstart will be removed in the future, but we never are told why, or when, or what is to replace it. If someone knows what we, as Java programmers are supposed to do, that would be good to know. Thanks! - Doug On 1/6/18 2:41 PM, gouessej [via jogamp] wrote: > j3dcore-ogl_dll does not exist in Java3D >= 1.6.0!!! It was used in > Java3D <= 1.5.2 by the native OpenGL renderer *NOT* based on JOGL. > You're still mixing Java3D 1.6.0 with an obsolete version. Yes it's > right, win32 designates the Win32 API whatever the bitness. > > Keep in mind that numerous virus scanners are paranoid. Sometimes, they > block the DLLs being extracted by GlueGen when using jogamp-far.jar but > it happens with DLLs provided in separate JARs in some rare cases too. > You can adapt your deployment to work around some unwanted behaviours > but it won't work everywhere with Java Webstart. The least annoying > solution (in my humble opinion) consists in not using Java Webstart and > deploying the native libraries directly without using JARs which is > impossible with Java Webstart. This is what causes the least problems. > > The stack trace mentions the bug 1004, I'll have to investigate. > Julien Gouesse | Personal blog <http://gouessej.wordpress.com> | Website > <http://tuer.sourceforge.net> > > > ------------------------------------------------------------------------ > If you reply to this email, your message will be added to the discussion > below: > http://forum.jogamp.org/Jogl-Jogamp-on-Java-9-tp4038012p4038483.html > To unsubscribe from Jogl/Jogamp on Java 9, click here > < > NAML > <http://forum.jogamp.org/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml> > |
Administrator
|
Look for "j3d". Ok the problem seems to come from mixing Java3D 1.6.0 with a version of imagej using an old version of Java3D. You mustn't mix two versions of Java3D. Using Java3D 1.7.0 would avoid some cases of name clashes as it uses a different package namespace but anyway, you can't load both JOGL 1 for an obsolete version of Java3D and JOGL 2 for Java3D >= 1.6. Maybe the uninstaller of imagej doesn't clean up everything correctly.
I advise you to wrap your JARs into a native software with Oracle javapackager or with JNDT (my tool) but it will be up to you to push the updates. Sorry but if you need to copy a DLL that should be available in the JRE, I don't see what I can do to help you. In my humble opinion, some of your problems can't be reproduced by others including me, there are some serious problems on your own machines. For example, I have no problem of missing AWT or whatever with Java 1.9 and earlier versions under Microsoft Windows 10 and JOGL 2 with or without Java3D. I advise you to switch to a more recent version of imagej and to modify it if necessary to make it use Java3D 1.6.0 or 1.7 instead of an homemade fork with yet another different namespace "org.scijava.java3d".
Julien Gouesse | Personal blog | Website
|
Just to be clear, ImageJ is removed and is not on the machine.
You wrote: "Look for "j3d"." I put this into "search programs and files" and came up empty. Nothing shows up.... You wrote: "Ok the problem seems to come from mixing Java3D 1.6.0 > with a version of imagej using an old version of Java3D." but imagej is uninstalled, so how can that still be true? You wrote: "Using Java3D 1.7.0 would avoid some cases of > name clashes as it uses a different package namespace but anyway, you > can't load both JOGL 1 for an obsolete version of Java3D and JOGL 2 for > Java3D >= 1.6." But at this point, your jogl example does not work with webstart on a windows machine. I do not think you can blame java3d for this, right? You wrote: "Maybe the uninstaller of imagej doesn't clean up > everything correctly" Hmm, tricky! I did search the C: drive for imagej, The program files/imagej was still there. Good call!! I removed the folder. You write: "In my humble opinion, some of your problems can't be reproduced by > others including me, there are some serious problems on your own > machines." Here is my test of your program for the simple quads: http://www.docjava.com/book/cgij/code/jnlp/joglquad.jnlp Are you able to reproduce the exception on your machine (windows 7 is what I am using)? I think predrag is also able to reproduce exception. We had PM about that. Getting the error consistent across platforms does seem important. You write: "Using Java3D 1.7.0 would avoid some cases of > name clashes as it uses a different package namespace ..." I would like to just focus on getting jogl to work with windows and webstart, for now. "I advise you to wrap your JARs into a native software with Oracle > javapackager ".. or > with JNDT (my tool) but it will be up to you to push the updates. Ah ha, that is different. JNDT, I never heard of this. The links listed here: https://gouessej.wordpress.com/2014/11/22/ardor3d-est-mort-vive-jogamps-ardor3d-continuation-ardor3d-is-dead-long-life-to-jogamps-ardor3d-continuation/#jndt are bad...for example: http://svn.code.sf.net/p/tuer/code/pre_beta/jndt.xml no longer goes anywhere... I now have 193 jnlp files that help with webstart deployment. Switching them over to some new technology like jndt sounds like a lot of work. Thanks! - Doug On 1/7/18 9:09 AM, gouessej [via jogamp] wrote: > Look for "j3d". Ok the problem seems to come from mixing Java3D 1.6.0 > with a version of imagej using an old version of Java3D. You mustn't mix > two versions of Java3D. Using Java3D 1.7.0 would avoid some cases of > name clashes as it uses a different package namespace but anyway, you > can't load both JOGL 1 for an obsolete version of Java3D and JOGL 2 for > Java3D >= 1.6. Maybe the uninstaller of imagej doesn't clean up > everything correctly. > > I advise you to wrap your JARs into a native software with Oracle > javapackager > <https://docs.oracle.com/javase/8/docs/technotes/tools/windows/javapackager.html> or > with JNDT (my tool) but it will be up to you to push the updates. > > Sorry but if you need to copy a DLL that should be available in the JRE, > I don't see what I can do to help you. > > In my humble opinion, some of your problems can't be reproduced by > others including me, there are some serious problems on your own > machines. For example, I have no problem of missing AWT or whatever with > Java 1.9 and earlier versions under Microsoft Windows 10 and JOGL 2 with > or without Java3D. > > I advise you to switch to a more recent version of imagej and to modify > it if necessary to make it use Java3D 1.6.0 or 1.7 instead of an > homemade fork with yet another different namespace "org.scijava.java3d". > Julien Gouesse | Personal blog <http://gouessej.wordpress.com> | Website > <http://tuer.sourceforge.net> > > > ------------------------------------------------------------------------ > If you reply to this email, your message will be added to the discussion > below: > http://forum.jogamp.org/Jogl-Jogamp-on-Java-9-tp4038012p4038485.html > To unsubscribe from Jogl/Jogamp on Java 9, click here > < > NAML > <http://forum.jogamp.org/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml> > |
Administrator
|
If ImageJ installed a JVM with Java3D installed inside it as an extension and if somehow Java Webstart uses this JVM, it won't work. Please look at the whole hard drive. Do you use a virus scanner under Windows? My JOGL example works fine under Microsoft Windows 10, 8, 7, Vista, ... I don't blame Java3D for this but JOGL is not to blame neither (only for the problem under Windows), there is something wrong on your machine. I can retry if you want but I can only use Windows 10. I have no longer access to Windows 7.
Was there anything in the imagej folder? Thank you. Only the first link was broken. I've just fixed it. If you choose JNDT, you'll be able to use any JRE, you'll have full control on what is provided, you won't depend on what is installed on the system except when it looks for things in the path, you'll be able to disable the automated native library loading to eliminate some problems with some virus scanners. The only remaining problem will come from very paranoid virus scanners that go on treating GlueGen as a virus... and there is a real bug to fix in JOGL when releasing the context under OS X with Java 1.9. Actually, I advise you to make my example work without Java Webstart and then to make it work with Java Webstart in order to determine whether it's the culprit. I understand your position as I used Java Webstart for years but there is not much I can do. You have shown several bugs on 2 operating systems here, we should solve them one by one but I cannot guarantee that it will work with Webstart. Maybe some native libraries are no longer provided in Java 1.9 or maybe they aren't loaded when using Webstart, that's why it would be interesting to know whether it works without Webstart.
Julien Gouesse | Personal blog | Website
|
Predrag confirms we are getting the same error on his machine
that I am getting on my machine. You wrote: If ImageJ installed a JVM with Java3D installed inside it as an > extension and if somehow Java Webstart uses this JVM, it won't work. The program is deleted. You wrote: "Please look at the whole hard drive. " When I look at c:, that is the entire hard drive. There are no other letters available on this system. You wrote: "Do you use a virus scanner under > Windows? " No. ---- You wrote: "My JOGL example works fine under Microsoft Windows 10, 8, 7, > Vista" Well that depends on what you mean by "works fine". Both Predrag and I get the very same exception when running using Webstart. Did you try the following? http://docjava.com/book/cgij/code/jnlp/joglquad.jnlp That is throwing exceptions on Windows 7 and Windows 10. I do not have Windows 8 available for testing. Predrag reports he is using windows 10. The program will run using webstart on window 7, but only if I remove jdk9 from the list of available jvms in the java control panel. Thanks! - Doug On 1/7/18 1:27 PM, gouessej [via jogamp] wrote: > If ImageJ installed a JVM with Java3D installed inside it as an > extension and if somehow Java Webstart uses this JVM, it won't work. > Please look at the whole hard drive. Do you use a virus scanner under > Windows? My JOGL example works fine under Microsoft Windows 10, 8, 7, > Vista, ... I don't blame Java3D for this but JOGL is not to blame > neither (only for the problem under Windows), there is something wrong > on your machine. I can retry if you want but I can only use Windows 10. > I have no longer access to Windows 7. > > Was there anything in the imagej folder? > > Thank you. Only the first link was broken. I've just fixed it. If you > choose JNDT, you'll be able to use any JRE, you'll have full control on > what is provided, you won't depend on what is installed on the system > except when it looks for things in the path, you'll be able to disable > the automated native library loading to eliminate some problems with > some virus scanners. The only remaining problem will come from very > paranoid virus scanners that go on treating GlueGen as a virus... and > there is a real bug to fix in JOGL when releasing the context under OS X > with Java 1.9. > > Actually, I advise you to make my example work without Java Webstart and > then to make it work with Java Webstart in order to determine whether > it's the culprit. I understand your position as I used Java Webstart for > years but there is not much I can do. You have shown several bugs on 2 > operating systems here, we should solve them one by one but I cannot > guarantee that it will work with Webstart. Maybe some native libraries > are no longer provided in Java 1.9 or maybe they aren't loaded when > using Webstart, that's why it would be interesting to know whether it > works without Webstart. > Julien Gouesse | Personal blog <http://gouessej.wordpress.com> | Website > <http://tuer.sourceforge.net> > > > ------------------------------------------------------------------------ > If you reply to this email, your message will be added to the discussion > below: > http://forum.jogamp.org/Jogl-Jogamp-on-Java-9-tp4038012p4038487.html > To unsubscribe from Jogl/Jogamp on Java 9, click here > < > NAML > <http://forum.jogamp.org/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml> > |
In reply to this post by gouessej
JOGL works fine without webstart.
JOGL works fine with webstart on a mac. JOGL throws exceptions with webstart on windows. Cheers! - Doug On 1/7/18 1:27 PM, gouessej [via jogamp] wrote: > If ImageJ installed a JVM with Java3D installed inside it as an > extension and if somehow Java Webstart uses this JVM, it won't work. > Please look at the whole hard drive. Do you use a virus scanner under > Windows? My JOGL example works fine under Microsoft Windows 10, 8, 7, > Vista, ... I don't blame Java3D for this but JOGL is not to blame > neither (only for the problem under Windows), there is something wrong > on your machine. I can retry if you want but I can only use Windows 10. > I have no longer access to Windows 7. > > Was there anything in the imagej folder? > > Thank you. Only the first link was broken. I've just fixed it. If you > choose JNDT, you'll be able to use any JRE, you'll have full control on > what is provided, you won't depend on what is installed on the system > except when it looks for things in the path, you'll be able to disable > the automated native library loading to eliminate some problems with > some virus scanners. The only remaining problem will come from very > paranoid virus scanners that go on treating GlueGen as a virus... and > there is a real bug to fix in JOGL when releasing the context under OS X > with Java 1.9. > > Actually, I advise you to make my example work without Java Webstart and > then to make it work with Java Webstart in order to determine whether > it's the culprit. I understand your position as I used Java Webstart for > years but there is not much I can do. You have shown several bugs on 2 > operating systems here, we should solve them one by one but I cannot > guarantee that it will work with Webstart. Maybe some native libraries > are no longer provided in Java 1.9 or maybe they aren't loaded when > using Webstart, that's why it would be interesting to know whether it > works without Webstart. > Julien Gouesse | Personal blog <http://gouessej.wordpress.com> | Website > <http://tuer.sourceforge.net> > > > ------------------------------------------------------------------------ > If you reply to this email, your message will be added to the discussion > below: > http://forum.jogamp.org/Jogl-Jogamp-on-Java-9-tp4038012p4038487.html > To unsubscribe from Jogl/Jogamp on Java 9, click here > < > NAML > <http://forum.jogamp.org/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml> > |
In reply to this post by gouessej
Here is what Predrag reports.
We both get IDENTICAL errors. I do not think my experience is isolated. - Doug > On Sun, Jan 7, 2018 at 5:04 PM, Dr. Douglas Lyon <[hidden email]> wrote: >> Hi Predrag, >> What do you get on your machine when you run: >> http://www.docjava.com/book/cgij/code/jnlp/joglquad.jnlp >> I would like to see the exception, as printed to the console, >> on a windows 10 machine. >> >> Thanks! >> - Doug On 1/7/18 1:40 PM, Predrag Bokšić wrote: > Java Web Start 12.0.1.0 > Using JRE version 9.0.1+11 Java HotSpot(TM) 64-Bit Server VM > JRE expiration date: 2/16/18, 12:00 AM > User home directory = C:\Users\junke > ---------------------------------------------------- > c: clear console window > f: finalize objects on finalization queue > g: garbage collect > h: display this help message > m: print memory usage > o: trigger logging > p: reload proxy configuration > q: hide console > r: reload policy configuration > s: dump system and deployment properties > t: dump thread list > v: dump thread stack > 0-5: set trace level to <n> > ---------------------------------------------------- > JNLPClassLoader: Finding library jawt.dll > #### Java Web Start Error: > #### -1 > > > > > > java.lang.ArrayIndexOutOfBoundsException: -1 > at jogamp.opengl.windows.wgl.awt.WindowsAWTWGLGraphicsConfigurationFactory.chooseGraphicsConfigurationImpl(WindowsAWTWGLGraphicsConfigurationFactory.java:171) > at com.jogamp.nativewindow.GraphicsConfigurationFactory.chooseGraphicsConfiguration(GraphicsConfigurationFactory.java:424) > at com.jogamp.opengl.awt.GLCanvas.chooseGraphicsConfiguration(GLCanvas.java:1560) > at com.jogamp.opengl.awt.GLCanvas.addNotify(GLCanvas.java:611) > at java.desktop/java.awt.Container.addNotify(Unknown Source) > at java.desktop/java.awt.Window.addNotify(Unknown Source) > at java.desktop/java.awt.Frame.addNotify(Unknown Source) > at java.desktop/java.awt.Window.show(Unknown Source) > at java.desktop/java.awt.Component.show(Unknown Source) > at java.desktop/java.awt.Component.setVisible(Unknown Source) > at java.desktop/java.awt.Window.setVisible(Unknown Source) > at j3d.JOGLQuad.main(JOGLQuad.java:96) > at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native > Method) > at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown > Source) > at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown > Source) > at java.base/java.lang.reflect.Method.invoke(Unknown Source) > at jdk.javaws@9.0.1/com.sun.javaws.Launcher.executeApplication(Unknown Source) > at jdk.javaws@9.0.1/com.sun.javaws.Launcher.executeMainClass(Unknown Source) > at jdk.javaws@9.0.1/com.sun.javaws.Launcher.doLaunchApp(Unknown Source) > at jdk.javaws@9.0.1/com.sun.javaws.Launcher.run(Unknown Source) > at java.base/java.lang.Thread.run(Unknown Source) > > > > > > Dump system properties ... > ---------------------------------------------------- > awt.toolkit = sun.awt.windows.WToolkit > com.sun.security.enableCRLDP = true > file.encoding = Cp1252 > file.encoding.pkg = sun.io > file.separator = \ > http.auth.serializeRequests = true > https.protocols = TLSv1.2,TLSv1.1,TLSv1 > java.awt.graphicsenv = sun.awt.Win32GraphicsEnvironment > java.awt.printerjob = sun.awt.windows.WPrinterJob > java.class.path = C:\Program Files\Java\jre\lib\deploy.jar > java.class.version = 53.0 > java.home = C:\Program Files\Java\jre > java.io.tmpdir = C:\Users\junke\AppData\Local\Temp\ > java.library.path = C:\Program > Files\Java\jre\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\Program > Files\Java\jre\bin;C:\ProgramData\Oracle\Java\javapath;C:\Program > Files\NVIDIA GPU Computing Toolkit\CUDA\v9.1\libnvvp;C:\Program > Files\NVIDIA GPU Computing Toolkit\CUDA\v9.1\bin;C:\Program Files > (x86)\NVIDIA Corporation\PhysX\Common;C:\Windows\System32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program > Files (x86)\Common Files\Intel\Shared > Libraries\redist\intel64\compiler;C:\Program > Files\Java\jdk\bin;C:\Program Files\Java\ant\bin;C:\Program > Files\Java\maven\bin;C:\Program Files\Java\gradle\bin;C:\Program > Files\Java\junit;C:\Program Files\Java\gwt;C:\Program > Files\Java\selenium\;C:\Program Files\Git\cmd;C:\Program Files > (x86)\CMake\bin;C:\Program Files (x86)\GnuPG\bin;C:\Program > Files\ffmpeg\bin;D:\opencv\build\x64\vc14\lib;D:\opencv\build\x64\vc14\bin;D:\opencv\build\include;D:\opencv\build\bin;D:\cygwin64\bin;C:\Users\junke\.dnx\bin;C:\Program > Files\Microsoft DNX\Dnvm\;C:\Program Files\Microsoft > MPI\Bin\;D:\VS2017\VC\Tools\MSVC\14.11.25503\bin\HostX64\x64;C:\Program > Files (x86)\Microsoft SQL Server\140\DTS\Binn\;C:\Program Files > (x86)\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn\;C:\Program > Files (x86)\Microsoft SQL Server\140\Tools\Binn\;C:\Program Files > (x86)\Microsoft SQL Server\140\Tools\Binn\ManagementStudio\;C:\Program > Files\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn\;C:\Program > Files\Microsoft SQL Server\140\Tools\Binn\;C:\Program Files\Microsoft > SQL Server\140\DTS\Binn\;C:\Program Files (x86)\Windows > Kits\10\Windows Performance Toolkit\;C:\Program > Files\dotnet\;C:\Program Files (x86)\GtkSharp\2.12\bin;C:\Program > Files\nodejs\;C:\Users\junke\AppData\Local\Microsoft\WindowsApps;C:\Program > Files\Notepad++;C:\Users\junke\AppData\Roaming\npm;C:\Ruby24-x64\bin;"C:\Program > Files\Java\jre\bin";. > java.rmi.server.RMIClassLoaderSpi = com.sun.jnlp.JNLPRMIClassLoaderSpi > java.runtime.name = Java(TM) SE Runtime Environment > java.runtime.version = 9.0.1+11 > java.security.manager = > java.security.policy = file:C:\Program > Files\Java\jre\conf\security\javaws.policy > java.specification.name = Java Platform API Specification > java.specification.vendor = Oracle Corporation > java.specification.version = 9 > java.vendor = Oracle Corporation > java.vendor.url = http://java.oracle.com/ > java.vendor.url.bug = http://bugreport.java.com/bugreport/ > java.version = 9.0.1 > java.vm.compressedOopsMode = 32-bit > java.vm.info = mixed mode > java.vm.name = Java HotSpot(TM) 64-Bit Server VM > java.vm.specification.name = Java Virtual Machine Specification > java.vm.specification.vendor = Oracle Corporation > java.vm.specification.version = 9 > java.vm.vendor = Oracle Corporation > java.vm.version = 9.0.1+11 > javaplugin.proxy.config.type = direct > javawebstart.version = javaws-12.0.1.0 > jdk.debug = release > jdk.module.main = jdk.plugin > jdk.module.main.class = sun.plugin2.main.WebStart > jnlp.jogamp.tmp.cache.root = jln13586313023271801865 > jnlpx.heapsize = 64m,384m > jnlpx.home = C:\Program Files\Java\jre > jnlpx.jvm = C:\Program Files\Java\jre\bin\javaw.exe > jnlpx.origFilenameArg = E:\Downloads\joglquad.jnlp > jnlpx.remove = false > jnlpx.vmargs = LWVhAC0tYWRkLW9wZW5zPWphdmEuYmFzZS9jb20uam9nYW1wPUFMTC1VTk5BTUVEAA== > line.separator = \r\n > os.arch = amd64 > os.name = Windows 10 > os.version = 10.0 > path.separator = ; > sun.arch.data.model = 64 > sun.awt.enableExtraMouseButtons = true > sun.boot.library.path = C:\Program Files\Java\jre\bin > sun.cpu.endian = little > sun.cpu.isalist = amd64 > sun.desktop = windows > sun.io.unicode.encoding = UnicodeLittle > sun.java.command = jdk.plugin/sun.plugin2.main.WebStart > E:\Downloads\joglquad.jnlp > sun.java.launcher = SUN_STANDARD > sun.jnu.encoding = Cp1252 > sun.management.compiler = HotSpot 64-Bit Tiered Compilers > sun.os.patch.level = > sun.security.certpath.ldap.disable.app.resource.files = true > trustProxy = true > user.country = US > user.dir = E:\Downloads > user.home = C:\Users\junke > user.language = en > user.name = junke > user.script = > user.timezone = Europe/Prague > user.variant = > ---------------------------------------------------- > Dump deployment properties ... > ---------------------------------------------------- > active.deployment.proxy.bypass.local = false > active.deployment.proxy.same = false > active.deployment.proxy.type = 3 > deployment.baseline.url = > https://javadl-esd-secure.oracle.com/update/securitypack.jar > deployment.browser.path = C:\Windows\system32\LaunchWinApp.exe > deployment.cache.enabled = true > deployment.cache.jarcompression = 0 > deployment.cache.max.size = -1 > deployment.capture.mime.types = false > deployment.console.startup.mode = SHOW > deployment.control.panel.log = false > deployment.deprecation.plugin.dialog.show = true > deployment.expiration.check.enabled = true > deployment.insecure.jres = PROMPT > deployment.javafx.mode.enabled = true > deployment.javapi.cache.update = false > deployment.javapi.lifecycle.exception = true > deployment.javapi.log.filename = > deployment.javapi.runtime.type = 0 > deployment.javapi.stop.timeout = 200 > deployment.javapi.trace.filename = > deployment.javaws.appicon.index = > C:\Users\junke\AppData\LocalLow\Sun\Java\Deployment\cache\6.0\appIcon\appIcon.xml > deployment.javaws.associations = ASK_USER > deployment.javaws.cache.update = false > deployment.javaws.concurrentDownloads = 4 > deployment.javaws.install = IF_HINT > deployment.javaws.installURL = http://java.sun.com/products/autodl/j2se > deployment.javaws.logFileName = > deployment.javaws.muffin.max = 256 > deployment.javaws.shortcut = ASK_UNTRUSTED > deployment.javaws.splash.index = > C:\Users\junke\AppData\LocalLow\Sun\Java\Deployment\cache\6.0\splash\splash.xml > deployment.javaws.traceFileName = > deployment.javaws.uninstall.shortcut = false > deployment.javaws.update.timeout = 1500 > deployment.javaws.viewer.bounds = 99,559,720,360 > deployment.log = false > deployment.macosx.check.update = true > deployment.max.output.file.size = 10 > deployment.max.output.files = 5 > deployment.mime.types.use.default = true > deployment.modified.timestamp = 1515216615807 > deployment.proxy.bypass.local = false > deployment.proxy.override.hosts = > deployment.proxy.same = false > deployment.proxy.type = 3 > deployment.relaunch.increment.debug.port = true > deployment.roaming.profile = false > deployment.security.SSLv2Hello = false > deployment.security.SSLv3 = false > deployment.security.TLSv1 = true > deployment.security.TLSv1.1 = true > deployment.security.TLSv1.2 = true > deployment.security.askgrantdialog.notinca = true > deployment.security.askgrantdialog.show = true > deployment.security.authenticator = true > deployment.security.blacklist.check = true > deployment.security.browser.keystore.use = true > deployment.security.clientauth.keystore.auto = true > deployment.security.disable = false > deployment.security.esl.override.native.sandbox = false > deployment.security.https.warning.show = false > deployment.security.jsse.hostmismatch.warning = true > deployment.security.level = HIGH > deployment.security.local.applets = PROMPT > deployment.security.mixcode = ENABLE > deployment.security.notinca.warning = true > deployment.security.password.cache = true > deployment.security.permissions.manifest.required = true > deployment.security.revocation.check = ALL_CERTIFICATES > deployment.security.run.untrusted = PROMPT > deployment.security.sandbox.awtwarningwindow = true > deployment.security.sandbox.casigned = PROMPT > deployment.security.sandbox.jnlp.enhanced = true > deployment.security.sandbox.selfsigned = PROMPT > deployment.security.tls.revocation.check = ALL_CERTIFICATES > deployment.security.tls.validation.crl = true > deployment.security.tls.validation.ocsp = true > deployment.security.trusted.policy = > deployment.security.use.insecure.launcher = false > deployment.security.use.native.sandbox = false > deployment.security.use.user.home.java.policy = false > deployment.security.validation.crl = true > deployment.security.validation.ocsp = true > deployment.security.validation.ocsp.publisher = false > deployment.system.cachedir = > C:\Users\junke\AppData\LocalLow\Sun\Java\Deployment\SystemCache > deployment.system.security.blacklist = C:\Program > Files\Java\jre\lib\security\blacklist > deployment.system.security.cacerts = C:\Program > Files\Java\jre\lib\security\cacerts > deployment.system.security.jssecacerts = C:\Program > Files\Java\jre\lib\security\jssecacerts > deployment.system.security.trusted.certs = C:\Program > Files\Java\jre\lib\security\trusted.certs > deployment.system.security.trusted.clientauthcerts = C:\Program > Files\Java\jre\lib\security\trusted.clientcerts > deployment.system.security.trusted.jssecerts = C:\Program > Files\Java\jre\lib\security\trusted.jssecerts > deployment.system.security.trusted.libraries = C:\Program > Files\Java\jre\lib\security\trusted.libraries > deployment.system.tray.icon = false > deployment.trace = true > deployment.trace.redirect.stdio = true > deployment.update.mime.types = true > deployment.user.cachedir = > C:\Users\junke\AppData\LocalLow\Sun\Java\Deployment\cache > deployment.user.extdir = C:\Users\junke\AppData\LocalLow\Sun\Java\Deployment\ext > deployment.user.logdir = C:\Users\junke\AppData\LocalLow\Sun\Java\Deployment\log > deployment.user.logfile = jcp.trace > deployment.user.logfile.append = false > deployment.user.security.blacklist = > C:\Users\junke\AppData\LocalLow\Sun\Java\Deployment\security\blacklist > deployment.user.security.blacklist.dynamic = > C:\Users\junke\AppData\LocalLow\Sun\Java\Deployment\security\blacklist.dynamic > deployment.user.security.blacklisted.certs = > C:\Users\junke\AppData\LocalLow\Sun\Java\Deployment\security\blacklisted.certs > deployment.user.security.exception.sites = > C:\Users\junke\AppData\LocalLow\Sun\Java\Deployment\security\exception.sites > deployment.user.security.policy = > file:/C:/Users/junke/AppData/LocalLow/Sun/Java/Deployment/security/java.policy > deployment.user.security.sandbox.certs = > C:\Users\junke\AppData\LocalLow\Sun\Java\Deployment\security\sandbox.certs > deployment.user.security.saved.credentials = > C:\Users\junke\AppData\LocalLow\Sun\Java\Deployment\security\auth.dat > deployment.user.security.trusted.cacerts = > C:\Users\junke\AppData\LocalLow\Sun\Java\Deployment\security\trusted.cacerts > deployment.user.security.trusted.certs = > C:\Users\junke\AppData\LocalLow\Sun\Java\Deployment\security\trusted.certs > deployment.user.security.trusted.clientauthcerts = > C:\Users\junke\AppData\LocalLow\Sun\Java\Deployment\security\trusted.clientcerts > deployment.user.security.trusted.jssecacerts = > C:\Users\junke\AppData\LocalLow\Sun\Java\Deployment\security\trusted.jssecacerts > deployment.user.security.trusted.jssecerts = > C:\Users\junke\AppData\LocalLow\Sun\Java\Deployment\security\trusted.jssecerts > deployment.user.security.trusted.libraries = > C:\Users\junke\AppData\LocalLow\Sun\Java\Deployment\security\trusted.libraries > deployment.user.tmp = C:\Users\junke\AppData\LocalLow\Sun\Java\Deployment\tmp > deployment.version = 8 > deployment.webjava.enabled = true > ---------------------------------------------------- > Done. > > On Sun, Jan 7, 2018 at 5:04 PM, Dr. Douglas Lyon <[hidden email]> wrote: >> Hi Predrag, >> What do you get on your machine when you run: >> http://www.docjava.com/book/cgij/code/jnlp/joglquad.jnlp >> I would like to see the exception, as printed to the console, >> on a windows 10 machine. >> >> Thanks! >> - Doug >> On 1/7/18 2:12 PM, Dr. Douglas Lyon wrote: > JOGL works fine without webstart. > JOGL works fine with webstart on a mac. > JOGL throws exceptions with webstart on windows. > Cheers! > - Doug > > > On 1/7/18 1:27 PM, gouessej [via jogamp] wrote: >> If ImageJ installed a JVM with Java3D installed inside it as an >> extension and if somehow Java Webstart uses this JVM, it won't work. >> Please look at the whole hard drive. Do you use a virus scanner under >> Windows? My JOGL example works fine under Microsoft Windows 10, 8, 7, >> Vista, ... I don't blame Java3D for this but JOGL is not to blame >> neither (only for the problem under Windows), there is something wrong >> on your machine. I can retry if you want but I can only use Windows >> 10. I have no longer access to Windows 7. >> >> Was there anything in the imagej folder? >> >> Thank you. Only the first link was broken. I've just fixed it. If you >> choose JNDT, you'll be able to use any JRE, you'll have full control >> on what is provided, you won't depend on what is installed on the >> system except when it looks for things in the path, you'll be able to >> disable the automated native library loading to eliminate some >> problems with some virus scanners. The only remaining problem will >> come from very paranoid virus scanners that go on treating GlueGen as >> a virus... and there is a real bug to fix in JOGL when releasing the >> context under OS X with Java 1.9. >> >> Actually, I advise you to make my example work without Java Webstart >> and then to make it work with Java Webstart in order to determine >> whether it's the culprit. I understand your position as I used Java >> Webstart for years but there is not much I can do. You have shown >> several bugs on 2 operating systems here, we should solve them one by >> one but I cannot guarantee that it will work with Webstart. Maybe some >> native libraries are no longer provided in Java 1.9 or maybe they >> aren't loaded when using Webstart, that's why it would be interesting >> to know whether it works without Webstart. >> Julien Gouesse | Personal blog <http://gouessej.wordpress.com> | >> Website <http://tuer.sourceforge.net> >> >> >> ------------------------------------------------------------------------ >> If you reply to this email, your message will be added to the >> discussion below: >> http://forum.jogamp.org/Jogl-Jogamp-on-Java-9-tp4038012p4038487.html >> To unsubscribe from Jogl/Jogamp on Java 9, click here >> < >> >> NAML >> <http://forum.jogamp.org/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml> >> > |
Administrator
|
In reply to this post by douglaslyon
Hi
Ok you don't use a virus scanner. I cannot run your example using Java Webstart because it requires to install Java 1.9 on a machine I'm not allowed to do so :s I don't have any computer under Windows at home, I'm under Mageia Linux 6. Your problem under Windows only occurs with Java Webstart. I explained to you that I had the same exception (java.lang.ArrayIndexOutOfBoundsException) not using Java Webstart and I showed you my workaround that works without Java Webstart. The problem is that this workaround is absolutely necessary due to changes in Java itself since Java 1.9. It's no longer a problem with JOGL, it's a problem of allowing "--permit-illegal-access" or "--add-exports=java.base/java.lang=ALL-UNNAMED --add-exports=java.desktop/sun.awt=ALL-UNNAMED --add-exports=java.desktop/sun.java2d=ALL-UNNAMED" to work with Java Webstart. Another stack trace mentions the bug 1004, maybe we should take into account Sven's advice.
Julien Gouesse | Personal blog | Website
|
Well you know, JOGL now works under mac and windows without
any work-around and with jdk9 jdk8...using the new version devised by Predap and I. I would like to tell you what I think of windows, but I am too polite. On the topic of linux, I do have linux in the home, but have yet to try it with jogl. You may see our success with your code on youtube; https://www.youtube.com/watch?v=enHhwzF_4yA We do not need any workarounds....our new version of jogl works under both jdk1.8 and jdk1.9. Finally you will see what webstart is able to do with joglquad and the mac. Finally, you can see that java3d also works with jogl and the mac. So there you have it. Once we have webstart working under windows, I plan to focus my attentions to linux. What did you think of the video? Thanks! - Doug On 1/8/18 4:54 AM, gouessej [via jogamp] wrote: > Hi > > Ok you don't use a virus scanner. I cannot run your example using Java > Webstart because it requires to install Java 1.9 on a machine I'm not > allowed to do so :s I don't have any computer under Windows at home, I'm > under Mageia Linux 6. > > Your problem under Windows only occurs with Java Webstart. I explained > to you that I had the same exception > (java.lang.ArrayIndexOutOfBoundsException) not using Java Webstart and I > showed you my workaround that works without Java Webstart. The problem > is that this workaround is absolutely necessary due to changes in Java > itself since Java 1.9. It's no longer a problem with JOGL, it's a > problem of allowing "--permit-illegal-access" or > "--add-exports=java.base/java.lang=ALL-UNNAMED > --add-exports=java.desktop/sun.awt=ALL-UNNAMED > --add-exports=java.desktop/sun.java2d=ALL-UNNAMED" to work with Java > Webstart. > > Another stack trace mentions the bug 1004 > <https://jogamp.org/bugzilla/show_bug.cgi?id=1004>, maybe we should take > into account Sven's advice > <https://jogamp.org/bugzilla/show_bug.cgi?id=983#c11>. > Julien Gouesse | Personal blog <http://gouessej.wordpress.com> | Website > <http://tuer.sourceforge.net> > > > ------------------------------------------------------------------------ > If you reply to this email, your message will be added to the discussion > below: > http://forum.jogamp.org/Jogl-Jogamp-on-Java-9-tp4038012p4038491.html > To unsubscribe from Jogl/Jogamp on Java 9, click here > < > NAML > <http://forum.jogamp.org/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml> > |
Administrator
|
I know that there is a problem with Java 1.9 under OS X, I don't deny it and the modified version of Java3D works around a bug in JOGL caused by changes in Java itself, it doesn't fix the real bug. However, you can still make a pull request against Phil's repository as I'd like to know his opinion. Predrag Bokšić's changes affect Java3D as far as I know, not JOGL. Some questionable workarounds are better than no solution at all but we need a pull request, we need to see exactly why it works even though it doesn't release the context properly and by the way, I still don't understand exactly why you needed to add a DLL for AWT somewhere under Windows to make it work. I cannot go any further and help you both if you don't share your findings in the most suitable way, not by sending a compressed archive without indicating clearly what changes in the source code have been done. If making a pull request is too complicated for you, please post at least a diff file. Ignoring the exceptions isn't a satisfying solution. JOGL and Java3D are under open source licences, we don't hide any part of the source code, either you work in an open and transparent manner like us, or you solve your problems without the help of the JogAmp community, the choice is yours. I'm sorry, maybe I'm a bit touchy but when I read "our new version of jogl" and when I still get no clear explanation of what changes fixed your problems, I'm really upset. I'm a volunteer, I have used JOGL since 2006, I answered your questions even during my holidays. Making a new version of JOGL ready for a release requires a lot more work than just fixing a few things privately. Modifying the source code just to catch some exceptions that shouldn't even be thrown isn't a fix even though it allows you not to use my clean workaround already working without Java Webstart. Of course, I would prefer a solution that works with and without Java Webstart but a dirty solution not fixing the real bugs isn't acceptable on the long term, there is a huge difference between tinkering some code and providing testable strong fixes.
Julien Gouesse | Personal blog | Website
|
Administrator
|
In reply to this post by douglaslyon
jawt.dll must be in your Java install in "lib/amd64" under Windows in Java 1.8 and in "bin" in Java 1.9. However, you should check whether they are in your PATH environment variable.
Julien Gouesse | Personal blog | Website
|
Administrator
|
In reply to this post by douglaslyon
Please use "--add-exports" instead of "--add-opens". I have never suggested you to use "--add-opens", it doesn't have the same effect than "--add-exports".
Julien Gouesse | Personal blog | Website
|
Hi Julien,
In webstart I now have: <j2se version="9+" initial-heap-size="64m" max-heap-size="384m" java-vm-args="-ea --add-exports=java.base/com.jogamp=ALL-UNNAMED" /> It runs OK on the mac, except for the following error: Bug 1004: Caught: class com.jogamp.nativewindow.awt.AppContextInfo cannot access class sun.awt.AppContext (in module java.desktop) because module java.desktop does not export sun.awt to unnamed module @28bdf016 java.lang.IllegalAccessException: class com.jogamp.nativewindow.awt.AppContextInfo cannot access class sun.awt.AppContext (in module java.desktop) because module java.desktop does not export sun.awt to unnamed module @28bdf016 at java.base/jdk.internal.reflect.Reflection.newIllegalAccessException(Unknown Source) at java.base/java.lang.reflect.AccessibleObject.checkAccess(Unknown Source) at java.base/java.lang.reflect.Method.invoke(Unknown Source) at com.jogamp.nativewindow.awt.AppContextInfo.fetchAppContext(AppContextInfo.java:186) at com.jogamp.nativewindow.awt.AppContextInfo.update(AppContextInfo.java:130) at com.jogamp.nativewindow.awt.AppContextInfo.<init>(AppContextInfo.java:45) at com.jogamp.nativewindow.awt.JAWTWindow.<init>(JAWTWindow.java:128) at jogamp.nativewindow.jawt.macosx.MacOSXJAWTWindow.<init>(MacOSXJAWTWindow.java:79) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.base/java.lang.reflect.Constructor.newInstance(Unknown Source) at jogamp.nativewindow.NativeWindowFactoryImpl.getAWTNativeWindow(NativeWindowFactoryImpl.java:105) at jogamp.nativewindow.NativeWindowFactoryImpl.getNativeWindowImpl(NativeWindowFactoryImpl.java:66) at com.jogamp.nativewindow.NativeWindowFactory.getNativeWindow(NativeWindowFactory.java:593) at com.jogamp.opengl.awt.GLCanvas.createJAWTDrawableAndContext(GLCanvas.java:712) at com.jogamp.opengl.awt.GLCanvas.addNotify(GLCanvas.java:623) at java.desktop/java.awt.Container.addNotify(Unknown Source) at java.desktop/java.awt.Window.addNotify(Unknown Source) at java.desktop/java.awt.Frame.addNotify(Unknown Source) at java.desktop/java.awt.Window.show(Unknown Source) at java.desktop/java.awt.Component.show(Unknown Source) at java.desktop/java.awt.Component.setVisible(Unknown Source) at java.desktop/java.awt.Window.setVisible(Unknown Source) at j3d.JOGLQuad.main(JOGLQuad.java:96) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.base/java.lang.reflect.Method.invoke(Unknown Source) at jdk.javaws@9.0.1/com.sun.javaws.Launcher.executeApplication(Unknown Source) at jdk.javaws@9.0.1/com.sun.javaws.Launcher.executeMainClass(Unknown Source) at jdk.javaws@9.0.1/com.sun.javaws.Launcher.doLaunchApp(Unknown Source) at jdk.javaws@9.0.1/com.sun.javaws.Launcher.run(Unknown Source) at java.base/java.lang.Thread.run(Unknown Source) Bug 1004: Caught: class com.jogamp.nativewindow.awt.AppContextInfo cannot access class sun.awt.AppContext (in module java.desktop) because module java.desktop does not export sun.awt to unnamed module @28bdf016 java.lang.IllegalAccessException: class com.jogamp.nativewindow.awt.AppContextInfo cannot access class sun.awt.AppContext (in module java.desktop) because module java.desktop does not export sun.awt to unnamed module @28bdf016 at java.base/jdk.internal.reflect.Reflection.newIllegalAccessException(Unknown Source) at java.base/java.lang.reflect.AccessibleObject.checkAccess(Unknown Source) at java.base/java.lang.reflect.Method.invoke(Unknown Source) at com.jogamp.nativewindow.awt.AppContextInfo.fetchAppContext(AppContextInfo.java:186) at com.jogamp.nativewindow.awt.AppContextInfo.update(AppContextInfo.java:130) at com.jogamp.nativewindow.awt.AppContextInfo.invokeOnAppContextThread(AppContextInfo.java:102) at com.jogamp.nativewindow.awt.JAWTWindow.attachSurfaceLayer(JAWTWindow.java:491) at jogamp.opengl.macosx.cgl.MacOSXCGLContext$NSOpenGLImpl$AttachGLLayerCmd.run(MacOSXCGLContext.java:764) at com.jogamp.common.util.RunnableTask.run(RunnableTask.java:125) On windows we get: Bug 1004: Caught: class com.jogamp.nativewindow.awt.AppContextInfo cannot access class sun.awt.AppContext (in module java.desktop) because module java.desktop does not export sun.awt to unnamed module @28bdf016 java.lang.IllegalAccessException: class com.jogamp.nativewindow.awt.AppContextInfo cannot access class sun.awt.AppContext (in module java.desktop) because module java.desktop does not export sun.awt to unnamed module @28bdf016 at java.base/jdk.internal.reflect.Reflection.newIllegalAccessException(Unknown Source) at java.base/java.lang.reflect.AccessibleObject.checkAccess(Unknown Source) at java.base/java.lang.reflect.Method.invoke(Unknown Source) at com.jogamp.nativewindow.awt.AppContextInfo.fetchAppContext(AppContextInfo.java:186) at com.jogamp.nativewindow.awt.AppContextInfo.update(AppContextInfo.java:130) at com.jogamp.nativewindow.awt.AppContextInfo.<init>(AppContextInfo.java:45) at com.jogamp.nativewindow.awt.JAWTWindow.<init>(JAWTWindow.java:128) at jogamp.nativewindow.jawt.macosx.MacOSXJAWTWindow.<init>(MacOSXJAWTWindow.java:79) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.base/java.lang.reflect.Constructor.newInstance(Unknown Source) at jogamp.nativewindow.NativeWindowFactoryImpl.getAWTNativeWindow(NativeWindowFactoryImpl.java:105) at jogamp.nativewindow.NativeWindowFactoryImpl.getNativeWindowImpl(NativeWindowFactoryImpl.java:66) at com.jogamp.nativewindow.NativeWindowFactory.getNativeWindow(NativeWindowFactory.java:593) at com.jogamp.opengl.awt.GLCanvas.createJAWTDrawableAndContext(GLCanvas.java:712) at com.jogamp.opengl.awt.GLCanvas.addNotify(GLCanvas.java:623) at java.desktop/java.awt.Container.addNotify(Unknown Source) at java.desktop/java.awt.Window.addNotify(Unknown Source) at java.desktop/java.awt.Frame.addNotify(Unknown Source) at java.desktop/java.awt.Window.show(Unknown Source) at java.desktop/java.awt.Component.show(Unknown Source) at java.desktop/java.awt.Component.setVisible(Unknown Source) at java.desktop/java.awt.Window.setVisible(Unknown Source) at j3d.JOGLQuad.main(JOGLQuad.java:96) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.base/java.lang.reflect.Method.invoke(Unknown Source) at jdk.javaws@9.0.1/com.sun.javaws.Launcher.executeApplication(Unknown Source) at jdk.javaws@9.0.1/com.sun.javaws.Launcher.executeMainClass(Unknown Source) at jdk.javaws@9.0.1/com.sun.javaws.Launcher.doLaunchApp(Unknown Source) at jdk.javaws@9.0.1/com.sun.javaws.Launcher.run(Unknown Source) at java.base/java.lang.Thread.run(Unknown Source) Bug 1004: Caught: class com.jogamp.nativewindow.awt.AppContextInfo cannot access class sun.awt.AppContext (in module java.desktop) because module java.desktop does not export sun.awt to unnamed module @28bdf016 java.lang.IllegalAccessException: class com.jogamp.nativewindow.awt.AppContextInfo cannot access class sun.awt.AppContext (in module java.desktop) because module java.desktop does not export sun.awt to unnamed module @28bdf016 at java.base/jdk.internal.reflect.Reflection.newIllegalAccessException(Unknown Source) at java.base/java.lang.reflect.AccessibleObject.checkAccess(Unknown Source) at java.base/java.lang.reflect.Method.invoke(Unknown Source) at com.jogamp.nativewindow.awt.AppContextInfo.fetchAppContext(AppContextInfo.java:186) at com.jogamp.nativewindow.awt.AppContextInfo.update(AppContextInfo.java:130) at com.jogamp.nativewindow.awt.AppContextInfo.invokeOnAppContextThread(AppContextInfo.java:102) at com.jogamp.nativewindow.awt.JAWTWindow.attachSurfaceLayer(JAWTWindow.java:491) at jogamp.opengl.macosx.cgl.MacOSXCGLContext$NSOpenGLImpl$AttachGLLayerCmd.run(MacOSXCGLContext.java:764) at com.jogamp.common.util.RunnableTask.run(RunnableTask.java:125) And it does not run. The error: "because module java.desktop does not export sun.awt to unnamed module @28bdf016" is telling. I know NOTHING about exports (it is totally new to me)...so I tried: <j2se version="9+" initial-heap-size="64m" max-heap-size="384m" java-vm-args="-ea --add-exports=java.desktop/sun.awt=ALL-UNNAMED" /> Now I get: java.lang.ArrayIndexOutOfBoundsException: -1 at jogamp.opengl.windows.wgl.awt.WindowsAWTWGLGraphicsConfigurationFactory.chooseGraphicsConfigurationImpl(WindowsAWTWGLGraphicsConfigurationFactory.java:171) at com.jogamp.nativewindow.GraphicsConfigurationFactory.chooseGraphicsConfiguration(GraphicsConfigurationFactory.java:424) at com.jogamp.opengl.awt.GLCanvas.chooseGraphicsConfiguration(GLCanvas.java:1560) at com.jogamp.opengl.awt.GLCanvas.addNotify(GLCanvas.java:611) at java.desktop/java.awt.Container.addNotify(Unknown Source) at java.desktop/java.awt.Window.addNotify(Unknown Source) at java.desktop/java.awt.Frame.addNotify(Unknown Source) at java.desktop/java.awt.Window.show(Unknown Source) at java.desktop/java.awt.Component.show(Unknown Source) at java.desktop/java.awt.Component.setVisible(Unknown Source) at java.desktop/java.awt.Window.setVisible(Unknown Source) at j3d.JOGLQuad.main(JOGLQuad.java:96) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.base/java.lang.reflect.Method.invoke(Unknown Source) at jdk.javaws@9.0.1/com.sun.javaws.Launcher.executeApplication(Unknown Source) at jdk.javaws@9.0.1/com.sun.javaws.Launcher.executeMainClass(Unknown Source) at jdk.javaws@9.0.1/com.sun.javaws.Launcher.doLaunchApp(Unknown Source) at jdk.javaws@9.0.1/com.sun.javaws.Launcher.run(Unknown Source) at java.base/java.lang.Thread.run(Unknown Source) So that helped...a little! I am looking at: https://jogamp.org/bugzilla/show_bug.cgi?id=1317 again. I see where you put in: --permit-illegal-access so, I figured; <j2se version="9+" initial-heap-size="64m" max-heap-size="384m" java-vm-args="--permit-illegal-access -ea --add-exports=java.desktop/\ sun.awt=ALL-UNNAMED" /> might help...but it did not...so then I tried: --add-exports=java.base/java.lang=ALL-UNNAMED --add-exports=java.desktop/sun.awt=ALL-UNNAMED --add-exports=java.desktop/sun.java2d=ALL-UNNAMED but that did not work... So, I got rid of the "ea" option to the jvm...and now IT WORKS. The crowd is wild. ----------------------- The following is my solution ---------- <jnlp spec="1.0+" codebase="http://show.docjava.com:80/book/cgij/code/jnlp/" > <information> <title>j3d.JOGLQuad</title> <vendor>DocJava, Inc.</vendor> <homepage href="http://www.docjava.com"/> <icon href="http://show.docjava.com:80/consulti/docjava.jpe"/> <offline-allowed /> </information> <security> <all-permissions /> </security> <resources> <j2se version="9+" initial-heap-size="64m" max-heap-size="384m" java-vm-args="--add-exports=java.base/java.lang=ALL-UNNAMED --add-expo rts=java.desktop/sun.awt=ALL-UNNAMED --add-exports=java.desktop/sun.java2d=ALL-U NNAMED " /> <extension name="Java3D" href="jogl.jnlp"></extension> <jar href="joglquad.jar" /> </resources> <application-desc main-class="j3d.JOGLQuad" /> </jnlp> Will fine tune to see what will happen. The MAC errors are NOW gone!! The NESTED jogl.jnlp has: <jnlp spec="1.0+" codebase="http://show.docjava.com:80/book/cgij/code/jnlp/" > <information> <title>Java 3D</title> <vendor>DocJava Inc.</vendor> <homepage href="http://www.docjava.com"/> <description>Java 3D library</description> </information> <security> <all-permissions/> </security> <resources os="Windows"> <jar href="libs/jogl/j3dcore.jar" download="eager"/> <jar href="libs/jogl/j3dutils.jar" download="eager"/> <jar href="libs/jogl/vecmath.jar" download="eager"/> </resources> <resources os="Windows" arch="amd64"> <nativelib href="libs/jogl/natives/windows-amd64/gluegen-rt.dll.jar" download="e ager"/> <nativelib href="libs/jogl/natives/windows-amd64/joal.dll.jar" download="eager"/ > <nativelib href="libs/jogl/natives/windows-amd64/jocl.dll.jar" download="eager"/ > <nativelib href="libs/jogl/natives/windows-amd64/jogl_desktop.dll.jar" download= "eager"/> <nativelib href="libs/jogl/natives/windows-amd64/jogl_mobile.dll.jar" download=" eager"/> <nativelib href="libs/jogl/natives/windows-amd64/nativewindow_awt.dll.jar" downl oad="eager"/> <nativelib href="libs/jogl/natives/windows-amd64/nativewindow_win32.dll.jar" dow nload="eager"/> <nativelib href="libs/jogl/natives/windows-amd64/newt.dll.jar" download="eager"/ > <nativelib href="libs/jogl/natives/windows-amd64/oculusvr.dll.jar" download="eag er"/> <nativelib href="libs/jogl/natives/windows-amd64/soft_oal.dll.jar" download="eag er"/> </resources> <resources os="Windows" arch="x86"> <nativeib href="libs/jogl/natives/windows-i586/gluegen-rt.dll.jar" download="eag er"/> <nativeib href="libs/jogl/natives/windows-i586/joal.dll.jar" download="eager"/> <nativeib href="libs/jogl/natives/windows-i586/jocl.dll.jar" download="eager"/> <nativeib href="libs/jogl/natives/windows-i586/jogl_desktop.dll.jar" download="e ager"/> <nativeib href="libs/jogl/natives/windows-i586/jogl_mobile.dll.jar" download="ea ger"/> <nativeib href="libs/jogl/natives/windows-i586/nativewindow_awt.dll.jar" downloa d="eager"/> <nativeib href="libs/jogl/natives/windows-i586/nativewindow_win32.dll.jar" downl oad="eager"/> <nativeib href="libs/jogl/natives/windows-i586/newt.dll.jar" download="eager"/> <nativeib href="libs/jogl/natives/windows-i586/oculusvr.dll.jar" download="eager "/> <nativeib href="libs/jogl/natives/windows-i586/soft_oal.dll.jar" download="eager "/> </resources> <resources os="Mac"> <jar href="libs/jogl/j3dcore.jar" download="eager"/> <jar href="libs/jogl/j3dutils.jar" download="eager"/> <jar href="libs/jogl/vecmath.jar" download="eager"/> <jar href="libs/jogl/jogamp-fat.jar" download="eager"/> </resources> <resources os="Linux" arch="i386"> <nativelib href = "libs/linux/jogl-natives-linux-i586.jar" /> </resources> <resources os="Linux" arch="x86"> <nativelib href = "libs/linux/jogl-natives-linux-i586.jar" /> </resources> <resources os="Linux" arch="amd64"> <nativelib href = "libs/linux/jogl-natives-linux-amd64.jar" /> </resources> <resources os="Linux" arch="x86_64"> <nativelib href = "libs/linux/jogl-natives-linux-amd64.jar" /> </resources> <component-desc /> </jnlp> This is not as elegant as I would have liked. And the linux stuff is not working, at the moment....but hey, its progress! Bottom line, webstart works on the mac and windows 7 with jogl and jdk 8 or jdk9. I have not tested windows 10...yet. Thank you so much for your help on this!! Regards, - Doug On 1/8/18 4:34 PM, gouessej [via jogamp] wrote: > Please use "--add-exports" instead of "--add-opens". I have never > suggested you to use "--add-opens", it doesn't have the same effect than > "--add-exports". > Julien Gouesse | Personal blog <http://gouessej.wordpress.com> | Website > <http://tuer.sourceforge.net> > > > ------------------------------------------------------------------------ > If you reply to this email, your message will be added to the discussion > below: > http://forum.jogamp.org/Jogl-Jogamp-on-Java-9-tp4038012p4038495.html > To unsubscribe from Jogl/Jogamp on Java 9, click here > < > NAML > <http://forum.jogamp.org/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml> > |
In reply to this post by philjord
Hi Julien,
https://www.docjava.com/book/cgij/code/jnlp/j3d.examples.boids.Main.jnlp now has a working version of java3d working with java1.9 under osx and windows 7 via javawebstart. Other platforms may now work too...I just did not test them, yet. Thanks! - Doug On 1/8/18 3:35 PM, gouessej [via jogamp] wrote: > I know that there is a problem with Java 1.9 under OS X, I don't deny it > and the modified version *of Java3D* works around a bug in JOGL caused > by changes in Java itself, it doesn't fix the real bug. However, you can > still make a pull request against Phil's repository as I'd like to know > his opinion. Predrag Bokšić's changes affect Java3D as far as I know, > not JOGL. Some questionable workarounds are better than no solution at > all but we need a pull request, we need to see exactly why it works even > though it doesn't release the context properly and by the way, I still > don't understand exactly why you needed to add a DLL for AWT somewhere > under Windows to make it work. I cannot go any further and help you both > if you don't share your findings in the most suitable way, not by > sending a compressed archive without indicating clearly what changes in > the source code have been done. If making a pull request is too > complicated for you, please post at least a diff file. Ignoring the > exceptions isn't a satisfying solution. JOGL and Java3D are under open > source licences, we don't hide any part of the source code, either you > work in an open and transparent manner like us, or you solve your > problems without the help of the JogAmp community, the choice is yours. > I'm sorry, maybe I'm a bit touchy but when I read "our new version of > jogl" and when I still get no clear explanation of what changes fixed > your problems, I'm really upset. I'm a volunteer, I have used JOGL since > 2006, I answered your questions even during my holidays. Making a new > version of JOGL ready for a release requires a lot more work than just > fixing a few things privately. Modifying the source code just to catch > some exceptions that shouldn't even be thrown isn't a fix even though it > allows you not to use my clean workaround already working without Java > Webstart. Of course, I would prefer a solution that works with and > without Java Webstart but a dirty solution not fixing the real bugs > isn't acceptable on the long term, there is a huge difference between > tinkering some code and providing testable strong fixes. > Julien Gouesse | Personal blog <http://gouessej.wordpress.com> | Website > <http://tuer.sourceforge.net> > > > ------------------------------------------------------------------------ > If you reply to this email, your message will be added to the discussion > below: > http://forum.jogamp.org/Jogl-Jogamp-on-Java-9-tp4038012p4038493.html > To unsubscribe from Jogl/Jogamp on Java 9, click here > < > NAML > <http://forum.jogamp.org/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml> > |
In reply to this post by gouessej
I see you wrote:
"I'm really upset. I'm a volunteer" Nobody pays me, either. We are doing our best to help! I am sure we can figure out how to commit changes to the source code revision system, once we figure out what is and is not needed. Please, no need to be upset, really, we are making good progress here! And I do, very much, appreciate your help!! Regards, - Doug On 1/8/18 3:35 PM, gouessej [via jogamp] wrote: > I know that there is a problem with Java 1.9 under OS X, I don't deny it > and the modified version *of Java3D* works around a bug in JOGL caused > by changes in Java itself, it doesn't fix the real bug. However, you can > still make a pull request against Phil's repository as I'd like to know > his opinion. Predrag Bokšić's changes affect Java3D as far as I know, > not JOGL. Some questionable workarounds are better than no solution at > all but we need a pull request, we need to see exactly why it works even > though it doesn't release the context properly and by the way, I still > don't understand exactly why you needed to add a DLL for AWT somewhere > under Windows to make it work. I cannot go any further and help you both > if you don't share your findings in the most suitable way, not by > sending a compressed archive without indicating clearly what changes in > the source code have been done. If making a pull request is too > complicated for you, please post at least a diff file. Ignoring the > exceptions isn't a satisfying solution. JOGL and Java3D are under open > source licences, we don't hide any part of the source code, either you > work in an open and transparent manner like us, or you solve your > problems without the help of the JogAmp community, the choice is yours. > I'm sorry, maybe I'm a bit touchy but when I read "our new version of > jogl" and when I still get no clear explanation of what changes fixed > your problems, I'm really upset. I'm a volunteer, I have used JOGL since > 2006, I answered your questions even during my holidays. Making a new > version of JOGL ready for a release requires a lot more work than just > fixing a few things privately. Modifying the source code just to catch > some exceptions that shouldn't even be thrown isn't a fix even though it > allows you not to use my clean workaround already working without Java > Webstart. Of course, I would prefer a solution that works with and > without Java Webstart but a dirty solution not fixing the real bugs > isn't acceptable on the long term, there is a huge difference between > tinkering some code and providing testable strong fixes. > Julien Gouesse | Personal blog <http://gouessej.wordpress.com> | Website > <http://tuer.sourceforge.net> > > > ------------------------------------------------------------------------ > If you reply to this email, your message will be added to the discussion > below: > http://forum.jogamp.org/Jogl-Jogamp-on-Java-9-tp4038012p4038493.html > To unsubscribe from Jogl/Jogamp on Java 9, click here > < > NAML > <http://forum.jogamp.org/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml> > |
In reply to this post by gouessej
Let us all calm down, focus, and be friends. No one deserves to be a programmer.
This is a very treacherous terrain: we have the unspecific library files that carry the same names all over the place. Long tutorials keep failing us even if we rewrite them ourselves; there's a lack of proper documentation, the corporations tend to forget us, and the entire planet is undergoing updates that are destroying the functionality of everything. If you look through Google, you know there's no single solution. I have a feeling that it is exceptionally demanding to pay attention to the details that are ultimately difficult to track. Maybe you should know that people who perform the chaotic moves are using a natural algorithm that enables them to win despite the odds or expectations. Everybody wins in the end. Here, we've found some solutions to the problems by testing. It would be nice to publish them so that the small community of users can see these findings. I feel embarrassed to make a git-commit because I am a little bit shy and inexperienced. I made just a few small changes in the Java3D library _only_ and now it works with the JDK 9 on iMac. I thought that I wrote almost-well on this topic, but I did not make any further comments. It would be constructive for me to know if there is any better way of debugging the library. Now, we'll need to write down nicely the WebStart solution for Windows 10 as well. You see, I like to put the comments inside the source code, which shifts the rows down. They're like breadcrumbs. I left a few notes, so that you could search for the string "JVM 9" in the source code of the j3d-core.jar. Let us focus on the file /j3d-core/src/javax/media/j3d/JoglPipeline.java. There, you will find the method private void doQuery(). In this method, in the line 8631, you will find the following line: context.destroy(); This line needs to be removed. That is the minimal change that you need to make to continue after the crash. :-) I am kind of stupid, so I also removed the line 8635, nativeWindow.destroy(); which is also the source of the potential crash. In the line 6539, I also removed the line glContext.destroy(); just because of a mere speculation that this code would be executed. Let us now go to the line 8369, there you will find the line "while (tryAgain) {" This line is the context in which the method private void doQuery() runs. I removed that line because it was useless. These were the key workarounds for the Java3D bug. I also examined the projects Jogl + Gluegen and made many, many experiments until I disassembled the whole thing. I determined that we could use the original Jogl + Gluegen without making any changes for all our Java3D projects. However, Jogl is broken as well, in some sense. We know this by experiment. You can make a JoglQuad test project that uses the jogamp-fat.jar library _only_. That experiment also fails. Watch this... Let's say that we want to display the JoglQuad inside a JFrame or another type of window (except the JavaFX window). public static void main(String[] args) { final GLCanvas canvas = new GLCanvas(); final Frame jFrame = new Frame("Jogl Quad drawing"); final Animator animator = new Animator(canvas); canvas.addGLEventListener(new JoglTestWebstart()); jFrame.add(canvas); jFrame.setSize(640, 480); jFrame.setResizable(false); jFrame.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { animator.stop(); if (OSInfo.OS.MAC.equals(OSInfo.getOs())) { } else { jFrame.dispose(); } System.exit(0); } }); jFrame.setVisible(true); animator.start(); canvas.requestFocus(); } If you execute jFrame.dispose(), the JVM crashes. So, the programmers should check their code for this pitfall to avoid the crash if they encounter any. Of course, I did not want to offend you or anyone at all by posting these findings. :-) |
Administrator
|
In reply to this post by douglaslyon
You have to insert the 3 add exports clauses: "--add-exports=java.base/java.lang=ALL-UNNAMED --add-exports=java.desktop/sun.awt=ALL-UNNAMED --add-exports=java.desktop/sun.java2d=ALL-UNNAMED"
You currently only insert one of them into your JNLP file, it can't work. The second add export clause should solve your problem with "Bug 1004...". Ok you tell us that it works. Now, we have to make one bug report per new bug if necessary except if all are related to Java 1.9.
Julien Gouesse | Personal blog | Website
|
Free forum by Nabble | Edit this page |