Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[platform-dev] JNLP and win32 - java.library.path

Hi,
 
I hope this is the right place to post this. If not, could you point me in the right direction? I'm having a problem that looks like a usual suspect at first glance. However, I've done my homework, and this one isn't the norm...
 
I'm trying to use JNLP to launch an application. It works fine for Linux clients, but not Windows clients. I've been doing some testing, and the problem still exists even in the SWT examples, like ControlExample. Launches fine in Linux, but not Windows. If I run them as executable jars on windows, both the examples and the application I'm trying to package work fine.
 
Here's the error..
 
java.lang.reflect.InvocationTargetException
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke (Unknown Source)
 at java.lang.reflect.Method.invoke(Unknown Source)
 at com.sun.javaws.Launcher.executeApplication(Unknown Source)
 at com.sun.javaws.Launcher.executeMainClass(Unknown Source)
 at com.sun.javaws.Launcher.continueLaunch (Unknown Source)
 at com.sun.javaws.Launcher.handleApplicationDesc(Unknown Source)
 at com.sun.javaws.Launcher.handleLaunchFile(Unknown Source)
 at com.sun.javaws.Launcher.run(Unknown Source)
 at java.lang.Thread.run (Unknown Source)
Caused by: java.lang.UnsatisfiedLinkError: no swt-win32-3139 in java.library.path
 at java.lang.ClassLoader.loadLibrary(Unknown Source)
 at java.lang.Runtime.loadLibrary0(Unknown Source)
 at java.lang.System.loadLibrary (Unknown Source)
 at org.eclipse.swt.internal.Library.loadLibrary(Library.java:123)
 at org.eclipse.swt.internal.win32.OS.<clinit>(OS.java:18)
 at org.eclipse.swt.widgets.Display.<clinit>(Display.java :125)
 at org.eclipse.swt.examples.controlexample.ControlExample.main(ControlExample.java:184)
 ... 11 more
 
Looks pretty standard, right? java.library.path issue. However, I've dealt with that in the past. I went so far as to set java.library.path to "." using System.setProperty("java.library.path", "."); Then I created an inital executable jar that's sole job was to unpack the swt dll's into ".". I also tried setting java.library.path in my .jnlp as a resource property.  Also, I've tried setting java.library.path using a -D passed to the vm, nothing.. I'm pretty sure that java is setting the java.library.path correctly, or else I'd expect the exectable jars to fail. 
 
Now, I'm at the point where I'm doing it word for word from the very well documented FAQ's. I've found two of them, both nearly identical, on the main swt website. Here are the main .jnlp I'm using...
 
<?xml version="1.0" encoding="utf-8"?>
<jnlp
  spec="1.0+"
  codebase="" href="http://www.foo.com/bar" target="_blank" _onclick_="return top.js.OpenExtLink(window,event,this)"> http://www.foo.com/bar
  href=""
  <information>
    <title>SWT Examples</title>
    <vendor>Your website</vendor>
    <homepage href="" href="http://eclipse.org/swt%22/" target="_blank" _onclick_="return top.js.OpenExtLink(window,event,this)"> http://eclipse.org/swt"/ >
    <description>SWT ControlExample</description>
    <offline-allowed/>
  </information>
  <security>
      <all-permissions/>
  </security>
  <resources>
    <j2se version="1.3+"/>
    <jar href="">    <extension name="swt" href="">  </resources>
  <application-desc main-class=" org.eclipse.swt.examples.controlexample.ControlExample"/>
</jnlp>
 
Here's the SWT extension jnlp:
 
<?xml version="1.0" encoding="utf-8"?>
<jnlp
  spec="1.0+"
  codebase="" href="http://www.foo.com/bar/swt" target="_blank" _onclick_="return top.js.OpenExtLink(window,event,this)"> http://www.foo.com/bar/swt"
  href="" ">
  <information>
    <title>SWT Libraries</title>
    <homepage href="" href="http://www.eclipse.org/swt%22/" target="_blank" _onclick_="return top.js.OpenExtLink(window,event,this)"> http://www.eclipse.org/swt"/>
    <description>SWT Libraries</description>
    <offline-allowed/>
    <vendor>Your website</vendor>
  </information>
  <security>
    <all-permissions/>
  </security>
  <resources os="Windows" arch="x86">
    <jar href="">    <nativelib href="">  </resources>
  <resources os="Linux" arch="i386">
    <jar href="">    <nativelib href="">  </resources>
  <component-desc/>
</jnlp>
 
And, here's the directory structure:
 
4       ./swt/swt.jnlp
1236    ./swt/os/linux/x86/swt.jar
244     ./swt/os/linux/x86/swtNativeLib.jar
1484    ./swt/os/linux/x86
1488    ./swt/os/linux
1304    ./swt/os/win32/x86/swt.jar
88      ./swt/os/win32/x86/swtNativeLib.jar
1396    ./swt/os/win32/x86
1400    ./swt/os/win32
2892    ./swt/os
2900    ./swt
4       ./swtexamples.jnlp
208     ./swtexamples.jar
 
Any thoughts, pointing out typos, comments, etc.. would be welcomed. If there's anything else I can provide, please let me know. Also, if anyone knows how to get a console for a JNLP launched app, that would help me greatly.
 
Thanks,
 
--Chad


Back to the top