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

时间:2015-05-22 03:59:43

标签: java-8 protege4

在Windows 7 64位上,我安装了protege-4.3.0-304,我从j 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
      错误:Bundle org.protege.common 1启动文件出错:/ G:/protege-4.3.0-304/Protege_4.2/bundles/org.protege.common.jar
(org.osgi .framework.BundleException:bundle org.protege.common 1中未解决的约束:无法解析1.0:缺少要求[1.0] osgi.wiring.package;(&(osgi.wiring.package = org.w3c。 DOM)(版本> = 0.0.0)))
      org.osgi.framework.BundleException:bundle org.protege.common 1中未解决的约束:无法解析1.0:缺少要求[1.0] osgi.wiring.package; (及(osgi.wiring.package = org.w3c.dom中)(版本> = 0.0.0))

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

4 个答案:

答案 0 :(得分:14)

仅为自己和其他任何人记录:

不需要降级Java。您只需将{{1}}替换为felix.apache.org的当前版本。

答案 1 :(得分: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,以便它使用Java 7 JRE的java可执行文件。

修改前

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。

答案 2 :(得分:1)

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

答案 3 :(得分:0)

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