sal*_*inx 3 java macos bash shell
我正在努力解决一个小问题,我以前从未编写过 bash 脚本,对于知道如何正确完成的人来说这可能是一件小事。
我有以下文件夹结构(无法更改):
MyApp.app
|_Contents
|_Java
|_MyApp.jar
|_MacOS
|_launch.sh
Run Code Online (Sandbox Code Playgroud)
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"
Run Code Online (Sandbox Code Playgroud)
启动 launch.sh 脚本时,第二行应将当前工作目录从MyApp.app/Contents/MacOS更改为MyApp.app/Contents/Java,以便随后调用java -jar MyApp.jar(第 3 行)及其正确的根目录作为工作目录...
但一旦 MyApp.jar 启动,我就会打印出 Java 应用程序中的当前工作目录:
System.out.println(System.getProperty("user.dir"));
Run Code Online (Sandbox Code Playgroud)
...它打印出 launch.sh 脚本的目录,即MyApp.app/Contents/MacOS而不是MyApp.app/Contents/Java。
任何如何正确更改 bash 脚本中的目录的想法都受到高度赞赏:) ...?!
| 归档时间: |
|
| 查看次数: |
4353 次 |
| 最近记录: |