我有 Java 8 和 Ubuntu 18.04。我正在使用 NetBeans,当试图制作一些程序时,它无法完成,因为缺少 JavaFX。
我从 Oracle 的站点安装了带有 NetBeans 的 Java JDK 并认为所有内容都包含在内,但显然我没有很好地检查它。
我该怎么办,我应该安装什么?我不太擅长这个,不知道问题是出在 Ubuntu 还是 Java 上。:(
我知道我们可以使用 Jayatana 为 Java Swing 应用程序启用全局菜单。但我正在寻找对JavaFX应用程序的全局菜单支持。搜索之后,我发现在 JavaFX 中使用setUseSystemMenuBar来在 Mac 中启用相同类型的行为。但它在 Ubuntu 中不起作用。
我的Java代码:
import javafx.application.*;
import javafx.scene.*;
import javafx.scene.control.*;
import javafx.scene.layout.*;
import javafx.scene.paint.*;
import javafx.stage.*;
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
BorderPane root = new BorderPane();
Scene scene = new Scene(root, 300, 250, Color.WHITE);
MenuBar menuBar = new MenuBar();
// Use system menu bar
menuBar.setUseSystemMenuBar(true);
menuBar.prefWidthProperty().bind(primaryStage.widthProperty());
root.setTop(menuBar);
Menu fileMenu = new Menu("File");
Menu webMenu = new Menu("Web");
Menu sqlMenu = …Run Code Online (Sandbox Code Playgroud) 我按照此处所述安装了 OpenJDK-11 。我跑了sudo apt install openjfx
我的Java版本:
$ java -version
openjdk version "11.0.3" 2019-04-16
OpenJDK Runtime Environment (build 11.0.3+7-Ubuntu-1ubuntu1)
OpenJDK 64-Bit Server VM (build 11.0.3+7-Ubuntu-1ubuntu1, mixed mode, sharing)
Run Code Online (Sandbox Code Playgroud)
但我仍然得到ava.lang.NoClassDefFoundError: javafx/application/Application这表明 jre 找不到 FX 类。
我尝试按照此处的答案中的说明为 ubuntu 安装 javafx,但它提到的库在安装后并未添加到我的 jdk 文件夹中。具体只添加了ant-javafx.jar。我的 ubuntu 是 16.04,我安装了 openjkd-8。
我开始在我使用 Intellij Idea ide 的 JavaFX 应用程序上工作。我的系统上安装了 Java 8,并且可以在我的系统中看到 JavaFXSceneBuilder 1.1。但正如我在 Oracle 文档中所读到的,Java 8 带有内置的场景构建器,不幸的是我无法找到它。
因此,即使我提供了 1.1 的路径,我还是在 IDE 中看到了一个页面用于我的场景构建器 下面是屏幕截图:

这是路径截图:

那么,为什么我会在那里看到那个空白的家伙,我如何安装 Intellij Idea 文档中推荐的用于创建 JavaFX 应用程序的 Scenebuilder 2.0。请让我知道。非常感谢。
我想在 ubuntu 18.04 上安装 java 8 和 javafx。
我安装openjdk-8-jdk,openjfx并openjdk-8-jre通过apt但由于世界你好应用程序的编译失败javac无法找到javafx。
$ sudo apt install openjdk-8-jdk openjfx openjdk-8-jre
$ javac -version
javac 1.8.0_191
$ cat App.java
import javafx.application.*;
import javafx.stage.*;
import javafx.scene.*;
import javafx.scene.layout.*;
public class App extends Application {
@Override
public void start(Stage primaryStage) {
Pane pane = new Pane();
Scene scene = new Scene(pane, 300, 250);
primaryStage.setTitle("Hello, World!");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args); …Run Code Online (Sandbox Code Playgroud) 感谢您花时间阅读此消息并尝试帮助我找到解决方案。非常感谢!