Problem accessing jfx native libs under eclipse on windows

Vadim Pakhnushev vadim.pakhnushev at oracle.com
Wed Oct 29 21:29:40 UTC 2014


I think the fix for this is as simple as:
diff -r 93f42b396c81 build.gradle
--- a/build.gradle    Wed Oct 29 09:25:31 2014 +0300
+++ b/build.gradle    Thu Oct 30 00:27:59 2014 +0300
@@ -113,10 +113,13 @@
      if (path == null || "".equals(path)) return path;
      ByteArrayOutputStream out = new ByteArrayOutputStream();
      logger.info("Converting path '$path' via cygpath")
-    exec {
+    def res = exec {
+        ignoreExitValue = true
          standardOutput = out
          commandLine "cmd", "/c", "cygpath", "-m", path
      }
+    // if cygpath failed then we are running without cygwin?
+    if (res.exitValue != 0) return path;
      return out.toString().trim();
  }


This will effectively bypass cygpath calls and will enable to build at 
least OpenJFX without Cygwin while not breaking anything running from 
Cygwin.

Vadim

On 29.10.2014 21:51, Vadim Pakhnushev wrote:
> Unfortunately, gradle detects Cygwin and modifies JAVA_HOME 
> environment variable preventing using it without cygpath later on.
> https://issues.gradle.org/browse/GRADLE-2673
> So this will break building from Cygwin.
>
> Vadim
>
> On 29.10.2014 20:59, Scott Palmer wrote:
>> If cygpath isn't needed and that's all cygwin was used for, and you 
>> already modified build.gradle to avoid the cygpath calls.... What's 
>> stopping you for checking that in so the cygwin requirement for 
>> OpenJFX can be dropped?
>>
>> The Gradle C/C++ support includes a method for creating a VS project 
>> from the Gradle source (since Gradle 1.11, see 
>> http://www.gradle.org/docs/1.11/release-notes#generate-visual-studio-configuration-for-a-native-binary-project). 
>> So you should be able to get that productivity boost without having 
>> to roll your own project files and maintain them.
>>
>> Scott
>>
>> On Wed, Oct 29, 2014 at 12:04 PM, Vadim Pakhnushev 
>> <vadim.pakhnushev at oracle.com <mailto:vadim.pakhnushev at oracle.com>> 
>> wrote:
>>
>>     At least for the OpenJFX without media/webkit Cygwin is used only
>>     for path manipulation (cygpath) so I don't think dropping it will
>>     boost performance at all.
>>     In fact, I just did a quick test and built OpenJFX without cygwin
>>     at all (modifying build.gradle so it will not call cygpath).
>>
>>     Visual Studio is the only viable option for Windows development.
>>     When I was actively developing native Windows code, I created my
>>     own VS project which can build native dlls just fine without even
>>     calling gradle and that was huge productivity boost.
>>
>>     Thanks,
>>     Vadim
>>
>>
>>     On 29.10.2014 18:05, Chris Bensen wrote:
>>
>>         +1 Visual Studio provides the best debugger and losing that
>>         would be very sad.
>>
>>         If we didn’t require Cygwin the build would also be faster!
>>
>>         Chris
>>
>>
>>         On Oct 24, 2014, at 9:00 PM, Scott Palmer <swpalmer at gmail.com
>>         <mailto:swpalmer at gmail.com>> wrote:
>>
>>             Jettisoning the MS tools would be a bad idea. The Visual
>>             Studio compiler or the Intel compiler are really the only
>>             reasonable options for building native code on Windows.
>>             I'm not aware of any professional programmer that uses GCC
>>             on Windows... Not because GCC is bad, the Windows ports
>>             just aren't capable of compiling against a real Windows
>>             SDK. The MinGW tools come with their own headers to try to
>>             work around this, but the last time I checked, it just
>>             didn't work well enough.
>>
>>             That said,I think the right approach in the long term is
>>             to move the build to use Gradle's support for C and C++.
>>             It supports the MS compiler as well as MinGW on Windows
>>             and all the popular compilers on other platforms. If we
>>             combined that with the ability to build just the 32bit JDK
>>             when running with the MS compiler, it would offer a decent
>>             solution for those using free tools on Windows.
>>
>>             Another goal should be to remove the requirement for
>>             Cygwin as it can cause its own set of problems. I'm not
>>             sure what it is used for that can't be done with Gradle
>>             and/or pure java libraries directly.
>>
>>             Scott
>>
>>                 On Oct 24, 2014, at 2:05 PM, Richard Steiger
>>                 <rsteiger at ensemblesoft.net
>>                 <mailto:rsteiger at ensemblesoft.net>> wrote:
>>
>>                 Stephen,
>>
>>                 Sorry for the mis-communication: in my original
>>                 message, I was able to do incremental java
>>                 compilation, but hadn't tried to do the full build,
>>                 since hadn't made changes to any of the native code.
>>                 Your reply straighted me out, that I need to be doing
>>                 full builds to pick-up changes in either the cpp or
>>                 low-level java code.  I haven't been able to get the
>>                 native builds to work, without it failing in either
>>                 the cpp compiler or linker.
>>
>>                 I still could use a hand to get working tooling.
>>
>>                 Also, care to comment whether there's any plan to
>>                 jetisson the MS tools in the openjfx project, or at
>>                 least align it with openjdk9's build system?
>>
>>                 Thanks,
>>
>>                 -rjs
>>
>>                     On 10/24/2014 10:43 AM, Stephen F Northover wrote:
>>                     Hi Richard,
>>
>>                     Your previous email indicated that you could
>>                     build, but that you can't see the shared libraries.
>>
>>                     Please try adding this the VM Arguments of your
>>                     Eclipse launch configuration:
>>
>> -Djava.library.path=${workspace_loc:rt}/build/sdk/rt/bin
>>                     -Djavafx.verbose=true
>>
>>                     Thanks,
>>                     Steve
>>
>>                         On 2014-10-24, 1:31 PM, Richard Steiger wrote:
>>                         To recap a message I sent to the list on 9/12,
>>                         I'm a newbie to JavaFX, and hoping to be able
>>                         to contribute, initially fixing bugs.
>>
>>                         Stephen, I'm attempting to follow the
>>                         instructions at:
>> https://wiki.openjdk.java.net/display/OpenJFX/Using+an+IDE,
>>                         and have found that the Visual Studio tools it
>>                         calls out don't include the amd64 tools, have
>>                         struggled to adapt win.gradle to VS 2011, and
>>                         otherwise dulled my pick.   Also, when
>>                         comparing the above instructions to openjdk9's
>>                         build setup, I'm also wondering whether
>>                         someone's revised the openjfx win build to use
>>                         gcc, MinGW, Code::Blocks, clang++, or any
>>                         other toolset besides the MS crud.
>>
>>                         Rather than dragging y'all through the
>>                         blow-by-blow challenges I've been getting hit
>>                         with, what I'm hoping is that one of you who's
>>                         actively developing on a 64-bit Windows 7+
>>                         environment is willing to lend a hand to get
>>                         me set-up with a working rig. Please reply to
>>                         just me if you're willing to help, I think I
>>                         just need a few minutes here and there to pick
>>                         the right tools, verify I'm working against
>>                         the correct repo, etc.
>>
>>                         Thanks in advance,
>>
>>                         -rjs
>>
>>                             On 9/12/2014 2:40 PM, Stephen F Northover
>>                             wrote:
>>                             Hi Richard,
>>
>>                             Did you follow the instructions at this
>>                             link:
>> https://wiki.openjdk.java.net/display/OpenJFX/Using+an+IDE
>>                             ?
>>
>>                             You are picking up a set of shared
>>                             libraries that do not match the java code
>>                             you are running in the IDE.  You need to
>>                             set java.library.path.  It's on the wiki
>>                             and I meant to update it to be something
>>                             sensible.  My build puts the dll's in an
>>                             artifacts directory:
>>
>> -Djava.library.path=${workspace_loc:rt}/../artifacts/sdk/rt/bin
>>
>>                             You will need to edit this expression to
>>                             pick up the dll's from the standard build
>>                             place (which I forget right now).
>>
>>                             Steve
>>
>>                                 On 2014-09-12, 5:31 PM, Richard
>>                                 Steiger wrote:
>>                                 I'm a newbie to JavaFX, and hoping to
>>                                 be able to contribute down the road
>>                                 once I learn much more about it.
>>
>>                                 To that end, I've been trying to get
>>                                 8u-dev eclipse projects setup on a
>>                                 Win7 box so I can start stepping
>>                                 through the code. The current
>>                                 show-stopper is getting
>>                                 UnsatisfiedLinkErrors when the system
>>                                 is trying to access dlls, such as
>>                                 glass.dll.
>>
>>                                 My rig:
>>
>>                                 * jdk1.8.0_05
>>                                 *
>> eclipse-SDK-N20140722-2000-win32-x86_64 (Mars
>>                                 stable build, has fix
>>                                   for StackOverflow bug in eclipse j8
>>                                 compiler)
>>                                 * hg clone of 8u-dev as of 8/26
>>
>>                                 Setup:
>>
>>                                 * ran the gradle build (successfully)
>>                                 * imported the eclipse projects in the
>>                                 repo, all cleanly compile (but
>>                                   had to fix cross-project links and
>>                                 manually locate and attach 3p libs)
>>                                 * removed javafx.* and related JavaFX
>>                                 sources from JAVA_HOME/src
>>                                 * moved jfxrt.jar to a cache directory
>>
>>                                 Failure situation:
>>
>>                                 * attempting to launch jfx apps under
>>                                 eclipse debugger
>>
>>                                 The following console output is
>>                                 typical of what I'm running into (with
>>                                 -verbose:jni on the command line):
>>
>>                                 [Dynamic-linking native method
>>                                 java.lang.Object.registerNatives ... 
>> JNI]
>>                                 [Registering JNI native method
>>                                 java.lang.Object.hashCode]
>>                                 [Registering JNI native method
>>                                 java.lang.Object.wait]
>>                                 [Registering JNI native method
>>                                 java.lang.Object.notify]
>>                                 [Registering JNI native method
>>                                 java.lang.Object.notifyAll]
>>                                 [Registering JNI native method
>>                                 java.lang.Object.clone]
>>                                 [Dynamic-linking native method
>>                                 java.lang.System.registerNatives ... 
>> JNI]
>>                                 [Registering JNI native method
>> java.lang.System.currentTimeMillis]
>>                                 [Registering JNI native method
>>                                 java.lang.System.nanoTime]
>>                                 [Registering JNI native method
>>                                 java.lang.System.arraycopy]
>>                                 [Dynamic-linking native method
>>                                 java.lang.Thread.registerNatives ... 
>> JNI]
>>                                 [Registering JNI native method
>>                                 java.lang.Thread.start0]
>>                                 [Registering JNI native method
>>                                 java.lang.Thread.stop0]
>>                                 [Registering JNI native method
>>                                 java.lang.Thread.isAlive]
>>                                 [Registering JNI native method
>>                                 java.lang.Thread.suspend0]
>>                                 [Registering JNI native method
>>                                 java.lang.Thread.resume0]
>>                                 [Registering JNI native method
>>                                 java.lang.Thread.setPriority0]
>>                                 [Registering JNI native method
>>                                 java.lang.Thread.yield]
>>                                 [Registering JNI native method
>>                                 java.lang.Thread.sleep]
>>                                 [Registering JNI native method
>>                                 java.lang.Thread.currentThread]
>>                                 [Registering JNI native method
>> java.lang.Thread.countStackFrames]
>>                                 [Registering JNI native method
>>                                 java.lang.Thread.interrupt0]
>>                                 [Registering JNI native method
>>                                 java.lang.Thread.isInterrupted]
>>                                 [Registering JNI native method
>>                                 java.lang.Thread.holdsLock]
>>                                 [Registering JNI native method
>>                                 java.lang.Thread.getThreads]
>>                                 [Registering JNI native method
>>                                 java.lang.Thread.dumpThreads]
>>                                 [Registering JNI native method
>>                                 java.lang.Thread.setNativeName]
>>                                 [Dynamic-linking native method
>> java.security.AccessController.getStackAccessControlContext
>>                                 ... JNI]
>>                                 [Dynamic-linking native method
>> java.security.AccessController.getInheritedAccessControlContext
>>                                 ... JNI]
>>                                 [Dynamic-linking native method
>>                                 java.lang.Class.registerNatives ... JNI]
>>                                 [Registering JNI native method
>>                                 java.lang.Class.getName0]
>>                                 [Registering JNI native method
>>                                 java.lang.Class.getSuperclass]
>>                                 [Registering JNI native method
>>                                 java.lang.Class.getInterfaces0]
>>                                 [Registering JNI native method
>>                                 java.lang.Class.getClassLoader0]
>>                                 [Registering JNI native method
>>                                 java.lang.Class.isInterface]
>>                                 [Registering JNI native method
>>                                 java.lang.Class.getSigners]
>>                                 [Registering JNI native method
>>                                 java.lang.Class.setSigners]
>>                                 [Registering JNI native method
>>                                 java.lang.Class.isArray]
>>                                 [Registering JNI native method
>>                                 java.lang.Class.isPrimitive]
>>                                 [Registering JNI native method
>> java.lang.Class.getComponentType]
>>                                 [Registering JNI native method
>>                                 java.lang.Class.getModifiers]
>>                                 [Registering JNI native method
>> java.lang.Class.getDeclaredFields0]
>>                                 [Registering JNI native method
>> java.lang.Class.getDeclaredMethods0]
>>                                 [Registering JNI native method
>> java.lang.Class.getDeclaredConstructors0]
>>                                 [Registering JNI native method
>> java.lang.Class.getProtectionDomain0]
>>                                 [Registering JNI native method
>> java.lang.Class.getDeclaredClasses0]
>>                                 [Registering JNI native method
>> java.lang.Class.getDeclaringClass0]
>>                                 [Registering JNI native method
>> java.lang.Class.getGenericSignature0]
>>                                 [Registering JNI native method
>> java.lang.Class.getRawAnnotations]
>>                                 [Registering JNI native method
>>                                 java.lang.Class.getConstantPool]
>>                                 [Registering JNI native method
>> java.lang.Class.desiredAssertionStatus0]
>>                                 [Registering JNI native method
>> java.lang.Class.getEnclosingMethod0]
>>                                 [Registering JNI native method
>> java.lang.Class.getRawTypeAnnotations]
>>                                 [Dynamic-linking native method
>> java.lang.ClassLoader.registerNatives
>>                                 ... JNI]
>>                                 [Registering JNI native method
>> java.lang.ClassLoader.retrieveDirectives]
>>                                 [Dynamic-linking native method
>> java.security.AccessController.doPrivileged
>>                                 ... JNI]
>>                                 [Dynamic-linking native method
>> java.lang.Class.getPrimitiveClass ... JNI]
>>                                 [Dynamic-linking native method
>> java.lang.Float.floatToRawIntBits ... JNI]
>>                                 [Dynamic-linking native method
>> java.lang.Double.doubleToRawLongBits
>>                                 ... JNI]
>>                                 [Dynamic-linking native method
>> java.lang.Double.longBitsToDouble ... JNI]
>>                                 [Dynamic-linking native method
>>                                 java.lang.System.initProperties ... JNI]
>>                                 [Dynamic-linking native method
>>                                 sun.misc.VM.initialize ... JNI]
>>                                 [Dynamic-linking native method
>>                                 java.lang.Runtime.maxMemory ... JNI]
>>                                 [Dynamic-linking native method
>>                                 java.io.FileInputStream.initIDs ... JNI]
>>                                 [Dynamic-linking native method
>>                                 java.io.FileDescriptor.initIDs ... JNI]
>>                                 [Dynamic-linking native method
>>                                 sun.misc.Unsafe.registerNatives ... JNI]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.getObject]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.putObject]
>>                                 [Registering JNI native method
>> sun.misc.Unsafe.getObjectVolatile]
>>                                 [Registering JNI native method
>> sun.misc.Unsafe.putObjectVolatile]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.getBoolean]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.putBoolean]
>>                                 [Registering JNI native method
>> sun.misc.Unsafe.getBooleanVolatile]
>>                                 [Registering JNI native method
>> sun.misc.Unsafe.putBooleanVolatile]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.getByte]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.putByte]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.getByteVolatile]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.putByteVolatile]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.getShort]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.putShort]
>>                                 [Registering JNI native method
>> sun.misc.Unsafe.getShortVolatile]
>>                                 [Registering JNI native method
>> sun.misc.Unsafe.putShortVolatile]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.getChar]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.putChar]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.getCharVolatile]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.putCharVolatile]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.getInt]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.putInt]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.getIntVolatile]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.putIntVolatile]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.getLong]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.putLong]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.getLongVolatile]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.putLongVolatile]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.getFloat]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.putFloat]
>>                                 [Registering JNI native method
>> sun.misc.Unsafe.getFloatVolatile]
>>                                 [Registering JNI native method
>> sun.misc.Unsafe.putFloatVolatile]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.getDouble]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.putDouble]
>>                                 [Registering JNI native method
>> sun.misc.Unsafe.getDoubleVolatile]
>>                                 [Registering JNI native method
>> sun.misc.Unsafe.putDoubleVolatile]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.getByte]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.putByte]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.getShort]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.putShort]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.getChar]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.putChar]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.getInt]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.putInt]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.getLong]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.putLong]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.getFloat]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.putFloat]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.getDouble]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.putDouble]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.getAddress]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.putAddress]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.allocateMemory]
>>                                 [Registering JNI native method
>> sun.misc.Unsafe.reallocateMemory]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.freeMemory]
>>                                 [Registering JNI native method
>> sun.misc.Unsafe.objectFieldOffset]
>>                                 [Registering JNI native method
>> sun.misc.Unsafe.staticFieldOffset]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.staticFieldBase]
>>                                 [Registering JNI native method
>> sun.misc.Unsafe.ensureClassInitialized]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.arrayBaseOffset]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.arrayIndexScale]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.addressSize]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.pageSize]
>>                                 [Dynamic-linking native method
>> java.lang.Throwable.fillInStackTrace
>>                                 ... JNI]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.getObject]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.putObject]
>>                                 [Registering JNI native method
>> sun.misc.Unsafe.getObjectVolatile]
>>                                 [Registering JNI native method
>> sun.misc.Unsafe.putObjectVolatile]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.getBoolean]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.putBoolean]
>>                                 [Registering JNI native method
>> sun.misc.Unsafe.getBooleanVolatile]
>>                                 [Registering JNI native method
>> sun.misc.Unsafe.putBooleanVolatile]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.getByte]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.putByte]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.getByteVolatile]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.putByteVolatile]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.getShort]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.putShort]
>>                                 [Registering JNI native method
>> sun.misc.Unsafe.getShortVolatile]
>>                                 [Registering JNI native method
>> sun.misc.Unsafe.putShortVolatile]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.getChar]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.putChar]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.getCharVolatile]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.putCharVolatile]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.getInt]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.putInt]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.getIntVolatile]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.putIntVolatile]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.getLong]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.putLong]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.getLongVolatile]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.putLongVolatile]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.getFloat]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.putFloat]
>>                                 [Registering JNI native method
>> sun.misc.Unsafe.getFloatVolatile]
>>                                 [Registering JNI native method
>> sun.misc.Unsafe.putFloatVolatile]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.getDouble]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.putDouble]
>>                                 [Registering JNI native method
>> sun.misc.Unsafe.getDoubleVolatile]
>>                                 [Registering JNI native method
>> sun.misc.Unsafe.putDoubleVolatile]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.getByte]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.putByte]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.getShort]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.putShort]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.getChar]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.putChar]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.getInt]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.putInt]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.getLong]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.putLong]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.getFloat]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.putFloat]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.getDouble]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.putDouble]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.getAddress]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.putAddress]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.allocateMemory]
>>                                 [Registering JNI native method
>> sun.misc.Unsafe.reallocateMemory]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.freeMemory]
>>                                 [Registering JNI native method
>> sun.misc.Unsafe.objectFieldOffset]
>>                                 [Registering JNI native method
>> sun.misc.Unsafe.staticFieldOffset]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.staticFieldBase]
>>                                 [Registering JNI native method
>> sun.misc.Unsafe.ensureClassInitialized]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.arrayBaseOffset]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.arrayIndexScale]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.addressSize]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.pageSize]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.defineClass]
>>                                 [Registering JNI native method
>> sun.misc.Unsafe.allocateInstance]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.monitorEnter]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.monitorExit]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.tryMonitorEnter]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.throwException]
>>                                 [Registering JNI native method
>> sun.misc.Unsafe.compareAndSwapObject]
>>                                 [Registering JNI native method
>> sun.misc.Unsafe.compareAndSwapInt]
>>                                 [Registering JNI native method
>> sun.misc.Unsafe.compareAndSwapLong]
>>                                 [Registering JNI native method
>> sun.misc.Unsafe.putOrderedObject]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.putOrderedInt]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.putOrderedLong]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.park]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.unpark]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.getLoadAverage]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.copyMemory]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.setMemory]
>>                                 [Registering JNI native method
>> sun.misc.Unsafe.defineAnonymousClass]
>>                                 [Registering JNI native method
>> sun.misc.Unsafe.shouldBeInitialized]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.loadFence]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.storeFence]
>>                                 [Registering JNI native method
>>                                 sun.misc.Unsafe.fullFence]
>>                                 [Dynamic-linking native method
>> sun.reflect.Reflection.getCallerClass
>>                                 ... JNI]
>>                                 [Dynamic-linking native method
>>                                 java.io.FileDescriptor.set ... JNI]
>>                                 [Dynamic-linking native method
>>                                 java.io.FileOutputStream.initIDs ... 
>> JNI]
>>                                 [Dynamic-linking native method
>> java.security.AccessController.doPrivileged
>>                                 ... JNI]
>>                                 [Dynamic-linking native method
>>                                 java.lang.String.intern ... JNI]
>>                                 [Dynamic-linking native method
>>                                 java.lang.System.setIn0 ... JNI]
>>                                 [Dynamic-linking native method
>>                                 java.lang.Object.getClass ... JNI]
>>                                 [Dynamic-linking native method
>>                                 java.lang.Class.forName0 ... JNI]
>>                                 [Dynamic-linking native method
>> sun.reflect.Reflection.getClassAccessFlags
>>                                 ... JNI]
>>                                 [Dynamic-linking native method
>> sun.reflect.NativeConstructorAccessorImpl.newInstance0
>>                                 ... JNI]
>>                                 [Dynamic-linking native method
>>                                 java.lang.System.setOut0 ... JNI]
>>                                 [Dynamic-linking native method
>>                                 java.lang.System.setErr0 ... JNI]
>>                                 [Dynamic-linking native method
>>                                 java.io.WinNTFileSystem.initIDs ... JNI]
>>                                 [Dynamic-linking native method
>>                                 java.lang.System.mapLibraryName ... JNI]
>>                                 [Dynamic-linking native method
>> java.lang.ClassLoader$NativeLibrary.findBuiltinLib
>>                                 ... JNI]
>>                                 [Dynamic-linking native method
>> java.io.WinNTFileSystem.getBooleanAttributes
>>                                 ... JNI]
>>                                 [Dynamic-linking native method
>> java.io.WinNTFileSystem.canonicalize0
>>                                 ... JNI]
>>                                 [Dynamic-linking native method
>> java.lang.ClassLoader$NativeLibrary.load
>>                                 ... JNI]
>>                                 [Dynamic-linking native method
>>                                 sun.misc.Signal.findSignal ... JNI]
>>                                 [Dynamic-linking native method
>>                                 sun.misc.Signal.handle0 ... JNI]
>>                                 [Dynamic-linking native method
>> sun.io.Win32ErrorMode.setErrorMode ...
>>                                 JNI]
>>                                 [Dynamic-linking native method
>> java.lang.Compiler.registerNatives ...
>>                                 JNI]
>>                                 [Registering JNI native method
>>                                 java.lang.Compiler.compileClass]
>>                                 [Registering JNI native method
>> java.lang.Compiler.compileClasses]
>>                                 [Registering JNI native method
>>                                 java.lang.Compiler.command]
>>                                 [Registering JNI native method
>>                                 java.lang.Compiler.enable]
>>                                 [Registering JNI native method
>>                                 java.lang.Compiler.disable]
>>                                 [Dynamic-linking native method
>>                                 java.lang.Class.isAssignableFrom ... 
>> JNI]
>>                                 [Dynamic-linking native method
>>                                 java.io.FileInputStream.open ... JNI]
>>                                 [Dynamic-linking native method
>> java.io.FileInputStream.readBytes ... JNI]
>>                                 [Dynamic-linking native method
>> java.io.FileInputStream.available ... JNI]
>>                                 [Dynamic-linking native method
>>                                 java.lang.reflect.Array.newArray ... 
>> JNI]
>>                                 [Dynamic-linking native method
>> java.lang.Runtime.availableProcessors
>>                                 ... JNI]
>>                                 [Dynamic-linking native method
>>                                 java.io.FileInputStream.close0 ... JNI]
>>                                 [Dynamic-linking native method
>>                                 java.io.WinNTFileSystem.list ... JNI]
>>                                 [Dynamic-linking native method
>> java.io.WinNTFileSystem.canonicalizeWithPrefix0
>>                                 ... JNI]
>>                                 [Dynamic-linking native method
>> java.lang.ClassLoader.findLoadedClass0
>>                                 ... JNI]
>>                                 [Dynamic-linking native method
>> java.lang.ClassLoader.findBootstrapClass
>>                                 ... JNI]
>>                                 [Dynamic-linking native method
>> sun.misc.VMSupport.initAgentProperties
>>                                 ... JNI]
>>                                 [Dynamic-linking native method
>> java.lang.invoke.MethodHandleNatives.registerNatives
>>                                 ... JNI]
>>                                 [Registering JNI native method
>> java.lang.invoke.MethodHandleNatives.init]
>>                                 [Registering JNI native method
>> java.lang.invoke.MethodHandleNatives.expand]
>>                                 [Registering JNI native method
>> java.lang.invoke.MethodHandleNatives.resolve]
>>                                 [Registering JNI native method
>> java.lang.invoke.MethodHandleNatives.getConstant]
>>                                 [Registering JNI native method
>> java.lang.invoke.MethodHandleNatives.getNamedCon]
>>                                 [Registering JNI native method
>> java.lang.invoke.MethodHandleNatives.getMembers]
>>                                 [Registering JNI native method
>> java.lang.invoke.MethodHandleNatives.objectFieldOffset]
>>                                 [Registering JNI native method
>> java.lang.invoke.MethodHandleNatives.setCallSiteTargetNormal]
>>                                 [Registering JNI native method
>> java.lang.invoke.MethodHandleNatives.setCallSiteTargetVolatile]
>>                                 [Registering JNI native method
>> java.lang.invoke.MethodHandleNatives.staticFieldOffset]
>>                                 [Registering JNI native method
>> java.lang.invoke.MethodHandleNatives.staticFieldBase]
>>                                 [Registering JNI native method
>> java.lang.invoke.MethodHandleNatives.getMemberVMInfo]
>>                                 [Registering JNI native method
>> java.lang.invoke.MethodHandle.invoke]
>>                                 [Registering JNI native method
>> java.lang.invoke.MethodHandle.invokeExact]
>>                                 [Dynamic-linking native method
>> java.lang.ClassLoader$NativeLibrary.find
>>                                 ... JNI]
>>                                 [Dynamic-linking native method
>> java.security.AccessController.doPrivileged
>>                                 ... JNI]
>>                                 [Dynamic-linking native method
>>                                 java.util.zip.ZipFile.initIDs ... JNI]
>>                                 [Dynamic-linking native method
>> java.lang.Package.getSystemPackage0
>>                                 ... JNI]
>>                                 [Dynamic-linking native method
>> java.io.WinNTFileSystem.getLength ... JNI]
>>                                 [Dynamic-linking native method
>>                                 sun.misc.Perf.registerNatives ... JNI]
>>                                 [Registering JNI native method
>>                                 sun.misc.Perf.attach]
>>                                 [Registering JNI native method
>>                                 sun.misc.Perf.detach]
>>                                 [Registering JNI native method
>>                                 sun.misc.Perf.createLong]
>>                                 [Registering JNI native method
>>                                 sun.misc.Perf.createByteArray]
>>                                 [Registering JNI native method
>>                                 sun.misc.Perf.highResCounter]
>>                                 [Registering JNI native method
>>                                 sun.misc.Perf.highResFrequency]
>>                                 [Dynamic-linking native method
>> java.lang.ClassLoader.defineClass1 ...
>>                                 JNI]
>>                                 [Dynamic-linking native method
>> java.io.WinNTFileSystem.getLastModifiedTime
>>                                 ... JNI]
>>                                 [Dynamic-linking native method
>>                                 java.util.zip.ZipFile.open ... JNI]
>>                                 [Dynamic-linking native method
>>                                 java.util.zip.ZipFile.getTotal ... JNI]
>>                                 [Dynamic-linking native method
>> java.util.zip.ZipFile.startsWithLOC
>>                                 ... JNI]
>>                                 [Dynamic-linking native method
>>                                 java.util.zip.ZipFile.getEntry ... JNI]
>>                                 [Dynamic-linking native method
>> java.util.zip.ZipFile.getEntryFlag ...
>>                                 JNI]
>>                                 [Dynamic-linking native method
>> java.util.zip.ZipFile.getEntryTime ...
>>                                 JNI]
>>                                 [Dynamic-linking native method
>> java.util.TimeZone.getSystemTimeZoneID
>>                                 ... JNI]
>>                                 [Dynamic-linking native method
>>                                 java.util.zip.CRC32.updateBytes ... JNI]
>>                                 [Dynamic-linking native method
>> java.util.zip.ZipFile.getEntryCrc ... JNI]
>>                                 [Dynamic-linking native method
>> java.util.zip.ZipFile.getEntrySize ...
>>                                 JNI]
>>                                 [Dynamic-linking native method
>> java.util.zip.ZipFile.getEntryCSize
>>                                 ... JNI]
>>                                 [Dynamic-linking native method
>> java.util.zip.ZipFile.getEntryMethod
>>                                 ... JNI]
>>                                 [Dynamic-linking native method
>> java.util.zip.ZipFile.getEntryBytes
>>                                 ... JNI]
>>                                 [Dynamic-linking native method
>>                                 java.util.zip.ZipFile.freeEntry ... JNI]
>>                                 [Dynamic-linking native method
>>                                 java.util.zip.Inflater.initIDs ... JNI]
>>                                 [Dynamic-linking native method
>>                                 java.util.zip.Inflater.init ... JNI]
>>                                 [Dynamic-linking native method
>> java.util.zip.Inflater.inflateBytes
>>                                 ... JNI]
>>                                 [Dynamic-linking native method
>>                                 java.util.zip.ZipFile.read ... JNI]
>>                                 [Dynamic-linking native method
>>                                 java.util.zip.Inflater.reset ... JNI]
>>                                 [Dynamic-linking native method
>> sun.reflect.NativeMethodAccessorImpl.invoke0
>>                                 ... JNI]
>>                                 [Dynamic-linking native method
>>                                 java.lang.Class.isInstance ... JNI]
>>                                 [Dynamic-linking native method
>> java.security.AccessController.doPrivileged
>>                                 ... JNI]
>>                                 [Dynamic-linking native method
>> com.sun.prism.d3d.D3DPipeline.nInit
>>                                 ... JNI]
>>                                 [Dynamic-linking native method
>> com.sun.prism.d3d.D3DPipeline.nGetAdapterCount
>>                                 ... JNI]
>>                                 [Dynamic-linking native method
>> java.lang.System.identityHashCode ... JNI]
>>                                 [Dynamic-linking native method
>> com.sun.glass.ui.win.WinApplication.initIDs
>>                                 ... JNI]
>>                                 [Dynamic-linking native method
>> com.sun.glass.ui.win.WinApplication._setClassLoader
>>                                 ... JNI]
>>                                 [Dynamic-linking native method
>> com.sun.glass.ui.win.WinApplication._init
>>                                 ... JNI]
>>                                 [Dynamic-linking native method
>> com.sun.glass.ui.win.WinApplication._runLoop
>>                                 ... JNI]
>>                                 [Dynamic-linking native method
>> com.sun.glass.ui.win.WinApplication.staticScreen_getScreens
>>                                 ... JNI]
>>                                 [Dynamic-linking native method
>> com.sun.prism.d3d.D3DPipeline.nGetAdapterOrdinal
>>                                 ... JNI]
>>                                 [Dynamic-linking native method
>> com.sun.prism.d3d.D3DResourceFactory.nGetContext
>>                                 ... JNI]
>>                                 [Dynamic-linking native method
>> com.sun.prism.d3d.D3DContext.nSetBlendEnabled
>>                                 ... JNI]
>>                                 [Dynamic-linking native method
>> com.sun.prism.d3d.D3DContext.nSetDeviceParametersFor2D
>>                                 ... JNI]
>>                                 [Dynamic-linking native method
>> com.sun.prism.d3d.D3DResourceFactory.nGetMaximumTextureSize
>>                                 ... JNI]
>>                                 [Dynamic-linking native method
>> com.sun.glass.ui.win.WinTimer._getMinPeriod
>>                                 ... JNI]
>>                                 [Dynamic-linking native method
>> com.sun.glass.ui.win.WinTimer._getMaxPeriod
>>                                 ... JNI]
>>                                 [Dynamic-linking native method
>> com.sun.glass.ui.win.WinApplication._submitForLaterInvocation
>>                                 ... JNI]
>>                                 [Dynamic-linking native method
>> com.sun.glass.ui.win.WinTimer._start
>>                                 ... JNI]
>>                                 [Dynamic-linking native method
>> java.lang.Throwable.getStackTraceDepth
>>                                 ... JNI]
>>                                 [Dynamic-linking native method
>> java.lang.Throwable.getStackTraceElement
>>                                 ... JNI]
>>                                 [Dynamic-linking native method
>> java.io.FileOutputStream.writeBytes
>>                                 ... JNI]
>>                                 Exception in Application start method
>>                                 [Dynamic-linking native method
>> com.sun.glass.ui.win.WinApplication._terminateLoop
>>                                 ... JNI]
>>                                 [Dynamic-linking native method
>> com.sun.glass.ui.win.WinTimer._stop
>>                                 ... JNI]
>>                                 [Dynamic-linking native method
>> com.sun.prism.d3d.D3DPipeline.nDispose
>>                                 ... JNI]
>> java.lang.reflect.InvocationTargetException
>>                                    at
>> sun.reflect.NativeMethodAccessorImpl.invoke0(Native
>>                                 Method)
>>                                    at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>                                    at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>                                    at
>> java.lang.reflect.Method.invoke(Method.java:483)
>>                                    at
>> com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:363)
>>                                    at
>> com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:303)
>>                                    at
>> sun.reflect.NativeMethodAccessorImpl.invoke0(Native
>>                                 Method)
>>                                    at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>                                    at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>                                    at
>> java.lang.reflect.Method.invoke(Method.java:483)
>>                                    at
>> sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767)
>>                                 Caused by: java.lang.RuntimeException:
>>                                 Exception in Application start method
>>                                    at
>> com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:875)
>>                                    at
>> com.sun.javafx.application.LauncherImpl.lambda$0(LauncherImpl.java:157)
>>                                    at
>> com.sun.javafx.application.LauncherImpl$$Lambda$47/895947612.run(Unknown
>>                                 Source)
>>                                    at
>> java.lang.Thread.run(Thread.java:745)
>>                                 Caused by:
>>                                 java.lang.UnsatisfiedLinkError:
>> com.sun.glass.ui.win.WinApplication._getHighContrastTheme()Ljava/lang/String;
>>                                    at
>> com.sun.glass.ui.win.WinApplication._getHighContrastTheme(Native
>>                                 Method)
>>                                    at
>> com.sun.glass.ui.win.WinApplication.getHighContrastTheme(WinApplication.java:261)
>>                                    at
>> com.sun.javafx.tk.quantum.QuantumToolkit.getThemeName(QuantumToolkit.java:1512)
>>                                    at
>> com.sun.javafx.application.PlatformImpl._setPlatformUserAgentStylesheet(PlatformImpl.java:689)
>>                                    at
>> com.sun.javafx.application.PlatformImpl.setPlatformUserAgentStylesheet(PlatformImpl.java:545)
>>                                    at
>> com.sun.javafx.application.PlatformImpl.setDefaultPlatformUserAgentStylesheet(PlatformImpl.java:509)
>>                                    at
>> javafx.scene.control.Control.<clinit>(Control.java:87)
>>                                    at
>> net.ess.newTools.HtmlEditor.start(HtmlEditor.java:54)
>>                                    at
>> com.sun.javafx.application.LauncherImpl.lambda$6(LauncherImpl.java:821)
>>                                    at
>> com.sun.javafx.application.LauncherImpl$$Lambda$50/1113966589.run(Unknown
>>                                 Source)
>>                                    at
>> com.sun.javafx.application.PlatformImpl.lambda$6(PlatformImpl.java:326)
>>                                    at
>> com.sun.javafx.application.PlatformImpl$$Lambda$43/2008362258.run(Unknown
>>                                 Source)
>>                                    at
>> com.sun.javafx.application.PlatformImpl.lambda$18(PlatformImpl.java:295)
>>                                    at
>> com.sun.javafx.application.PlatformImpl$$Lambda$46/1820470793.run(Unknown
>>                                 Source)
>>                                    at
>> java.security.AccessController.doPrivileged(Native
>>                                 Method)
>>                                    at
>> com.sun.javafx.application.PlatformImpl.lambda$5(PlatformImpl.java:294)
>>                                    at
>> com.sun.javafx.application.PlatformImpl$$Lambda$44/760563749.run(Unknown
>>                                 Source)
>>                                    at
>> com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
>>                                    at
>> com.sun.glass.ui.win.WinApplication._runLoop(Native
>>                                 Method)
>>                                    at
>> com.sun.glass.ui.win.WinApplication.lambda$4(WinApplication.java:100)
>>                                    at
>> com.sun.glass.ui.win.WinApplication$$Lambda$36/1622006612.run(Unknown
>>                                 Source)
>>                                    ... 1 more
>>                                 Exception running application
>>                                 net.ess.newTools.HtmlEditor
>>                                 [Dynamic-linking native method
>>                                 java.lang.Shutdown.halt0 ... JNI]
>>
>>                                 On the assumption that the VM is
>>                                 failing to load some dll, I've tried
>>                                 numerous means for letting eclipse
>>                                 know the load library path, including
>>
>>                                 * passing "-Djava.library.path=" on
>>                                 the VM's command-line using ,
>>                                   pointing to the JDK's bin dir, and
>>                                 the JavaFX2.1 install's bin dir
>>                                   (where all dlls appear to live)
>>                                 * setting the LD_LIBRARY_PATH
>>                                 environment var to both of the above 
>> dirs
>>                                 * adding both of the above dirs to PATH
>>                                 * cloning all dlls to the directory
>>                                 containing the
>> javafx.application.Application.class
>>                                 file
>>
>>                                 to no avail, I seem to be shooting in
>>                                 the dark (i.e. don't know enough what
>>                                 I'm doing).
>>
>>                                 I'd appreciate any advice any of you
>>                                 can provide to help me get unstuck.
>>
>>                                 Thanks,
>>
>>                                 -rjs
>>
>>
>>
>



More information about the openjfx-dev mailing list