首页 > 解决方案 > NoClassfoundDefError : 执行 Swing jar 文件时出现 OWLOntologyCreationException

问题描述

我正在使用 Maven 开发 Java Swing 应用程序,并且添加了net.sourceforge.owlapi5.1.0 版本

        <dependency>
            <groupId>net.sourceforge.owlapi</groupId>
            <artifactId>owlapi-distribution</artifactId>
            <version>5.1.0</version>
        </dependency>

如果我从 Netbeans 运行应用程序,则完全没有问题,但是当我jar从构建生成的应用程序运行它并触发调用loadOntologyFromOntologyDocument方法的侦听器时,我在控制台中找到了noclassdeffounderror : OWLOntologyCreationException

这是我打电话时的方法:

        try {
            File file = new File(baseUrl.split("///")[1] + suffixUrl);

            if (file == null) {
                return;
            } else {
                System.out.println("file is null " + file.getAbsolutePath());

            }
            OWLOntology ontology = manager.loadOntologyFromOntologyDocument(file);

            OWLDataFactory factory = manager.getOWLDataFactory();

            ...

            } catch (OWLOntologyCreationException | OWLOntologyStorageException ex) {
               JOptionPane.showMessageDialog(null, ex.getMessage());
            }

该方法loadOntologyFromOntologyDocument抛出OWLOntologyCreationException

我的内置pom.xml

        º<plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>2.6</version>
                <configuration>
                    <archive>
                        <addMavenDescriptor>false</addMavenDescriptor>
                        <manifest>
                            <mainClass>ui.AppFrame</mainClass>
                            <addClasspath>true</addClasspath>
                            <classpathPrefix>lib/</classpathPrefix>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>2.4</version>
                <configuration>
                    <descriptors>
                        <descriptor>src/main/assembly/assembly.xml</descriptor>
                    </descriptors>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>

[更新] 错误跟踪: 在此处输入图像描述

[更新2] 程序集.xml

<?xml version="1.0" encoding="UTF-8"?>
<assembly> 
    <id>full</id>  
    <formats> 
        <format>zip</format> 
    </formats>
    <dependencySets> 
        <dependencySet> 
            <useProjectArtifact>true</useProjectArtifact> 
            <outputDirectory>lib</outputDirectory> 
        </dependencySet> 
    </dependencySets> 

    <fileSets> 
        <fileSet> 
            <directory>${project.build.directory}</directory> 
            <outputDirectory>/</outputDirectory> 
            <includes> 
                <include>*.jar</include> 
            </includes> 
        </fileSet> 

        <fileSet> 
            <directory>data</directory> 
            <outputDirectory>/data</outputDirectory> 
            <includes> 
                <include>*</include> 
            </includes> 
        </fileSet>

        <fileSet> 
            <directory>data/projects</directory> 
            <outputDirectory>/data/projects</outputDirectory> 
            <includes> 
                <include>*</include> 
            </includes> 
        </fileSet> 
        <fileSet> 
            <directory>data/onto</directory> 
            <outputDirectory>/data/onto</outputDirectory> 
            <includes> 
                <include>*</include> 
            </includes> 
        </fileSet> 
        <fileSet> 
            <directory>data/onto/core</directory> 
            <outputDirectory>/data/onto/core</outputDirectory> 
            <includes> 
                <include>*</include> 
            </includes> 
        </fileSet>
        <fileSet> 
            <directory>data/onto/obs</directory> 
            <outputDirectory>/data/onto/obs</outputDirectory> 
            <includes> 
                <include>*</include> 
            </includes> 
        </fileSet>
        <fileSet> 
            <directory>data/onto/extern</directory> 
            <outputDirectory>/data/onto/extern</outputDirectory> 
            <includes> 
                <include>*</include> 
            </includes> 
        </fileSet>

        <fileSet> 
            <directory>data/onto/tech</directory> 
            <outputDirectory>/data/onto/tech</outputDirectory> 
            <includes> 
                <include>*</include> 
            </includes> 
        </fileSet> 
     </fileSets> 
</assembly>

标签: javaswingmavenowl-api

解决方案


推荐阅读