在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))
请有人帮助我。提前谢谢。
答案 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位置。