2015-05-22 73 views
2

在windows 7 64位上,我安裝了protege-4.3.0-304,我從here一起下載了jvm。它工作正常。安裝jdk1.8.0_45後如何打開Protege 4.3?

但是,一旦我更新了jvm jdk1.8.0_45,我無法打開門禁。它給出以下錯誤:

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))

請有人幫我。提前致謝。

回答

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位置。

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上運行。

9

只是爲了證明我自己和其他人:

降級Java不是必需的。您只需將bin/felix.jar替換爲felix.apache.org的當前版本即可。

+0

確認是針對未啓動的新安裝的Protege安裝的修補程序。 – reggie

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",您只能重命名它並且它可以正常工作。