【发布时间】:2012-01-25 11:50:42
【问题描述】:
我有一个如下所示的文件夹组织:
link.sh
dist/MyApp-3.0.0/script.sh
dist/MyApp-3.0.0/lib/*.jar
link.sh 是指向 KornShell (ksh) 脚本 script.sh 的符号链接。在 shell 脚本中,我想使用以下命令调用 Java 程序:
java -cp lib/*
当我尝试从符号链接启动应用程序时,我得到ClassNotFound,因为相对路径是从链接基目录解析的(这是正常的)。
在 shell 脚本中,如何获取脚本的完整路径(<...>/dist/MyApp-3.0.0/)?它将允许我修改我的 Java 调用:
java -cp ${SCRIPT_DIR}/lib/*
【问题讨论】:
-
您不能以 100% 的可靠性从 shell 代码中获取“运行脚本的完整路径”。不过,你可以靠近。