当前位置: 首页 > 知识库问答 >
问题:

为什么使用JavaFX时Java桌面应用程序需要特殊部署?

易阳云
2023-03-14

我有一个小型Java桌面应用程序,没有任何图形用户界面。我使用蚂蚁来开发、运行、构建和发布它。我没有为它创建一个jar文件。我使用一个. sh文件来启动/运行它,并在发行版中附加JRE。

现在我在上面添加了一个简单的JavaFX2GUI。我仍然可以用Ant开发、运行、构建和发布。JavaFX的Ant文件中没有特殊的目标或添加。发布后,我无法再使用现有的.sh文件运行它。我收到以下错误:

线程"main"中的异常java.lang.NoClassDefFoundError: javafx/应用程序/应用程序

如果我改为启动另一个不包含JavaFX的入口点。sh文件,可以用。

我很确定如果我使用Swing,它会以正确的方式工作。为什么JavaFX很特别?我必须使用ant或javafx的打包器来进行特殊部署吗?有什么简单的方法可以解决这个问题吗?它只是一个桌面应用程序。

我正在使用jdk/jre 1.7。0_51和linux。

我是JavaFX新手。不知道它是否值得学习。

共有2个答案

乜昆
2023-03-14

确保应用程序中包含的 JRE 在其捆绑包中提供了所需的 JavaFX 版本。最新版本的 JRE 应该可以毫无问题地带来它,如下所述:

http://www.oracle.com/technetwork/es/java/javafx/downloads/index.html

岳泉
2023-03-14

当您使用Java 7或更早版本时,JavaFX运行时jar文件默认不在类路径中。您需要将它包含在类路径中。

将jarjfxrt.jar添加到类路径;您可以在Java安装的jre\lib目录中找到它。

对于 Java 8,这将发生变化;在那里,JavaFX 缺省情况下将位于类路径中,您无需自己将 jar 添加到类路径中。

 类似资料:
  • 问题内容: 该单页应用(SPA)已经到了我们。随之而来的还有很多新功能,例如路由,客户端页面生命周期,MVC模式,MVVM模式,MV *模式等等。还有一些Javascript模式,例如AMD模式,Singleton,Facade,.. 还开发了许多SPA框架和库。我们可以在互联网上找到它的一些内容。它们是AngularJs,Reactjs,BackboneJs,DurandalJs 等等,以及许多

  • 这是基本的fxml文件: 类非常简单: 演讲者也是:

  • 使用JDeveloper 12.1.3.0.0,我创建了一个Java桌面应用程序,它使用Oracle JDBC和BC4J Oracle域库(通过项目属性->库和类路径添加它们)。在JDeveloper中,所有的东西都可以很好地编译和运行,但是我很难部署一个工作的JAR文件。这个JAR文件需要包含库,因为它将直接放置到客户端机器上。 当前失败得尝试:我已在项目属性中创建了部署配置文件.这个概要文件将

  • 所以我写了一个小应用程序,为了熟悉基础知识,我使它尽可能简单。我用Config.java文件做了一个简单的mvc应用程序,当我认为现在应用程序应该抛出一个错误时,它实际上是有效的。 这是我的pom.xml 我的配置文件只有一个视图解析器: 主文件 最后是控制器类:package com。实例演示。控制器; 一个pplication.properties 这就是整个应用程序,我记得我需要。xml或使

  • 问题内容: 我正在尝试了解如何在Spring应用程序中使用JBoss EAP6。我有一个示例OpenShift应用程序,它包含一个文件。 我找到了有关此文件的一些文档,但是我不清楚为什么以及何时应该在Spring应用程序中使用这些文件。内容如下: 为什么需要声明对模块的依赖关系?JBoss范例中的模块是什么?没有这个xml文件是否可以生存? 问题答案: 只要您的应用程序没有任何类加载问题,就不需要

  • 我想迁移到JavaFX11。我已经学习了OpenJFX的“JavaFX11入门”(https://openjfx.io/openjfx-docs/),使用OpenJDK 11.0.1和Gluon的JavaFX SDK 11.0.1(在Netbeans 10VC2上),并且已经能够使示例应用程序运行(在我看来,我应该能够很容易地将JavaFX8代码移植到JavaFX11)。 然而,这正是我无法找到方