从软件中心 (Ubuntu 12.04) 安装了 omegaT。当我尝试启动它时,我只收到错误消息:
未找到合适的 Java 二进制文件。
java -version的输出是:
java 版本“1.7.0_55”Java(TM) SE 运行时环境(build 1.7.0_55-b13)Java HotSpot(TM) 服务器 VM(build 24.55-b03,混合模式)
有人有什么想法吗?
谢谢
彼得
答案1
问题出在 omegat shell 脚本上,该脚本试图找出 java 版本。该脚本应该仅在机器上找到 openjdk 或 sun java 实现时才启动程序。为此,它会尝试使用以下行查看 java 的安装路径:
JAVA=$(which java | xargs readlink -f)
然后检查“路径”中是否包含名称 openjdk 或 sun
echo "$JAVA" | grep -q -e '\(openjdk\|sun\)'
现在,问题来了。您可能并不总是将 Java 安装在带有“sun”名称的位置,而我的情况是安装在/usr/local/java/jdk1.7.0_07/bin/java
。
因此,解决方案在于简单地纠正这个脚本,因为您已经安装了合适的 Java 版本。
这是我正在使用的 /usr/bin/omegat 文件。
#!/bin/sh
JAVA_OPTIONS='-Djava.library.path=/usr/lib/jni'
JAVA=$(which java | xargs readlink -f)
echo "$JAVA" | grep -q -e '\(openjdk\|sun\)'
#CHANGE 1, just use your java here.
JAVABIN=$JAVA
if [ $? -eq 0 ]
then
JAVABIN=$JAVA
elif [ -x /usr/lib/jvm/java-6-openjdk/bin/java ]
then
JAVABIN="/usr/lib/jvm/java-6-openjdk/bin/java"
elif [ -x /usr/lib/jvm/java-6-sun/bin/java ]
then
JAVABIN="/usr/lib/jvm/java-6-sun/bin/java"
elif [ -x /usr/lib/jvm/java-1.5.0-sun/bin/java ]
then
JAVABIN="/usr/lib/jvm/java-1.5.0-sun/bin/java"
else
echo "Suitable java binary not found."
#CHANGE 1, comment out the exit line below.
# exit 1
fi
exec $JAVABIN $JAVA_OPTIONS -jar /usr/share/omegat/OmegaT.jar $*
注意脚本中的 2 行“#CHANGE”。哦,是的,您需要以 root 身份编辑该文件。
答案2
我有同样的问题。我发现了这个:http://markmail.org/message/hvfl2hhhaqjk243q 但不知道如何处理它。
来自链接:解决方案很简单:在 中/usr/bin/omegat
,bash 脚本测试 java 版本并检查它是否是 openjdk 或 sun。将“sun”替换为“oracle”即可。问题的作者安装的是 Oracle Java,而不是 openjdk-6-jdk 或 openjdk-7-jdk,因此该解决方案也适用于他。