OmegaT 和 Java 版本

OmegaT 和 Java 版本

从软件中心 (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,因此该解决方案也适用于他。

相关内容