5

在 Windows 7 64 位上,我安装了 protege-4.3.0-304,我从这里与 jvm 一起下载了它。它工作正常。

但是一旦我用 更新了 jvm jdk1.8.0_45,我就无法打开 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
错误:捆绑 org.protege.common 1错误启动文件:/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 requirements [1.0] osgi.wiring.package; (&(osgi .wiring.package=org.w3c.dom)(version>=0.0.0)))
org.osgi.framework.BundleException:捆绑包 org.protege.common 1中未解决的约束:无法解决 1.0:缺少要求 [1.0] osgi.wiring.package;(&(osgi.wiring.package=org.w3c.dom)(版本>=0.0.0))

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

4

4 回答 4

14

只是为我自己和可能的其他人记录这一点:

不需要降级 Java。您只需要使用felix.apache.orgbin/felix.jar的当前版本进行替换。

于 2016-02-02T01:56:34.013 回答
1

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

run.sh修改前:

#!/bin/sh

cd `dirname $0`

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 $0`

/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。

于 2015-10-01T15:54:34.100 回答
1

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

于 2017-02-17T08:48:19.743 回答
0

我通过更正环境变量的路径条目解决了这个问题。当我安装 jdk1.8.0_45 时,它添加了环境变量的路径条目,如“C:\ProgramData\Oracle\Java\javapath;C:\Program Files\Java\jre8\;C:\Program Files\Java\jre8\垃圾桶”。因此我根据这个路径设置重命名了 JRE 的位置。我从路径变量中删除了“C:\Program Data\Oracle\Java\javapath”,其中包含指向 java.exe、javaw.exe 和 javaws.exe 的三个符号链接。由于重命名 JRE 位置,这些链接无效。此外,我已将 JAVA_HOME 指定为 jdk 位置。

于 2015-05-23T06:23:02.277 回答