Moin,
ich würde gerne eine Java Anwendung (Thinking Rock) verlinken, dass /usr/local/bin/tr/bin/tr im PATH liegt, also tippe ich
ln -s /usr/local/bin/tr/bin/tr /usr/bin/gtc
Wenn ich aber nun gtc in der Konsole aufrufe, dann versucht NetBeans zu starten. Kann mir einer sagen, woran das liegt? Wenn ich tr mittels /usr/local/.../tr aufrufe, dann startet tr einwandfrei.
SymLink startet falsches Programm
- Six
- Beiträge: 8071
- Registriert: 21.12.2001 13:39:28
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Siegburg
Re: SymLink startet falsches Programm
Vermutl. liegt unter dem selben Namen eine Datei in einem früheren Pfad. Mit
kannst du dir im Terminal deine Pfadeinstellungen angucken. Suche dann mit find, wo denn gtc schonmal vorkommt.
Ach ja, handelt es sich bei tr um eine .jar Datei?
Code: Alles auswählen
echo $PATH
oder
env | grep PATH
Ach ja, handelt es sich bei tr um eine .jar Datei?
Be seeing you!
Re: SymLink startet falsches Programm
Hi,
die Ausgabe von $PATH sagt:
die Ausgabe von $PATH sagt:
Danach habe ich nach gtc gesucht und als einziges Ergebnis wurdebash: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin: Datei oder Verzeichnis nicht gefunden
gefunden. ls -l /usr/bin/gtc:/usr/bin/gtc
Die zu verlinkende Datei ist keine JAR Datei sondern ein Shell Skript. Ich poste mal den Inhalt:/usr/bin/gtc -> /usr/local/bin/tr-2.0.1/bin/tr
Code: Alles auswählen
#!/bin/sh
#
# resolve symlinks
#
PRG=$0
while [ -h "$PRG" ]; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '^.*-> \(.*\)$' 2>/dev/null`
if expr "$link" : '^/' 2> /dev/null >/dev/null; then
PRG="$link"
else
PRG="`dirname "$PRG"`/$link"
fi
done
progdir=`dirname "$PRG"`
APPNAME=`basename "$0"`
if [ -f "$progdir/../etc/$APPNAME".conf ] ; then
. "$progdir/../etc/$APPNAME".conf
fi
# XXX does not correctly deal with spaces in non-userdir params
args=""
case "`uname`" in
Darwin*)
userdir="${default_mac_userdir}"
;;
*)
userdir="${default_userdir}"
;;
esac
while [ $# -gt 0 ] ; do
case "$1" in
--userdir) shift; if [ $# -gt 0 ] ; then userdir="$1"; fi
;;
*) args="$args \"$1\""
;;
esac
shift
done
if [ -f "${userdir}/etc/$APPNAME".conf ] ; then
. "${userdir}/etc/$APPNAME".conf
fi
if [ -n "$jdkhome" -a \! -d "$jdkhome" -a -d "$progdir/../$jdkhome" ]; then
# #74333: permit jdkhome to be defined as relative to app dir
jdkhome="$progdir/../$jdkhome"
fi
readClusters() {
if [ -x /usr/ucb/echo ]; then
echo=/usr/ucb/echo
else
echo=echo
fi
while read X; do
if [ "$X" \!= "" ]; then
$echo "$progdir/../$X"
fi
done
}
clusters=`(cat "$progdir/../etc/$APPNAME".clusters; echo) | readClusters | tr '\012' ':'`
if [ ! -z "$extraclusters" ] ; then
clusters="$clusters:$extraclusters"
fi
nbexec=`echo "$progdir"/../platform*/lib/nbexec`
case "`uname`" in
Darwin*)
eval exec sh '"$nbexec"' \
--jdkhome '"$jdkhome"' \
-J-Dcom.apple.mrj.application.apple.menu.about.name='ThinkingRock' \
-J-Xdock:name='ThinkingRock' \
'"-J-Xdock:icon=$progdir/../../$APPNAME.icns"' \
--branding '"$APPNAME"' \
--clusters '"$clusters"' \
--userdir '"${userdir}"' \
${default_options} \
"$args"
;;
*)
sh=sh
# #73162: Ubuntu uses the ancient Bourne shell, which does not implement trap well.
if [ -x /bin/bash ]
then
sh=/bin/bash
fi
eval exec $sh '"$nbexec"' \
--jdkhome '"$jdkhome"' \
--branding '"$APPNAME"' \
--clusters '"$clusters"' \
--userdir '"${userdir}"' \
${default_options} \
"$args"
exit 1
;;
esac