Solved

java, whence AND ksh

Posted on 1998-11-11
6
642 Views
Last Modified: 2013-12-27
Hi

I installed the jre1.2jfc yesterday but can not get it working.
It is Solaris 2.5
The error messsage look like this

Error: can't find libjava.so.

the .java-wrapper file looks like this in the beginning

#!/bin/ksh -p

PRG=`whence $0` >/dev/null 2>&1

but if I echo out $0 ( echo "0 = ${0}" ) it look like this

0 = /bin/ksh

The $0 is "messaed up", it is set to "/bin/ksh" instead of
"/opt/tmos/bom/java/jre1.2fcs/bin/java"

$0 shoulbd be set to this value becouse I try to start the JVM
like this
/opt/tmos/bom/java/jre1.2fcs/bin/java myProgram $*

Some ideas why $0 is messed up ?

0
Comment
Question by:kung
  • 3
  • 2
6 Comments
 
LVL 2

Expert Comment

by:seedy
ID: 2007755
First verify if the file 'libjava.so' is present. You can do this by
   find / - name 'libjava.so' -print
And if it is present, make sure that the location of this file is added to the environment variable LD_LIBRARY_PATH.  If not, add by
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<location of libjava.so>

and try your java program
0
 

Author Comment

by:kung
ID: 2007756
The error message

"Error: can't find libjava.so. "

Is a consequens from that the $0 is messed up. The problem is
that .java-wrapper line
PRG=`whence $0` >/dev/null 2>&1

will result in that PRG = "/bin/ksh" instead of
"/opt/tmos/bom/java/jre1.2fcs/bin/java"


Regards




0
 
LVL 51

Accepted Solution

by:
ahoffmann earned 400 total points
ID: 2007757
you called it with a blank between  .  and java_wrapper, like

   prompt#  .   java_wrapper

If your file is named java_wrapper, call it as follows:

    prompt#  java_wrapper
0
Maximize Your Threat Intelligence Reporting

Reporting is one of the most important and least talked about aspects of a world-class threat intelligence program. Here’s how to do it right.

 
LVL 2

Expert Comment

by:seedy
ID: 2007758
First a confession.  I do not have any experience with Java let alone "jre1.2jfc" on Solaris 2.5.

>Error: can't find libjava.so
From the above error it is evident that some executable cannot find the shared object/library 'libjava.so'.  Most likely it is "/opt/tmos/bom/java/jre1.2fcs/bin/java".  Under Solaris, the environment variable LD_LIBRARY_PATH indicates the list of directories where the shared objects can be found.

Now the fix would be to:
1. verify that you indeed have the shared library 'libjava.so' on your machine; if it is not present, you need to *get* it.
2. and if the file is present, make sure that the location (the directory where this file is present) is added to the list of directories pointed by LD_LIBRARY_PATH

IMhO, there is nothing wrong with your .java-wrapper or the $0!

You are actually executing '/opt/tmos/bom/java/jre1.2fcs/bin/java' when you do
/opt/tmos/bom/java/jre1.2fcs/bin/java myProgram $* .
So when does the .java-wrapper get executed or read and by whom?
0
 

Author Comment

by:kung
ID: 2007759
Hi

Thanks for Your answear

>>Error: can't find libjava.so
>From the above error it is evident that some executable cannot fin

Again, this error message is a result from the fact that the
$0 is messed up becouse .java_wrapper do things like this
in the beginning

PRG=`whence $0` >/dev/null 2>&1
progname=`/usr/bin/basename $0`


these , PRG and progname, is later used to find lib files


/opt/tmos/bom/java/jre1.2fcs/bin/java is just a link to
/opt/tmos/bom/java/jre1.2fcs/bin/.java_wrapper

I have solved it.

The reason why the .java_wrapper $0 was messed up was becouse
the s bit was set like this
-rwxrws---   1 tmosadm  tmos         267 Nov 11 15:49 .java_wrapper

This resultet in the funny behaviour, if the s bit is removed
this will result in a correct $0

Regards

0
 
LVL 2

Expert Comment

by:seedy
ID: 2007760
kung, Can you post the entire content or ".java-wrapper" here, please.
0

Featured Post

6 Surprising Benefits of Threat Intelligence

All sorts of threat intelligence is available on the web. Intelligence you can learn from, and use to anticipate and prepare for future attacks.

Join & Write a Comment

Attention: This article will no longer be maintained. If you have any questions, please feel free to mail me. jgh@FreeBSD.org Please see http://www.freebsd.org/doc/en_US.ISO8859-1/articles/freebsd-update-server/ for the updated article. It is avail…
A metadevice consists of one or more devices (slices). It can be expanded by adding slices. Then, it can be grown to fill a larger space while the file system is in use. However, not all UNIX file systems (UFS) can be expanded this way. The conca…
This video shows how to set up a shell script to accept a positional parameter when called, pass that to a SQL script, accept the output from the statement back and then manipulate it in the Shell.
In a previous video, we went over how to export a DynamoDB table into Amazon S3.  In this video, we show how to load the export from S3 into a DynamoDB table.

706 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

14 Experts available now in Live!

Get 1:1 Help Now