Programming This forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game. |
Notices |
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
Are you new to LinuxQuestions.org? Visit the following links:
Site Howto |
Site FAQ |
Sitemap |
Register Now
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
|
 |
11-11-2004, 09:52 AM
|
#1
|
LQ Newbie
Registered: Nov 2004
Posts: 24
Rep:
|
Creating a shell script to run Java program
Hi Ive just moved over to Linux from Windows and I am trying to convert a Windows batch file to a unix shell script to run a java application, but it so long since Ive used UNIX I cant really remember how to do it.
My script contains
#!/bin/sh
java -jar lib/testapp.jar
These are my failed attempts to run it, not too sure what the differences are but I think the 3rd one is the only one to actually find my shell script.
[root@]# testapp.sh
-bash: testapp.sh: command not found
[root@]# ./ testapp.sh
: bad interpreter: No such file or directory
[root@]# . testapp.sh
Unable to access jarfile lib/testapp.jar
if I just do this at the command line it works fine
[root@]#java -jar lib/testapp.jar
|
|
|
11-11-2004, 10:49 AM
|
#2
|
LQ Guru
Registered: Apr 2003
Location: ~
Distribution: Ubuntu, FreeBSD, Solaris, DSL
Posts: 5,337
Rep:
|
I usually use a little work around for java like this:
1 - Create a little file
touch littleapp
2 - Insert something into the app to be executable
echo "java -jar lib/testapp.jar" >> littleapp
3 - Make it executable
chmod +x littleapp
4 - Move it to /usr/bin or /sbin to be able to run it from a shell
mv littleapp /usr/bin
I know this is not the way you wanna do it, but it's another way of doing it that I wanted to let you know. I so need to learn shell scripts  .
Good luck!
|
|
|
11-12-2004, 05:11 AM
|
#3
|
LQ Newbie
Registered: Nov 2004
Posts: 24
Original Poster
Rep:
|
No its still not working. ive just simplified it to run java -version, but still it wont work in shell script
[root@cpc1]# cat testapp
/opt/jdk1.5.0/bin/java -version
[root@cpc1]# testapp
Unrecognized option: -version
Could not create the Java virtual machine.
[root@cpc1]# /opt/jdk1.5.0/bin/java -version
java version "1.5.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-b64)
Java HotSpot(TM) Client VM (build 1.5.0-b64, mixed mode)
|
|
|
11-12-2004, 06:31 AM
|
#4
|
Moderator
Registered: Feb 2004
Location: Outside Paris
Distribution: Solaris 11.4, Oracle Linux, Mint, Debian/WSL
Posts: 9,795
|
Your editor is probably adding garbage (i.e. CR) at end of lines.
What gives "od -c testapp" ?
|
|
|
11-12-2004, 07:12 AM
|
#5
|
Senior Member
Registered: Mar 2004
Location: england
Distribution: Mint, Armbian, NetBSD, Puppy, Raspbian
Posts: 3,516
|
do you actually *have* /bin/sh installed?
try changing it to:
remember it must be right at the first line first column.
billy
|
|
|
11-12-2004, 08:24 AM
|
#6
|
Moderator
Registered: Feb 2004
Location: Outside Paris
Distribution: Solaris 11.4, Oracle Linux, Mint, Debian/WSL
Posts: 9,795
|
Quote:
do you actually *have* /bin/sh installed?
|
That wouldn't explain the "Unrecognized option: -version" problem.
|
|
|
11-12-2004, 09:11 AM
|
#7
|
LQ Newbie
Registered: Nov 2004
Posts: 24
Original Poster
Rep:
|
Thankyou, od -c has cracked the problem i have \r at the end.
I recreated the file from scratch and it is now runs ok (im suprised it causes such a problem though)
As for bin/sh the file does exist but is actually a symbolic link to /bin/bash the script seems to run ok without the line at all. So is there any reason to have this line
|
|
|
11-12-2004, 03:11 PM
|
#8
|
Moderator
Registered: Feb 2004
Location: Outside Paris
Distribution: Solaris 11.4, Oracle Linux, Mint, Debian/WSL
Posts: 9,795
|
You shouldn't be surprised, the end of line character (\n) under unix is the single line-feed character, and not the double carriage-return/line-feed like DOS/Windows.
Moreover, CR (\r) is a valid filename character for most unix supported file-systems, so it isn't forbidden, although not a smart idea, to have one interpreter named /bin/sh and another one named /bin/sh\r , and the #! construction should be able to distinguish between them.
About the bash question, it is probably a good idea to leave /bin/sh instead of /bin/bash, as it makes your script more portable, unless you use bash specifics unsupported on the real bourne shell.
|
|
|
All times are GMT -5. The time now is 03:38 AM.
|
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.
|
Latest Threads
LQ News
|
|