Jogl/Jogamp on Java 9

classic Classic list List threaded Threaded
102 messages Options
123456
Reply | Threaded
Open this post in threaded view
|

Re: Jogl/Jogamp on Java 8 building from source

douglaslyon
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>
>
Reply | Threaded
Open this post in threaded view
|

Re: Jogl/Jogamp on Java 9 no compatible graphics context

Douglas Lyon
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
Reply | Threaded
Open this post in threaded view
|

Re: Jogl/Jogamp on Java 9 no compatible graphics context

gouessej
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
Reply | Threaded
Open this post in threaded view
|

Re: Jogl/Jogamp on Java 9 no compatible graphics context

douglaslyon
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>
>
Reply | Threaded
Open this post in threaded view
|

Re: Jogl/Jogamp on Java 9 no compatible graphics context

gouessej
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
Reply | Threaded
Open this post in threaded view
|

Re: Jogl/Jogamp on Java 9 no compatible graphics context

douglaslyon
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>
>
Reply | Threaded
Open this post in threaded view
|

Re: Jogl/Jogamp on Java 9 no compatible graphics context

gouessej
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
Reply | Threaded
Open this post in threaded view
|

Re: Jogl/Jogamp on Java 9 no compatible graphics context

douglaslyon
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>
>
Reply | Threaded
Open this post in threaded view
|

Re: Jogl/Jogamp on Java 9 no compatible graphics context

douglaslyon
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>
>
Reply | Threaded
Open this post in threaded view
|

Re: Jogl/Jogamp on Java 9 no compatible graphics context

douglaslyon
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>
>>
>
Reply | Threaded
Open this post in threaded view
|

Re: Jogl/Jogamp on Java 9 no compatible graphics context

gouessej
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
Reply | Threaded
Open this post in threaded view
|

Re: Jogl/Jogamp on Java 9 no compatible graphics context

douglaslyon
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>
>
Reply | Threaded
Open this post in threaded view
|

Re: Jogl/Jogamp on Java 9 no compatible graphics context

gouessej
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
Reply | Threaded
Open this post in threaded view
|

Re: Jogl/Jogamp on Java 9 no compatible graphics context

gouessej
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
Reply | Threaded
Open this post in threaded view
|

Re: Jogl/Jogamp on Java 9 no compatible graphics context

gouessej
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
Reply | Threaded
Open this post in threaded view
|

Re: Jogl/Jogamp on Java 9 no compatible graphics context

douglaslyon
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>
>
Reply | Threaded
Open this post in threaded view
|

Re: Jogl/Jogamp on Java 9 no compatible graphics context - solved!

douglaslyon
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>
>
Reply | Threaded
Open this post in threaded view
|

Re: Jogl/Jogamp on Java 9 no compatible graphics context

douglaslyon
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>
>
Reply | Threaded
Open this post in threaded view
|

Re: Jogl/Jogamp on Java 9 no compatible graphics context

Predrag Bokšić
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. :-)



Reply | Threaded
Open this post in threaded view
|

Re: Jogl/Jogamp on Java 9 no compatible graphics context

gouessej
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
123456