[CentOS] explain strange behavior
Jon LaBadie
jcu at labadie.us
Fri Aug 19 19:29:23 UTC 2016
On Fri, Aug 19, 2016 at 01:12:57PM -0500, Dan Hyatt wrote:
> In my bin directory, most of the binaries are linked to it. It is in my
> path. I have googled this and cannot find anything close.
>
> I am running bash on centos6.8
>
> When I run "which command" most of the files in this custom bin directory
> show up.
>
> When I run "which file.jar" it cannot see it, but I can *ls* the file (soft
> link)
>
> as which only works on executables (according to man page), I created a
> dan.jar empty file and did a which on dan.tar and found it.
>
>
> can anyone explain what is happening and how I can soft link the jar files
> to my bin directory so which can see them?
>
I don't use java, so this may be way off base.
I'm assuming you have several *.jar files, but will work with two,
foo.jar and bar.jar.
Place all your jar files in a single directory, not bin. Under lib
is the common place. I'll use /home/dan/lib/jarfiles.
In your bin directory place a shell script named "foo" containing
something like this:
#!/usr/bin/bash
ProgName=${0##*/} # (basename) strips dirs from path
JarDir=/home/dan/lib/jarfiles
JarFile=${JarDir}/${ProgName}.jar
## possibly test for existance of jar file
java -jar ${JarFile} "${@}" # I assume there may be args to pass.
That would let you run foo.jar as "foo" and do a "which foo" as it is
an executable shell script.
For bar.jar you merely need to put it in the JarDir and make a link
in the bin directory:
ln /home/dan/bin/foo /home/dan/bin/bar
Do the same for each *.jar, move to JarDir, make a link.
If particular jar files need special treatment you can put a switch
statement in the script based on $ProgName.
Jon
--
Jon H. LaBadie jcu at jgcomp.com
11226 South Shore Rd. (703) 787-0688 (H)
Reston, VA 20190 (703) 935-6720 (C)
More information about the CentOS
mailing list