我正在为一个小问题而苦苦挣扎,我之前从未写过bash脚本,对于知道正确执行方式的人来说,这可能是一件小事。
我具有以下文件夹结构(无法更改):
MyApp.app
|_Contents
|_Java
|_MyApp.jar
|_MacOS
|_launch.sh
该launch.sh脚本应该启动MyApp.jar可执行,目前看起来如下:
#!/bin/bash
SCRIPT_DIR=$(cd "$(dirname "$0")/../Java"; pwd)
exec "$SCRIPT_DIR/jre/bin/java" -Xms256m -XX:PermSize=64m -jar "MyApp.jar"
启动launch.sh脚本时,第二行应将当前工作目录从MyApp.app/Contents/MacOS更改为MyApp.app/Contents/Java,以便随后通过其调用Java -jar MyApp.jar(第三行)正确的根目录作为工作目录...
但是,一旦MyApp.jar启动,我将使用以下命令在Java应用程序中打印出当前工作目录:
System.out.println(System.getProperty("user.dir"));
...,它将打印出launch.sh脚本的目录,即MyApp.app/Contents/MacOS而不是MyApp.app/Contents/Java。
非常感谢您如何在bash脚本中正确更改目录的任何想法:) ...?!
尝试这样做:
cd "$(dirname "$0")/../Java"
SCRIPT_DIR=$(pwd)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句