标签: javafx-11

IntelliJ无法使用OpenJDK 11识别JavaFX 11

我无法让IntellJ识别JavaFX包.使用OpenJDK 11的新JavaFX项目,在尝试构建项目时,IntelliJ无法识别JavaFX包.

我是openjfx:javafx-base-11从Maven回购中导入的.

我已经查看了其他问题,解决方案似乎包括检查字节码是否处于正确的级别(我的是),以及项目语言是否正确(我的是).

有人有主意吗?

pic 1

pic 2

pic 3

编辑:

错误:

在此输入图像描述

java javafx intellij-idea java-11 javafx-11

53
推荐指数
4
解决办法
5万
查看次数

JavaFX 11:使用Gradle创建一个jar文件

我正在尝试将JavaFX项目从8 Java版升级到11版.当我使用"运行"Gradle任务(我遵循Openjfx教程)时,它工作,但是当我构建(使用"jar"Gradle任务)并执行(使用"java -jar")jar文件时,消息"Error :缺少JavaFX运行时组件,并且"运行此应用程序需要".

这是我的build.gradle文件:

group 'Project'
version '1.0'
apply plugin: 'java'
sourceCompatibility = 1.11

repositories {
    mavenCentral()
}

def currentOS = org.gradle.internal.os.OperatingSystem.current()
def platform
if (currentOS.isWindows()) {
    platform = 'win'
} else if (currentOS.isLinux()) {
    platform = 'linux'
} else if (currentOS.isMacOsX()) {
    platform = 'mac'
}
dependencies {
    compile "org.openjfx:javafx-base:11:${platform}"
    compile "org.openjfx:javafx-graphics:11:${platform}"
    compile "org.openjfx:javafx-controls:11:${platform}"
    compile "org.openjfx:javafx-fxml:11:${platform}"
}

task run(type: JavaExec) {
    classpath sourceSets.main.runtimeClasspath
    main = "project.Main"
}

jar {
    manifest {
        attributes 'Main-Class': 'project.Main'
    }
    from …
Run Code Online (Sandbox Code Playgroud)

jar gradle java-11 javafx-11

27
推荐指数
3
解决办法
1万
查看次数

如何在Java 11中将JavaFX运行时添加到Eclipse?

我收到以下错误,因为Java 11将JavaFX排除在最新版本的一部分之外.

Error: JavaFX runtime components are missing, and are required to run
this application
Run Code Online (Sandbox Code Playgroud)

那么如何在Java 11中将JavaFX添加到Eclipse?谢谢.

java java-11 javafx-11

22
推荐指数
4
解决办法
4万
查看次数

缺少Maven Shade JavaFX运行时组件

我正在尝试使用maven依赖项创建一个JFX11自包含jar.从我所做的研究来看,似乎最好的方法是通过maven shade插件.但是,当我运行它时,我收到此错误:

错误:缺少JavaFX运行时组件,并且需要运行此应用程序

我不明白为什么会这样.我搞砸了什么?有一个更好的方法吗?我也用同样的消息尝试了maven程序集插件.

pom文件供参考

<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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>Application</groupId>
    <artifactId>Main</artifactId>
    <packaging>jar</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>SpaceRunner</name>
    <url>http://maven.apache.org</url>
    <dependencies>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-controls</artifactId>
            <version>11</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.0</version>
                <configuration>
                    <release>10</release>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <version>1.6.0</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>java</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <mainClass>Application.Main</mainClass>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifest>
                            <mainClass>
                                Application.Main
                            </mainClass>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>3.2.0</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <transformers>
                                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                    <mainClass>Application.Main</mainClass>
                                </transformer>
                            </transformers>
                        </configuration>
                    </execution> …
Run Code Online (Sandbox Code Playgroud)

java javafx maven javafx-11

22
推荐指数
1
解决办法
7407
查看次数

如何使用JRE部署JavaFX 11 Desktop应用程序

我有一个JavaFX(JDK 8)桌面业务应用程序,它使用Java Web Start进行部署.用户安装了Java 8,他们只需转到URL(我的AWS Linux服务器上的公共URL),然后下载/启动应用程序(使用Web Start).我也可以通过将新JAR部署到服务器来轻松更新应用程序.一切都很好.

但是,Oracle已经停止了使用Java 11的Web Start,并且在2018年3月的"Java客户端路线图更新"白皮书中,他们建议将JRE与应用程序捆绑在一起("应用程序的概念是从独立的JRE单独分发的,因此,快速消退.").我不能依赖我的用户留在Java 8 for Web Start,即使他们仍然保持在8,Oracle也需要许可才能继续使用Java 8(我没有,可能非常昂贵,我更喜欢无论如何与社区一起走向JavaFX 11和OpenJDK).


我想迁移到JavaFX 11.我遵循OpenJFX的"JavaFX11入门"(https://openjfx.io/openjfx-docs/),使用OpenJDK 11.0.1和Gluon的JavaFX SDK 11.0.1(在Netbeans 10vc2上) ),并且已经能够运行示例应用程序(在我看来,我应该能够非常轻松地将我的JavaFX 8代码移植到JavaFX 11).

然而,这是我被困在方向的地方.如何将其与JRE捆绑在一起并将其部署到我的最终用户(并提供应用程序更新)?那里有一个简单的方法(甚至是艰难的方式,有一些方向/指南)?

我可以花几百个小时在JavaFX 11中编写富有表现力,丰富且有用的桌面业务应用程序,但我该怎么做呢?

部署工具包(如JWrapper,InstallAnywhere等)是否适合Java 11的这个新时代?Gluon/openjfx.io可能有我错过的推荐或指南吗?我似乎无法从信誉良好的来源找到任何建议或指南,因为我们开发人员如何专注于编写前端代码,以便部署应用程序.

感谢您的帮助或指导.

java javafx openjfx javafx-11

21
推荐指数
1
解决办法
7009
查看次数

在模块路径上使用OpenJFX 11 JMODS在JDK 11上运行javafx示例

我从OpenJFX项目下载了JavaFX Jmod文件并将它们放在目录中G:\openjfx\javafx-jmods-11.我正在使用没有JavaFX jmod的OpenJDK 11,JAVA_HOME/jmods即它没有JavaFX发行版.

模块信息文件:

module gui{
    requires javafx.graphics;
    requires javafx.controls;

    exports com.test;
}
Run Code Online (Sandbox Code Playgroud)

我编译如下:

javac -p G:\openjfx\javafx-jmods-11 -d mods --module-source-path src 
    src\gui\com\test\*.java src\gui\module-info.java
Run Code Online (Sandbox Code Playgroud)

编译成功.但我无法使用以下命令运行已编译的代码:

java -p G:\openjfx\javafx-jmods-11;mods -m gui/com.test.CreateGuiDemo
Run Code Online (Sandbox Code Playgroud)

但我得到以下错误:

Error occurred during initialization of boot layer
java.lang.module.FindException: Module javafx.graphics not found, required by gui
Run Code Online (Sandbox Code Playgroud)

java javafx openjfx java-11 javafx-11

13
推荐指数
1
解决办法
2万
查看次数

使用java11构建和部署javafx应用程序

我按照https://blog.jetbrains.com/idea/2013/03/packaging-javafx-2-applications-in-intellij-idea-121/中的步骤进行操作

但是当我尝试构建工件时,就像在最后一步一样,我得到了这个错误

在此输入图像描述

错误:Java FX Packager:无法构建工件 - fx:deploy在此JDK中不可用

在此输入图像描述

我知道JavaFX已经从java11中删除了我的问题是我应该怎么做才能构建一个.jar.exe

这是一个快速测试的hello world应用程序.

java javafx intellij-idea java-11 javafx-11

13
推荐指数
3
解决办法
6332
查看次数

创建标签时的JavaFX 11:IllegalAccessError

这个问题可能是同一个问题的这一个,但现在看来,一个的提问者还没有添加足够的信息来获得一个有用的响应。

我正在尝试使用JDK和JavaFx SDK版本11.0.2运行JavaFx应用程序。

此代码完全按预期工作,从而产生一个空窗口:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class Main extends Application {

    public void start(Stage primaryStage) throws Exception {
        StackPane root = new StackPane();
        primaryStage.setScene(new Scene(root, 420, 420));
        primaryStage.show();
    }


    public static void main(String[] args) {
        launch(args);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试向添加标签StackPane,则会引发异常。

import ...
import javafx.scene.control.Label;

public class Main extends Application {

    public void start(Stage primaryStage) throws Exception {
        StackPane root = new StackPane();
        root.getChildren().add(new Label("42"));
        primaryStage.setScene(new Scene(root, 420, 420));
        primaryStage.show();
    } …
Run Code Online (Sandbox Code Playgroud)

java javafx intellij-idea javafx-11

12
推荐指数
1
解决办法
6061
查看次数

错误:缺少 JavaFX 运行时组件 - JavaFX 11 和 OpenJDK 11 以及 Eclipse IDE

我有一个经典问题:将 JavaFX 11 与 OpenJDK 11 与 Eclipse IDE 一起使用。

Error: JavaFX runtime components are missing, and are required to run this application
Run Code Online (Sandbox Code Playgroud)

我有 OpenJDK 11.0.2

dell@dell-pc:~$ java -version
openjdk version "11.0.2" 2019-01-15
OpenJDK Runtime Environment 18.9 (build 11.0.2+9)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)
dell@dell-pc:~$ 
Run Code Online (Sandbox Code Playgroud)

我也有JavaFX 11 SDK。顺便一提!如果您想知道,我正在使用 Lubuntu Linux 18.10。 在此处输入图片说明

然后我.jarJavaFX 11 SDKEclipse IDE 中的文件包含到一个库包中。

在此处输入图片说明

然后我将这个库包包含到我的JAdaptiveMPC项目中。 在此处输入图片说明

我的代码语法没有错误,但仍然无法编译我的项目。 在此处输入图片说明

你知道为什么吗?如果我.jar从 Maven导入所有这些文件而不是下载JavaFX SDK并将其导入到库中,我会遇到同样的错误。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" …
Run Code Online (Sandbox Code Playgroud)

java eclipse javafx gluon-desktop javafx-11

12
推荐指数
1
解决办法
3万
查看次数

打包非模块化JavaFX应用程序

我有一个Java 8应用程序,它使用JavaFX,主类扩展了 javafx.application.Application.目前,我将它作为胖罐提供,它在Oracle Java 8上运行良好.

现在我希望它能够在OpenJDK 11上运行.要添加JavaFX,我已经将org.openjfx中的工件添加到类路径中,并将它们包含在胖jar中.如果我从命令行启动我的jar,我明白了

Error: JavaFX runtime components are missing, and are required to run this
application
Run Code Online (Sandbox Code Playgroud)

我找到了解决此问题的两种可能方法:

  1. 脏的:编写一个特殊的启动器,它不会扩展应用程序并绕过模块检查.请参阅http://mail.openjdk.java.net/pipermail/openjfx-dev/2018-June/021977.html
  2. 干净的:将--module-path和--add-modules添加到我的命令行.这个解决方案的问题是,我希望我的最终用户能够通过双击启动应用程序.

虽然我可以使用1.作为一种解决方法,但我想知道目前(OpenJDK 11)构建/交付非模块化JavaFX应用程序的可执行胖罐的方法.有人可以帮忙吗?

java javafx maven openjfx javafx-11

11
推荐指数
1
解决办法
3377
查看次数