Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java OptaPlanner 7.21.0 can';无法从jar文件执行-目录dataDir错误_Java_Optaplanner - Fatal编程技术网

Java OptaPlanner 7.21.0 can';无法从jar文件执行-目录dataDir错误

Java OptaPlanner 7.21.0 can';无法从jar文件执行-目录dataDir错误,java,optaplanner,Java,Optaplanner,我正在尝试创建我的可执行jar,因为我已经完成了我的应用程序,并希望将其导出到其他机器。然而,我得到的错误指示。有什么建议吗 我已经尝试过按照POM使用依赖项和阴影的Jar <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM

我正在尝试创建我的可执行jar,因为我已经完成了我的应用程序,并希望将其导出到其他机器。然而,我得到的错误指示。有什么建议吗

我已经尝试过按照POM使用依赖项和阴影的Jar

<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.optaplanner.examples.nurserostering</groupId>
    <artifactId>NurseRostering</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>Staff Rostering</name>
    <dependencies>
        <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <!-- https://mvnrepository.com/artifact/org.eclipse.platform/org.eclipse.swt -->
        <dependency>
            <groupId>org.optaplanner</groupId>
            <artifactId>optaplanner-core</artifactId>
            <version>7.21.0.Final</version>
        </dependency>
        <dependency>
            <groupId>com.mchange</groupId>
            <artifactId>mchange-commons-java</artifactId>
            <version>0.2.11</version>
        </dependency>
        <dependency>
            <groupId>com.thoughtworks.xstream</groupId>
            <artifactId>xstream</artifactId>
            <version>1.4.10</version>
        </dependency> <!-- Internal dependencies -->
        <dependency>
            <groupId>org.optaplanner</groupId>
            <artifactId>optaplanner-persistence-common</artifactId>
            <version>7.21.0.Final</version>
        </dependency>
        <dependency><!-- Most examples use the XStream integration -->
            <groupId>org.optaplanner</groupId>
            <artifactId>optaplanner-persistence-xstream</artifactId>
            <version>7.21.0.Final</version>
        </dependency>
        <dependency><!-- TODO add examples that use the JAXB integration -->
            <groupId>org.optaplanner</groupId>
            <artifactId>optaplanner-persistence-jaxb</artifactId>
            <version>7.21.0.Final</version>
        </dependency>
        <dependency><!-- TODO add examples that use the jackson integration -->
            <groupId>org.optaplanner</groupId>
            <artifactId>optaplanner-persistence-jackson</artifactId>
            <version>7.21.0.Final</version>
        </dependency>
        <dependency>
            <groupId>org.optaplanner</groupId>
            <artifactId>optaplanner-benchmark</artifactId>
            <version>7.21.0.Final</version>
        </dependency>
        <dependency>
            <groupId>org.optaplanner</groupId>
            <artifactId>optaplanner-test</artifactId>
            <scope>test</scope>
            <version>7.21.0.Final</version>
        </dependency>
        <dependency>
            <groupId>org.kie</groupId>
            <artifactId>kie-api</artifactId>
            <version>7.21.0.Final</version>
        </dependency>
        <dependency>
            <groupId>org.drools</groupId>
            <artifactId>drools-decisiontables</artifactId>
            <scope>runtime</scope>
            <version>7.21.0.Final</version>
        </dependency>
        <!-- External dependencies -->
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.5</version>
        </dependency>
        <dependency>
            <groupId>org.jfree</groupId>
            <artifactId>jfreechart</artifactId>
            <version>1.0.19</version>
        </dependency>
        <dependency>
            <groupId>org.jfree</groupId>
            <artifactId>jcommon</artifactId>
            <version>1.0.23</version>
        </dependency>
        <!-- Common utils -->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.4</version>
        </dependency>
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>20.0</version>
        </dependency>
        <!-- Logging -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.25</version>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <scope>runtime</scope>
            <version>1.1.3</version>
        </dependency>


        <!-- Examples only dependencies. -->
        <!-- WARNING: every examples only dependency must be properly dealt with 
            in optaplanner-distribution/src/main/assembly/assembly-optaplanner.xml -->
        <!-- Converters -->
        <dependency>
            <groupId>org.jdom</groupId>
            <artifactId>jdom</artifactId>
            <version>1.1.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>3.15</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>3.15</version>

        </dependency>
        <dependency>
            <groupId>javax.persistence</groupId>
            <artifactId>javax.persistence-api</artifactId>
            <version>2.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.maven</groupId>
            <artifactId>maven-core</artifactId>
            <version>3.6.0</version>
        </dependency>
        <dependency>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-impl</artifactId>
            <version>2.4.0-b180830.0438</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.24</version>
        </dependency>
        <dependency>
            <groupId>c3p0</groupId>
            <artifactId>c3p0</artifactId>
            <version>0.9.1.2</version>
        </dependency>
        <dependency>
            <groupId>org.kordamp.ikonli</groupId>
            <artifactId>ikonli-javafx</artifactId>
            <version>11.3.4</version>
        </dependency>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-controls</artifactId>
            <version>13-ea+9</version>
        </dependency>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-fxml</artifactId>
            <version>13-ea+9</version>
        </dependency>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-graphics</artifactId>
            <version>13-ea+9</version>
        </dependency>
        <dependency>
            <groupId>org.kordamp.ikonli</groupId>
            <artifactId>ikonli-fontawesome-pack</artifactId>
            <version>11.3.4</version>
        </dependency>
        <dependency>
            <groupId>org.kordamp.ikonli</groupId>
            <artifactId>ikonli-core</artifactId>
            <version>11.3.4</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>5.4.3.Final</version>
        </dependency>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-base</artifactId>
            <version>13-ea+9</version>
        </dependency>
        <dependency>
            <groupId>org.kordamp.ikonli</groupId>
            <artifactId>ikonli-octicons-pack</artifactId>
            <version>11.3.4</version>
        </dependency>
        <dependency>
            <groupId>org.kordamp.ikonli</groupId>
            <artifactId>ikonli-fontelico-pack</artifactId>
            <version>11.3.4</version>
        </dependency>
        <dependency>
            <groupId>org.kordamp.ikonli</groupId>
            <artifactId>ikonli-ionicons-pack</artifactId>
            <version>11.3.4</version>
        </dependency>
        <dependency>
            <groupId>org.kordamp.ikonli</groupId>
            <artifactId>ikonli-ionicons4-pack</artifactId>
            <version>11.3.4</version>
        </dependency>
        <dependency>
            <groupId>org.kordamp.ikonli</groupId>
            <artifactId>ikonli-entypo-pack</artifactId>
            <version>11.3.4</version>
        </dependency>
        <dependency>
            <groupId>org.kordamp.ikonli</groupId>
            <artifactId>ikonli-themify-pack</artifactId>
            <version>11.3.4</version>
        </dependency>
        <dependency>
            <groupId>org.kordamp.ikonli</groupId>
            <artifactId>ikonli-materialdesign-pack</artifactId>
            <version>11.3.4</version>
        </dependency>
        <dependency>
            <groupId>org.kordamp.ikonli</groupId>
            <artifactId>ikonli-foundation-pack</artifactId>
            <version>11.3.4</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>3.2.0</version>
                <executions>
                    <!-- Run shade goal on package phase -->
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <transformers>
                                <!-- add Main-Class to manifest file -->
                                <transformer
                                    implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                    <mainClass>org.optaplanner.examples.nurserostering.app.NurseRosteringApp</mainClass>

                                    <!-- -Dlog4j.configurationFile=../properties/idStrikeSolver-log4j.properties 
                                        -Duser.timezone="UTC" -->
                                </transformer>
                                <transformer
                                    implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                                    <resource>META-INF/kie.conf</resource>
                                </transformer>
                            </transformers>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

让我通过复制粘贴问题来回答这个问题:)

。。。目录dataDir(
/home/rodney/Desktop/data/nursserostering
)没有 不存在。工作目录应设置为 包含
数据的目录
目录
(该目录不是
数据
目录本身)或。。。数据库中的数据目录不同 git克隆(
optaplanner/optaplanner示例/data
)并在一个发布zip中 (
示例/源/数据
)。在IDE(IntelliJ、Eclipse、NetBeans)中, 打开“运行配置”以更改“工作目录”


Stackoverflow,我不是因为耍了这个把戏而得到一个徽章吗?你应该得到一个授权杀手徽章来回答那些源于0研究和懒惰的问题:D汉克斯·杰弗里。我注意到克里斯的评论。我尝试了多种方法,包括使用依赖项的Jar。然后我遇到了Kie配置的问题,研究了这个问题,以找到POM中的阴影要求。Optaplanner/Drools中只有2篇与此相关的文章。我是由使用Eclipse的应用程序抛出的,因此在执行Maven安装时,我无法解决这个错误。我以为stackflow的想法是为了帮助Kris。顺便说一句,我试着按照说明配置工作目录,但没有成功。不用担心,罗德。我知道你会尝试/研究比表面上可见的多得多的东西。这是一个偶然的机会——当100个聪明的用户试图让它工作时,总会有一个聪明的家伙尝试所有错误的事情——偶然的。话虽如此,我还是忍不住错过了回答这个问题的机会——这让我很开心:)让我们谈谈你之前遇到的陷阱:没有遮光要求(尽管对口水有脂肪罐限制,这会激励一些用户开始遮光……)。就我个人而言,我建议在所有情况下都避免阴影。如果您下载zip文件,并调用runExamples.sh/bat,它就可以工作了——多亏了optaplanner-examples.jar中的manifest.mf条目——根本没有阴影。
Exception in thread "main" java.lang.IllegalStateException: The directory dataDir (/home/rodney/Desktop/data/nurserostering) does not exist.
 Either the working directory should be set to the directory that contains the data directory (which is not the data directory itself), or the system property org.optaplanner.examples.dataDir should be set properly.
 The data directory is different in a git clone (optaplanner/optaplanner-examples/data) and in a release zip (examples/sources/data).
 In an IDE (IntelliJ, Eclipse, NetBeans), open the "Run configuration" to change "Working directory" (or add the system property in "VM options").
    at org.optaplanner.examples.common.app.CommonApp.determineDataDir(CommonApp.java:52)
    at org.optaplanner.examples.common.app.CommonApp.createSolutionBusiness(CommonApp.java:127)
    at org.optaplanner.examples.common.app.CommonApp.init(CommonApp.java:117)
    at org.optaplanner.examples.common.app.CommonApp.init(CommonApp.java:113)
    at org.optaplanner.examples.nurserostering.app.NurseRosteringApp.main(NurseRosteringApp.java:41)