gpt4 book ai didi

java - 为什么使用 OpenJDK+openjfx 的 JavaFX 应用程序在 Ubuntu 16 上失败?

转载 作者:行者123 更新时间:2023-12-01 21:28:11 26 4
gpt4 key购买 nike

我创建了一个非常基本的 JavaFX 应用程序

// Viewer.java
package crossjavafx;

public class Viewer {
public static void main(String[] args) {
MainViewer.main(args);
}
}
// MainViewer.java
package crossjavafx;

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.stage.Stage;

public class MainViewer extends Application {

@Override
public void start(Stage stage) {
try {
System.out.println("Hello from Viewer");
Group root = new Group();
Scene scene = new Scene(root, 400, 300);
stage.setTitle("Hello");
stage.setScene(scene);
stage.show();
} catch (final Exception e) {
System.exit(1);
}
}

public static void main(String args[]){
launch(args);
}
}

还有简单的pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<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>com.test</groupId>
<artifactId>crossjavafx</artifactId>
<version>0.1.0-SNAPSHOT</version>

<name>${project.artifactId}</name>
<description>${project.artifactId}</description>

<properties>
<java.version>1.8</java.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

我使用 mvn 在 Ubuntu 16.04 上构建了它:

 ./java -version
openjdk version "1.8.0_222"
OpenJDK Runtime Environment (build 1.8.0_222-8u222-b10-1ubuntu1~16.04.1-b10)
OpenJDK 64-Bit Server VM (build 25.222-b10, mixed mode)

我还安装了 openjfx 和 libopenjfx 软件包:

libopenjfx-java/xenial,xenial,now 8u60-b27-4 all [installed]
libopenjfx-jni/xenial,now 8u60-b27-4 amd64 [installed,automatic]
openjfx/xenial,now 8u60-b27-4 amd64 [installed]

应用程序已成功构建,但无法启动。该进程在打印“Hello from Viewer”之前挂起。我开始它:

/usr/lib/jvm/java-8-openjdk-amd64/bin/java -cp crossjavafx-0.1.0-SNAPSHOT.jar crossjavafx.Viewer

即使从同一个 JAR 调用其类,我也可以以相同的方式启动非 javafx 应用程序构建,所以我认为我的 JavaFX 安装有问题。

我还尝试使用 Java 8 Oracle SDK 构建并运行它,得到了相同的结果。我的 JavaFX 安装中是否缺少任何我忘记的内容?

编辑

我已经构建并尝试使用 Java 8 Oracle 运行它,打印堆栈跟踪。我得到:

Hello from Viewer
Framebuffer object format is unsupported by the video hardware. (GL_FRAMEBUFFER_UNSUPPORTED)(FBO - 820)
Error creating framebuffer object with TexID 1)
[VGL] ERROR: OpenGL error 0x0502
[VGL] ERROR: in readPixels--
[VGL] 475: Could not Read Pixels

最佳答案

我遇到了类似的问题,并添加了以下参数作为 VM 参数“-Djavafx.platform=monocle -Dmonocle.platform=X11 -Dembedded=monocle”。当我使用 eclipse 时,我将其添加到运行配置运行 -> 运行配置... Run Configurations in eclipse

我在 https://wiki.openjdk.java.net/display/OpenJFX/Building+the+OpenJFX+embedded+stack+for+Linux+desktop 找到了这个提示

关于java - 为什么使用 OpenJDK+openjfx 的 JavaFX 应用程序在 Ubuntu 16 上失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58821631/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com