Board index » jbuilder » Exe Builder

Exe Builder


2003-09-12 10:47:25 PM
jbuilder20
Hi,
I have a Swing application with a startup class(with a main method). I am
trying to make it either an exe so that people can click on it on run the
application or I want to create an installer for the application so that
users can install the application and run it.
I have tried the Native Executable builder in JB9.0.125.0 and I have
included all classes from the Oracle library but I keep getting the message
java.lang.UnsatisfiedLinkError: no ocijdbc8 in
java.library.path
Any idea on why I am getting this and how to fix it.
Thanks in advance,
Sri
 
 

Re:Exe Builder

"Sri Gollamudi" < XXXX@XXXXX.COM >wrote in message
Quote
java.lang.UnsatisfiedLinkError: no ocijdbc8 in
java.library.path
An UnsatisfiedLinkError occurs when the VM is loading a library
containing native method implementations. Your executable is unable to
find a library called "ocijdbc8."
If you're running on Windows, that would be a DLL file. That file needs
to be somewhere in one of the directories listed in java.library.path.
It might be sufficient to make sure that file is in the same directory
with the executable.
--
Gillmer J. Derge (TeamB)
 

Re:Exe Builder

Actually I have these DLLs on the machine.
I am actually trying to run the exe on the machine I created it.
If I run the class from command line, I am able to get it working but when I
try to make the executable out of it and run it, I am getting this error. Is
there anything else that I need to provide to the executable maker?
Do I have to mention the java.library.path anywhere in the executable maker?
I am just including all the classes in the used in the application into the
executable. Do I have to provide the DLL as well though it is already there
on the machine.
Please let me know.
Thanks,
Sri
"Gillmer J. Derge (TeamB)" < XXXX@XXXXX.COM >wrote in message
Quote
"Sri Gollamudi" < XXXX@XXXXX.COM >wrote in message
news: XXXX@XXXXX.COM ...
>java.lang.UnsatisfiedLinkError: no ocijdbc8 in
>java.library.path

An UnsatisfiedLinkError occurs when the VM is loading a library
containing native method implementations. Your executable is unable to
find a library called "ocijdbc8."

If you're running on Windows, that would be a DLL file. That file needs
to be somewhere in one of the directories listed in java.library.path.
It might be sufficient to make sure that file is in the same directory
with the executable.

--
Gillmer J. Derge (TeamB)

 

{smallsort}

Re:Exe Builder

"Sri Gollamudi" < XXXX@XXXXX.COM >wrote in message
Quote
Do I have to provide the DLL as well though it is already there
on the machine.
The DLL needs to be somewhere on the java.library.path. "On the
machine" isn't necessarily good enough, depending on where it is on the
machine.
You might try adding a line to your main method that prints the value of
the java.library.path system property. Then try running the application
both from the command line and through the native executable. See
what's different.
You can change the java.library.path setting for the native executable
by editing its configuration file on the "Runtime" tab of its properties
page. You can add a line such as the one below, where <path>is
whatever you want the path to be.
vmparam -Djava.library.path=<path>
The problem with this is that you can't just add a directory to the
path. You need to set its value explicitly, so ideally it would be nice
to just figure out why the path is different depending on how you run it
and see if that leads to another solution.
--
Gillmer J. Derge (TeamB)
 

Re:Exe Builder

Gillmer,
Thanks a lot for your help.
I have printed the java.library.path from both the command line execution as
well as the executable execution of the application and surprisingly both of
them got the same values and I see the .
I am not sure what else could be causing this error
Anyway I am printing both the values for your reference here.
From the command line
library path:
C:\WINNT\system32;.;C:\WINNT\System32;C:\WINNT;C:\oracle\ora81\bi
n;C:\Program
Files\Oracle\jre\1.1.7\bin;C:\WINNT\system32;C:\WINNT;C:\WINNT\Syst
em32\Wbem;C:\Program Files\Executive
Software\DiskeeperLite\;C:\jdk1.3.1_02\bin;
C:\Starbase\StarGate SDK\Lib;C:\jdk1.3.1_02
From the exe
library path:
C:\ui;.;C:\WINNT\System32;C:\WINNT;C:\oracle\ora81\bin;C:\Program
Files\Oracle\jre\1.1.7\bin;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem
;C:
\Program Files\Executive
Software\DiskeeperLite\;C:\jdk1.3.1_02\bin;C:\Starbase\
StarGate SDK\Lib
Thanks,
Sri
"Gillmer J. Derge (TeamB)" < XXXX@XXXXX.COM >wrote in message
Quote
"Sri Gollamudi" < XXXX@XXXXX.COM >wrote in message
news:3f61e073$ XXXX@XXXXX.COM ...
>Do I have to provide the DLL as well though it is already there
>on the machine.

The DLL needs to be somewhere on the java.library.path. "On the
machine" isn't necessarily good enough, depending on where it is on the
machine.

You might try adding a line to your main method that prints the value of
the java.library.path system property. Then try running the application
both from the command line and through the native executable. See
what's different.

You can change the java.library.path setting for the native executable
by editing its configuration file on the "Runtime" tab of its properties
page. You can add a line such as the one below, where <path>is
whatever you want the path to be.

vmparam -Djava.library.path=<path>

The problem with this is that you can't just add a directory to the
path. You need to set its value explicitly, so ideally it would be nice
to just figure out why the path is different depending on how you run it
and see if that leads to another solution.

--
Gillmer J. Derge (TeamB)

 

Re:Exe Builder

Gillmer,
Thanks for all your help. I have fixed the problem. Actually I haven't fixed
the problem but I was using the Oracle OCI drivers before and now I have
switched to thin drivers.
Thanks,
Sri
"Sri Gollamudi" < XXXX@XXXXX.COM >wrote in message
Quote
Gillmer,
Thanks a lot for your help.
I have printed the java.library.path from both the command line execution
as
well as the executable execution of the application and surprisingly both
of
them got the same values and I see the .
I am not sure what else could be causing this error
Anyway I am printing both the values for your reference here.
From the command line

library path:
C:\WINNT\system32;.;C:\WINNT\System32;C:\WINNT;C:\oracle\ora81\bi
n;C:\Program
Files\Oracle\jre\1.1.7\bin;C:\WINNT\system32;C:\WINNT;C:\WINNT\Syst
em32\Wbem;C:\Program Files\Executive
Software\DiskeeperLite\;C:\jdk1.3.1_02\bin;
C:\Starbase\StarGate SDK\Lib;C:\jdk1.3.1_02

From the exe
library path:
C:\ui;.;C:\WINNT\System32;C:\WINNT;C:\oracle\ora81\bin;C:\Program


Files\Oracle\jre\1.1.7\bin;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem
;C:
\Program Files\Executive
Software\DiskeeperLite\;C:\jdk1.3.1_02\bin;C:\Starbase\
StarGate SDK\Lib

Thanks,
Sri
"Gillmer J. Derge (TeamB)" < XXXX@XXXXX.COM >wrote in message
news:3f61ec84$ XXXX@XXXXX.COM ...
>"Sri Gollamudi" < XXXX@XXXXX.COM >wrote in message
>news:3f61e073$ XXXX@XXXXX.COM ...
>>Do I have to provide the DLL as well though it is already there
>>on the machine.
>
>The DLL needs to be somewhere on the java.library.path. "On the
>machine" isn't necessarily good enough, depending on where it is on the
>machine.
>
>You might try adding a line to your main method that prints the value of
>the java.library.path system property. Then try running the application
>both from the command line and through the native executable. See
>what's different.
>
>You can change the java.library.path setting for the native executable
>by editing its configuration file on the "Runtime" tab of its properties
>page. You can add a line such as the one below, where <path>is
>whatever you want the path to be.
>
>vmparam -Djava.library.path=<path>
>
>The problem with this is that you can't just add a directory to the
>path. You need to set its value explicitly, so ideally it would be nice
>to just figure out why the path is different depending on how you run it
>and see if that leads to another solution.
>
>--
>Gillmer J. Derge (TeamB)
>