安装jdk1.8.0_45后如何打开Protege 4.3?

How to open Protege 4.3 after installing jdk1.8.0_45?

在 windows 7 64 位上,我安装了 protege-4.3.0-304,我从 here 下载了 jvm。而且它工作正常。

但是一旦我用 jdk1.8.0_45 更新了 jvm,我就无法打开 protege。它给出以下错误:

G:\protege-4.3.0-304\Protege_4.2>java -server - Dlog4j.configuration=file:log4j.xml -DentityExpansionLimit=100000000 -Dfile.encoding=utf-8 -Dorg.protege.plugin.dir=plugins -classpath bin/felix.jar;bin/ProtegeLauncher.jar org.protege.osgi.framework.Launcher
ERROR: Bundle org.protege.common 1 Error starting file:/G:/protege-4.3.0-304/Protege_4.2/bundles/org.protege.common.jar
(org.osgi.framework.BundleException: Unresolved constraint in bundle org.protege.common 1: Unable to resolve 1.0: missing requirement [1.0] osgi.wiring.package; (&(osgi.wiring.package=org.w3c.dom)(version>=0.0.0)))
org.osgi.framework.BundleException: Unresolved constraint in bundle org.protege.common 1: Unable to resolve 1.0: missing requirement [1.0] osgi.wiring.package; (&(osgi.wiring.package=org.w3c.dom)(version>=0.0.0))

请有人帮助我。提前致谢。

我通过更正环境变量中的路径条目解决了这个问题。我在安装jdk1.8.0_45的时候,添加了"C:\ProgramData\Oracle\Java\javapath;C:\Program Files\Java\jre8\;C:\Program Files\Java\jre8\bin"这样的环境变量路径入口。因此我根据这个路径设置重命名了JRE的位置。我从路径变量中删除了 "C:\Program Data\Oracle\Java\javapath",它包含指向 java.exe、javaw.exe 和 javaws.exe 的三个符号链接。由于重命名 JRE 位置,这些链接不是 valid.Moreover 我已指定 JAVA_HOME 到 jdk 位置。

我在 Linux Mint 17 机器上安装 Oracle Java 8 JRE/JDK 时遇到了类似的问题。 Protege 4.3.0-304 似乎不适用于 Java 8。当我尝试使用 Java 8 作为 JVM 运行 Protege 时,我收到一堆错误消息。我找到了解决此问题的解决方法。解决方法是强制 Protege 在启动 运行ning 时使用 Java 7 JRE。要做到这一点,很简单。我只是修改了 Protege 启动器脚本 run.sh,以便它使用 Java 7 JRE 的 java 可执行文件。

run.sh 修改前:

#!/bin/sh

cd `dirname [=10=]`

java -Xmx500M -Xms250M \
     -server \
     -Dlog4j.configuration=file:log4j.xml \
     -DentityExpansionLimit=100000000 \
     -Dfile.encoding=UTF-8 \
     -classpath bin/felix.jar:bin/ProtegeLauncher.jar \
     org.protege.osgi.framework.Launcher

在我的例子中,我将 java 更改为 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 并在开头添加了 export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64 行。根据您当前的配置,它可能会有所不同。

run.sh修改后:

#!/bin/sh

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64

cd `dirname [=11=]`

/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java -Xmx500M -Xms250M \
     -server \
     -Dlog4j.configuration=file:log4j.xml \
     -DentityExpansionLimit=100000000 \
     -Dfile.encoding=UTF-8 \
     -classpath bin/felix.jar:bin/ProtegeLauncher.jar \
     org.protege.osgi.framework.Launcher

如果您还没有安装 OpenJDK 7,您可以通过您的发行版存储库安装它(这可能会在安装后将默认 JVM 更改回 Java 7。使用 sudo update-alternatives --config java 更正此问题) 或者您可以尝试使用 Oracle Java 7 JRE 并将 jre1.7.0_80 文件夹放在某个地方,以便 Protege 启动器脚本可以使用其中的 java 可执行文件。我不知道 Windows 上的 Protege 启动器可执行文件,但我想它是类似的东西,这个解决方案也适用于 Windows。

只是为了我自己和其他人记录一下:

不需要降级 Java。您只需将 bin/felix.jar 替换为 felix.apache.org.

中的当前版本

我的 Windows 8、java 8 遇到了同样的问题。 该问题已通过更改 G:\Program Files\Protege_4.3\bin" 中的 filix.jar 文件解决,通过从 protége 5.0 目录复制的新文件。 需要注意的是文件filix.jar在版本5中被命名为"org.apache.felix.main.jar",你只能重命名它并且它可以正常工作。