我有一个加载本体然后使用它的java代码。 当我使用eclipse运行程序时代码正常工作。但是当我将项目转换为runnable jar文件时,它无法加载ontology.it不会产生任何错误。它似乎解决了很多很多重要的时间。但无论我多久等待程序仍然在那条线上。我正在使用jena框架工作来加载本体。 听到我的代码:
Rxmodel = ModelFactory.createOntologyModel();
OntDocumentManager docModel = Rxmodel.getDocumentManager();
docModel.addAltEntry("http://purl.obolibrary.org/obo/dron/dron-rxnorm.owl",
"file:/Users/xx/Desktop/Ontology/rxnorm.owl");
try{
Rxmodel.read("http://purl.obolibrary.org/obo/dron/dron-rxnorm.owl");
}catch(Exception e){
JOptionPane.showConfirmDialog(null, e.getMessage(), "Error", JOptionPane.CLOSED_OPTION, JOptionPane.PLAIN_MESSAGE);
}
程序保留在其上的行是
Rxmodel.read("http://purl.obolibrary.org/obo/dron/dron-rxnorm.owl");
答案 0 :(得分:0)
当我使用3.2.0版本的jena时,我遇到了类似的问题。当我改为3.0.0版本时,它对我有用。
使用此依赖项创建具有maven的jar时也适用:
public static int CountingBooleanParenthesizations(bool[] boolValues, string[] operators)
{
int[,] trueTable = new int[boolValues.Length, boolValues.Length];
int[,] falseTable = new int[boolValues.Length, boolValues.Length];
for (int j = 0; j < boolValues.Length; j++)
{
for (int i = j; i >= 0; i--)
{
if (i == j)
{
trueTable[i, j] = boolValues[i] ? 1 : 0;
falseTable[i, j] = boolValues[i] ? 0 : 1;
}
else
{
int trueSum = 0;
int falseSum = 0;
for (int k = i; k < j; k++)
{
int total1 = trueTable[i, k] + falseTable[i, k];
int total2 = trueTable[k + 1, j] + falseTable[k + 1, j];
switch (operators[k])
{
case "or":
{
int or = falseTable[i, k] * falseTable[k + 1, j];
falseSum += or;
or = total1 * total2 - or;
trueSum += or;
}
break;
case "and":
{
int and = trueTable[i, k] * trueTable[k + 1, j];
trueSum += and;
and = total1 * total2 - and;
falseSum += and;
}
break;
case "xor":
{
int xor = trueTable[i, k] * falseTable[k + 1, j] + falseTable[i, k] * trueTable[k + 1, j];
trueSum += xor;
xor = total1 * total2 - xor;
falseSum += xor;
}
break;
}
}
trueTable[i, j] = trueSum;
falseTable[i, j] = falseSum;
}
}
}
return trueTable[0, boolValues.Length - 1];
}