Running Spark through Java Web Start

Hi all,

Thanks to some great help on the forum, I have managed to push Spark through Java Web Start.

I am now having the following issues:

  1. The app loads fine, but no contacts are displayed, online or offline.

  2. The Contact and Action menus are not functioning, and there are no Preferences.

  3. If the user closes the app, there is no way of them reopening it. An active connection remains when looking at the Apllication Cache Viewer.

Many thanks,



I believe we’'re missing a jar file from the JNLP file. Add the following line between the tags:


Make sure you clear your Java WebStart cache before running it again.


P.S. I’'ll update the original message to read correctly.

Message was edited by:


Ok…I NEVER would have got this one on my own. I did a Google search and came up with the following JiveSoftware thread:

We need to jar up a few files and make another jar file…execute the following line the lib/windows directory:

C:\jar cf jdic-native.jar IeEmbed.exe jdic.dll MozEmbed.exe tray.dll[/code]

Now add the following two lines to the JNLP file:


You should be able to see your groups now, although I still can’'t see my preferences.


Ok Ken, all the files are jar’'d - although I now have an issue of signing the files!

It appears to keep trying to rename the chosen file when using jarsigner. IT tries to rename them, for example, jdic.jar.orig

I have managed to sign jdic-native.jar, but jdic.jar and the other .jar files will now not sign.

Ok Ken, finally managed to get them signed, although there doesn’'t seem to be any difference made - still no contacts list…

Right! Got the contacts, and can do pretty much everything - except even when people are online they are displayed in the “Offline Group”…

Ok…I finally got it! The problem was that we were missing some Java Native Interface (JNI) stuff that Spark needed. Heres what we need to do:

1)[/b] Jar up the JNI resources:

C:\jar cf jni-native.jar jniwrap.dll jniwrap.lic


2)[/b] Add the new jar file to the JNLP file:


Thats it! Everything should function now.


P.S. I’'ll update the original thread.

Tried this Ken, doesn’'t seem to have affected anything.

Just to recap (and for my own benefit and sanity!):

Jive Messenger Admin displays users logged in as online.

In Spark contact list, offline users in a group are displayed in the contact group.

Users who are online are displayed in the Offline contact group.

No ability to open a chat window.

No Action menu.

No details in Preferences window.

Make sure you close all java process, then clear your WebStart cache, and try it again. Also, post your JNLP file, and I’'ll give it a quick look.


All caches and processes are clear, here is my JNLP file:

Just noticed too that on the Jive Server window (the one displaying server info, where you can launch the admin from), each time a client launches an instacne of Spark it returns this message:

Connection closed before session established


Each time the port is different. Could the whole thing be an issue with Jie now?

Mine did the same thing sometimes, but gave me a window asking if I wanted to try to connect again…does yours do the same?

Also, can you paste a copy of the print out from the Java WebStart console window?


The client connects, but displays the error in the admin console window.

This is the output from the console:

ChatPreference Plugin has been loaded. Internal plugin.

Server Alerts has been loaded. Internal plugin.

Exception in thread “Thread-4” java.lang.NoClassDefFoundError: com/jniwrapper/B (wrong name: com/jniwrapper/b)

at java.lang.ClassLoader.defineClass1(Native Method)

at java.lang.ClassLoader.defineClass(Unknown Source)

at Source)

at com.sun.jnlp.JNLPClassLoader.defineClass(Unknown Source)

at com.sun.jnlp.JNLPClassLoader.access$100(Unknown Source)

at com.sun.jnlp.JNLPClassLoader$ Source)

at Method)

at com.sun.jnlp.JNLPClassLoader.findClass(Unknown Source)

at java.lang.ClassLoader.loadClass(Unknown Source)

at com.sun.jnlp.JNLPClassLoader.loadClass(Unknown Source)

at java.lang.ClassLoader.loadClass(Unknown Source)

at java.lang.ClassLoader.loadClassInternal(Unknown Source)

at com.jniwrapper.Pointer$Void.(

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)

at java.lang.reflect.Constructor.newInstance(Unknown Source)

at java.lang.Class.newInstance0(Unknown Source)

at java.lang.Class.newInstance(Unknown Source)

at com.jivesoftware.managers.PluginManager.loadExtensions(

at com.jivesoftware.managers.PluginManager.loadPlugins(


at com.jivesoftware.LoginDialog.startCommunicator(

at com.jivesoftware.LoginDialog.access$700(

at com.jivesoftware.LoginDialog$LoginPanel$1.construct(

at com.jivesoftware.util.SwingWorker$

at Source)

This error almost looks like the one I was getting before I jared up jniwrap.dll[/b] and jniwrap.lic[/b] into jni-native.jar[/b].

I have the exact same JNLP file as you. Of course I can’‘t verify that the contents of our two xxx-native.jar files are the same (I’'m assuming you copied and pasted the text I posted?).

Open your jni-native.jar file with winzip and make sure jniwrap.dll is in there (might as well check and make sure jniwrap.lic is there also). The error your getting is indicative of the application not being able to find that dll.

And just for fun, try running the JNLP file again.


Thanks Ken. I have jar’'ed jniwrap.dll and jniwrap.lic into jni-native.jar again, re-signed all the files and retried the JNLP file, but I am still getting the same error.

Is there any other option of getting it to see jniwrap.dll?

I can’‘t think of any other ways to approach this one. I’‘ve messaged Gato for any possible input he might have. We’'re very close!


Hi Ken,

Could you post your jnlp for me. Thanks.


Thanks Ken, I’'ll still fiddle round from my end.

Hi Derek, if it helps I have used the JNLP file exactly as Ken has it:

Hey Derek,

The JNLP above works on my machine, but doesn’'t work for Paul. We created the two native jar files required (which are indicated by xxx-native.jar).

We need a fresh set of eyes!


Hi guys,

Any update with this?

Many thanks,