Eclipse,JavaFX:代码在IDE中运行,但不在可运行的jar中运行

时间:2019-05-26 11:21:05

标签: java javafx jar

我当前正在尝试将项目移植到javafx11。为了进行测试,我尝试使用tutorial page中的hello-world-example创建可运行的jar文件。我包括了vm-modules,以防止错误 Error: JavaFX runtime components are missing, and are required to run this application

在eclipse中,一切正常,但是当我将项目导出为可运行的jar文件时,尝试运行jar时错误返回。

导出jar文件时,我选择与应用程序相同的运行配置,并选择将所需的库提取到生成的jar中。

编辑:根据建议,我目前正在尝试使用maven创建可运行的jar。 bhild成功了,但是我无法执行。

pom.xml看起来像这样

<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>Mpp_App</groupId>
  <artifactId>Mpp_App</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>
  <name>Dacemo</name>
  <build>
    <sourceDirectory>src</sourceDirectory>
    <resources>

      <resource>
        <directory>src</directory>
        <excludes>
          <exclude>**/*.java</exclude>
        </excludes>
      </resource>
    </resources>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.0</version>
        <configuration>
          <release>11</release>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-maven-plugin</artifactId>
        <version>0.0.2</version>
        <configuration>
            <mainClass>Start</mainClass>
        </configuration>
        </plugin>
        <plugin>
        <!-- Build an executable JAR -->
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>2.4</version>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>Start</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
    </plugins>

  </build>

  <dependencies>
    <dependency>
        <groupId>com.jfoenix</groupId>
        <artifactId>jfoenix</artifactId>
        <version>9.0.8</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/com.itextpdf/itextpdf -->
    <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>itextpdf</artifactId>
        <version>5.5.13</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/com.googlecode.json-simple/json-simple -->
    <dependency>
        <groupId>com.googlecode.json-simple</groupId>
        <artifactId>json-simple</artifactId>
        <version>1.1.1</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.apache.pdfbox/pdfbox -->
    <dependency>
        <groupId>org.apache.pdfbox</groupId>
        <artifactId>pdfbox</artifactId>
        <version>2.0.15</version>
    </dependency>

  </dependencies>
</project>

在尝试执行它时,我得到了错误

Could not find or laod main class Start
Caused by: java.lang.NoClassDefFoundError: javafx/application/Application

Start.java是否定义错误?在eclipse项目结构中,Start.java位于默认包中。

0 个答案:

没有答案