标签: javafx-11

在活动JDK中找不到JavaFX部署库

我正在迁移到OpenJDK 11和OpenJFX 11.我已经从源代码成功构建了两个,并且根据OpenJFX wiki使用--with-import-modules = [path_to_modular_sdk] arg来构建JDK.一切顺利,直到我尝试在Apache Netbeans 9中构建一个简单的"Hello World"测试项目; 此时我收到以下错误:" 在活动JDK中找不到JavaFX部署库 ".试图搜索这方面的信息,但找不到任何相关的信息.如果有人能够阐明造成这种情况的原因,我将非常感激.谢谢你的帮助.帕特里克.

netbeans javafx java-11 javafx-11

5
推荐指数
1
解决办法
9885
查看次数

IntelliJ IDEA 2018.2、openjdk 11 和 openjfx 11(无 Maven,不是模块化项目):找不到模块 javafx.controls

我刚刚使用 openjdk 11 在 intelliJ 中创建了一个新的 JavaFX 项目,并在他们的网站上下载了最后一个 openjfx 库。

这是我所做的:

我已添加到运行/调试虚拟机选项:--module-path %PATH_TO_FX% --add-modules=javafx.controls,javafx.fxml 虚拟机选项

我添加了一个新变量 env PATH_TO_FX :PATH_TO_FX=%programfiles%\Java\javafx-sdk-11\lib

所以它编译得很好,但在运行时失败:

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

有谁知道我在这里缺少什么?

PS:我已经关注此链接https://openjfx.io/openjfx-docs/#install-javafx

编辑 :

我这里应该有 onpenjfx 库吗?类路径

java javafx intellij-idea openjfx javafx-11

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

将JavaFX应用程序与openjdk 11和运行时捆绑在一起

在阅读到可以长期支持OpenJDK 11之后,我决定创建一个小应用程序(使用Gradle)与JavaFX结合起来测试一些功能。经过一番努力,我设法创建了一个可以正常打开的Hello World .jar文件。

现在,我要进行下一步:运行.jar文件,而无需事先下载任何与Java相关的内容,因为由于必须正确设置PATH等,此刻安装OpenJDK很小。

关于将OpenJDK 11应用程序与Java 11 JRE捆绑在一起的搜索不会返回很多答案。我觉得这很奇怪,因为(据我了解)OpenJDK 11是第一个不附带JRE的产品。

所以我的问题是:如何结合运行时来交付Java 11应用程序?

java javafx javafx-11

5
推荐指数
1
解决办法
1525
查看次数

JavaFX 11 替换 column.impl_setWidth()?

我写了一个自定义的 TableColumn 宽度调整策略。您可以在 github 上的Java 8 / JavaFX 8 下查看其代码。如您所见,在方法distributeSpaceRatio()等地方,取决于TableColumn.impl_setWidth()我们计算后将列的宽度设置为所需的值。

我正在将我的项目迁移到 Java 11/JavaFX 11,并且该方法impl_setWidth()已从公共视图中删除。

还有另一种方法可以告诉表格列设置其宽度吗?我对任何解决方案持开放态度,只要它可靠并将 with 设置为(或接近)请求的值。

以下是我迄今为止尝试过的两个没有奏效的想法:


尝试 1:

这个给出了 NoMethodFoundException:

private void setColumnWidth ( TableColumn column, double targetWidth ) {

    try {
        Method method = column.getClass().getDeclaredMethod( "setWidth" );
        method.setAccessible( true );
        Object r = method.invoke( targetWidth );
    } catch ( Exception e ) {
        e.printStackTrace();
    }
}
Run Code Online (Sandbox Code Playgroud)

尝试 2:

这个没有效果:

private void setColumnWidth ( TableColumn column, double targetWidth ) { …
Run Code Online (Sandbox Code Playgroud)

java javafx java-11 javafx-11

5
推荐指数
1
解决办法
212
查看次数

即使显式提供模块路径,Eclipse也找不到模块

我创建了一个com.company.ep位于源文件夹中的模块com.company.ep(是的,我已从srcBuild Path中删除并删除它).在源文件夹中,我有几个包如下:

com.company.ep    <--- root source folder
    com.company.ep.main    <--- package 1
    com.company.ep.model   <--- package 2
    com.company.ep.view    <--- package 3
    // ... more packages
    module-info.java
Run Code Online (Sandbox Code Playgroud)

主类位于包中com.company.ep.main.Main.在我的module-info.java配置依赖项:

module com.company.ep {
    exports com.company.ep.main;
    exports com.company.ep.model;
    exports com.company.ep.view;
    // ... more exports
    requires javafx.controls;
    requires javafx.graphics;
}
Run Code Online (Sandbox Code Playgroud)

当我尝试启动我的程序时,Eclipse告诉我:

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

所以我尝试在命令提示符下运行它:

java -p d:\Applications\openjfx-sdk-11\lib;bin -m com.company.ep/com.company.ep.main.Main

bin是Eclipse的输出文件夹,它工作.

所以我去了 …

java eclipse javafx java-module javafx-11

5
推荐指数
1
解决办法
2703
查看次数

JavaFX Proguard混淆

我正在努力处理JavaFX应用程序的混淆问题。以该项目为基础:

https://github.com/openjfx/samples/tree/master/IDE/IntelliJ/Non-Modular/Gradle

Proguard抛出此错误:

java.io.IOException: Can't write [Path\infile.jar] (Can't read [Path\outfile.jar] (Duplicate jar entry [a.class]))
Run Code Online (Sandbox Code Playgroud)

Proguard配置文件:-dontoptimize -dontshrink

-libraryjars 'E:\Prog\jdk-11.0.2\jmods'
-libraryjars 'E:\Prog\javafx-sdk\lib'

# Save meta-data for stack traces
-renamesourcefileattribute SourceFile
-keepattributes SourceFile,LineNumberTable

# Rename FXML files together with related views
-adaptresourcefilenames **.fxml,**.png,**.css
-adaptresourcefilecontents **.fxml
-adaptclassstrings

# Keep all annotations and meta-data
-keepattributes *Annotation*,Signature,EnclosingMethod

# Keep entry-point class
-keep classpackage.App {
    public static void main(java.lang.String[]);
}

# Keep all classes inside application
-keep,allowobfuscation class package.** {
}

# Keep names of fields marked …
Run Code Online (Sandbox Code Playgroud)

obfuscation javafx proguard java-11 javafx-11

5
推荐指数
1
解决办法
875
查看次数

软件包javafx.util不存在

我在Mac上运行Java版本11.0.2。当我编译导入的Java文件时,javafx.util.pair得到了一个error: package javafx.util does not exist。没有太多有用的资源来解决此问题。我在网上尝试了其他建议,但没有白费。目前,我正在尝试将JavaFX软件包添加到我的Java目录中。但这是行不通的。

这是我所做的:

  1. 下载了javafx-sdk-11.0.2文件夹。文件夹中有2个目录-Legal和lib

  2. legal目录中的项目移至/Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home/legal

  3. lib目录中的项目移动到/Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home/lib

  4. 重新打开终端以编译此.java文件。

问题_1:我错过了上面的任何东西吗?

问题_2:如果这种方法是错误的,您会提出什么建议?

java javafx java-11 javafx-11

5
推荐指数
1
解决办法
6142
查看次数

JDK11 / JavaFX:如何在没有构建/依赖管理的情况下制作胖子?

我想不用说,我应该能够将Oracle自己的JDK与JavaFX(来自gluonhq)一起使用,以构建用户可以使用的可分发jar文件。

经过详尽的搜索,大量阅读(过去几个月中24小时或更长时间),最后是这个Google搜索查询:

how to make a fat jar -maven -gradle -scala -eclipse -ant -docker -hadoop -netbeans -jerkar -phy -mozni -yogurt -pizza - throwing -python -bacon
Run Code Online (Sandbox Code Playgroud)

我绝对在路的尽头。到底为什么这么多工作?我该如何构建JavaFX应用程序并将其提供给想要实际使用它的人,而又不知道如何使用应用程序本身呢?

java javafx fatjar javafx-11

5
推荐指数
1
解决办法
982
查看次数

Java 12 和 JavaFX 12 - 创建可运行的 jar 和自定义 JRE

我正在尝试调整我的程序以在 Java 12 上运行。它目前在 Java 8 上运行并具有一些 JavaFX 组件(一些对话框)。它不是模块化的。我的 IDE 是 Eclipse,JavaFX jar 文件作为用户库包含在构建路径中。我想生成一个可运行的 jar 并将 javafx 文件捆绑在其中或将它们添加到自定义 JRE,以便我可以分发它,而不需要最终用户单独安装 Java12 或 JavaFX。

首先,我想尝试一个简单的HelloFX程序,修改后使其更类似于我的程序。

public class HelloFX2 {

    public HelloFX2() {
        startToolkit();

        // have to wait a second for the JavaFX thread to actually start, or else the Platform.runLater throws an exception
        try
        {
            Thread.sleep(1000);
        }
        catch(InterruptedException ex)
        {
            Thread.currentThread().interrupt();
        }

        // create the scene and display
        Platform.runLater(() -> {
            Scene theScene = createTheScene();
            final Stage stage = new …
Run Code Online (Sandbox Code Playgroud)

java eclipse javafx javafx-11

5
推荐指数
1
解决办法
2828
查看次数

如何修复jvm选项在gradle idea上将javafx 11导出到com.jfoenix?

已经三天了,我在网上查找如何在 gradle 上解决这个问题

Caused by: java.lang.IllegalAccessError: class com.jfoenix.skins.JFXTabPaneSkin (in module com.jfoenix) cannot access class com.sun.javafx.scene.control.behavior.TabPaneBehavior (in module javafx.controls) because module javafx.controls does not export com.sun.javafx.scene.control.behavior to module com.jfoenix
Run Code Online (Sandbox Code Playgroud)

在简单的想法项目中我添加了

--add-exports javafx.controls/com.sun.javafx.scene.control.behavior=com.jfoenix --add-exports javafx.controls/com.sun.javafx.scene.control=com.jfoenix --add-exports javafx.base/com.sun.javafx.binding=com.jfoenix --add-exports javafx.graphics/com.sun.javafx.stage=com.jfoenix --add-exports javafx.base/com.sun.javafx.event=com.jfoenix 
Run Code Online (Sandbox Code Playgroud)

我知道,我必须添加 jvm 选项,但我该怎么做?

我在 intellij idea 上使用 gradle javafx 11.0.2,java 11,

这是build.gradle

plugins {
    id 'java'
    id 'application'
    id 'org.openjfx.javafxplugin' version '0.0.8'
}

compileJava.options.encoding = 'UTF-8'
repositories {
    mavenCentral()
}

dependencies {
    //     https://mvnrepository.com/artifact/com.jfoenix/jfoenix
    compile group: 'com.jfoenix', name: 'jfoenix', version: '9.0.9' …
Run Code Online (Sandbox Code Playgroud)

java javafx intellij-idea java-11 javafx-11

5
推荐指数
1
解决办法
4355
查看次数