jar文件无法加载本体,而eclipse中的java代码加载它

时间:2017-02-11 16:27:14

标签: java eclipse jar ontology apache-jena

我有一个加载本体然后使用它的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");

1 个答案:

答案 0 :(得分:0)

当我使用3.2.0版本的jena时,我遇到了类似的问题。当我改为3.0.0版本时,它对我有用。

下载:Apache Jena Version 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];
}