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