gpt4 book ai didi

bash - 无法在 OS X 上启动 Eclipse RCP 应用程序

转载 作者:行者123 更新时间:2023-11-29 09:00:57 25 4
gpt4 key购买 nike

我正在尝试使用 Eclipse Indigo 插件和 Java 1.6 在 OS X 上使用 Shell 脚本启动 Eclipse RCP 应用程序。操作系统版本为10.11.3脚本如下:

#!/bin/bash
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
app_cmd="\"$DIR/../Resources/jre/Contents/Home/bin/java\"
-XstartOnFirstThread
-Xdock:name=GS\ Risk
-Xdock:icon=\"$DIR/../Resources/AppIcon.ico\"
-Dorg.eclipse.swt.internal.carbon.smallFonts
-Dosgi.console.enable.builtin=true
-jar \"$DIR/../Resources/plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar\"
-data @noDefault
-Dfile.encoding=UTF-8
-os macosx
-ws cocoa
-arch x86_64
-nl en_US
-consoleLog
-console
-showsplash
AppName"

runCommand() {
typeset cmnd="$*"
typeset ret_code
echo cmnd=$cmnd
eval $cmnd
ret_code=$?
case $ret_code in
0)
printf "[%s] exit OK." "$NAME"
;;
23)
printf "[%s] requested a restart. Restarting..." "$NAME" r
unCommand "$cmnd"
;;
*)
printf "Error : [%d] when executing command: '$cmnd'" $ret_code
;;
esac
printf "\n"
exit $ret_code
}

runCommand "$app_cmd"

我收到以下错误:

!SESSION Thu Feb 18 21:50:11 GMT+05:30 2016 ------------------------------------
!ENTRY org.eclipse.equinox.launcher 4 0 2016-02-18 21:50:11.660
!MESSAGE Exception launching the Eclipse Platform:
!STACK
java.lang.RuntimeException: Could not find framework
at org.eclipse.equinox.launcher.Main.getBootPath(Main.java:978)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:557)
at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
at org.eclipse.equinox.launcher.Main.main(Main.java:1386)

可能是什么原因?

最佳答案

看起来问题出在运行的 Java 命令上,而不是运行它的 Bash 代码上,但 Bash 代码存在问题,难以调试。一个问题是字符串用于存储命令、选项和参数。这通常是一个坏主意,因为它很难避免路径名扩展(globbing)和单词拆分的问题。另一个问题是 eval 的使用,最好避免,而且很少需要。这是代码的一个稍微修改的版本,它使用数组来存储命令并且不使用“eval”:

#!/bin/bash

DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

app_cmd_parts=(
"$DIR/../Resources/jre/Contents/Home/bin/java"
-XstartOnFirstThread
-Xdock:name='GS Risk'
-Xdock:icon="$DIR/../Resources/AppIcon.ico"
-Dorg.eclipse.swt.internal.carbon.smallFonts
-Dosgi.console.enable.builtin=true
-jar "$DIR/../Resources/plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar"
-data @noDefault
-Dfile.encoding=UTF-8
-os macosx
-ws cocoa
-arch x86_64
-nl en_US
-consoleLog
-console
-showsplash
AppName
)

runCommand() {
typeset cmd_parts=( "$@" )
typeset ret_code
printf 'cmd_parts=('
printf ' %q' "${cmd_parts[@]}"
printf ' )\n'
"${cmd_parts[@]}"
ret_code=$?
case $ret_code in
0)
printf "[%s] exit OK." "$NAME"
;;
23)
printf "[%s] requested a restart. Restarting..." "$NAME" runCommand "${cmd_parts[*]}"
;;
*)
printf "Error : [%d] when executing command: '${cmd_parts[*]}'" $ret_code
;;
esac
printf "\n"
exit $ret_code
}

runCommand "${app_cmd_parts[@]}"

这应该更容易调试。使用 bash -x 运行它以准确查看它在做什么。复制并粘贴 cmd_parts=( ... ) 输出中括号之间的文本,以重新运行程序运行的 Java 命令。希望这将使您能够确定命令有什么问题,以及如何修复它。

关于bash - 无法在 OS X 上启动 Eclipse RCP 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35487089/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com