我想使用来自IntelliJ IDEA的Maven运行一个HelloWorld JavaFX11应用程序,使用run/debug配置来调试应用程序。
我使用pom.xml和hellofx.java在IntelliJ IDEA中创建了一个Maven项目。我可以成功地构建项目并运行它,执行指定的compile
和exec:java
目标。
运行它的唯一方法是下载JavaFX运行时,并将VM选项设置为--module-path/path/to/javafx-sdk-11/lib-add-modules=JavaFX.controls
。
但是有没有办法使用从Maven下载的工件来运行它呢?正如我所认为,IntelliJIDEA可以在运行时使用Maven工件。还是我弄错了什么?
附注。我知道这个答案,但它并没有描述我想做什么。
我想我可能终于想出了解决办法。
我假设您正在使用Maven导入javafx-maven-plugin和javafx-controls依赖项,就像我试图做的那样(最终,Jona303的答案没有解决),并且您在尝试使用javafx:run运行它时遇到了问题/麻烦。
这个解决方案不需要使用--add-exports和其他东西,实际上是相当简单的。使用适当的、基于Java的main方法创建一个额外的类(我将我的类称为“Launcher”)。然后,在类中,从那里启动应用程序,如下所示:
public class Launcher {
public static void main(String[] args) {
Application.launch(App.class, args);
}
}
应用程序类
public class App extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
// app code
}
}
我很确定这个问题是由于IntelliJ试图变得“聪明”,启动一个没有main方法的应用程序,直接跳转到start方法引起的。但通过这样做,它在某种程度上避免了添加Maven依赖项,并导致它失败。当您这样做时,它会迫使IntelliJ说“好吧,我们需要maven依赖项,然后我们可以运行它”,正确地启动它(因为它不知道它是一个JavaFX项目)。但那只是猜测。我只知道它对我有用。
我花了很长时间才弄清楚这一点,但一旦我将运行配置设置为使用Launcher类而不是App类启动,所有的一切就像一个魅力一样无缝运行(甚至调试也能工作!)。
希望这对你有帮助,祝你编码愉快!:)
创建和使用运行配置 “运行配置”对话框允许您创建多个运行配置。 每个运行配置都可以启动应用程序。 可以通过从“运行”菜单中选择“运行配置”菜单项来调用“运行配置”对话框。 要为Java应用程序创建运行配置, 请从左侧的列表中选择Java Application ,然后单击New按钮。 在主选项卡中出现的对话框中指定 - 运行配置的名称。 项目名称。 主类的名称。 在参数选项卡中指定 - 零个或多个
创建和使用 Eclipse 运行配置 在运行配置(Run Configuration)对话框中可以创建多个运行配置。每个配置可以在应用中启用。 运行配置(Run Configuration)对话框可以通过 Run 菜单中选择 Run Configurations 来调用。 如果要给 Java 应用创建运行配置需要在左侧列表中选择 "Java Application" 并点击 New 按钮。 对话框
为什么在使用时会出现这个错误? 错误2014-03-03 13:31:30,283[localhost-startStop-1]错误context.grailsContextLoader-初始化应用程序时出错:创建名为“Transaction ManagerPostProcessor”的bean时出错:bean初始化失败;嵌套异常是org.springframework.beans.factory
问题内容: 由于本地网络的配置,我必须在docker运行命令中添加–dns和–dns-search选项,如下所示: 是否有一个环境变量或配置文件,可以在其中添加DNS选项,这样我就不必在每次运行容器时都键入它们? 我正在Windows主机上运行的VMware VM上运行的Ubuntu 16.04上使用docker。 谢谢。 问题答案: 您可以将这些选项添加到docker守护程序中,作为它运行的所有
创建和使用 Debug 配置 Eclipse Debug 配置类似于运行配置但它是用于在调试模式下开启应用。 打开 Debug 配置对话框步骤为:Run > Debug Configurations 。 从左侧列表中选择 "Java Application" 选项来选择要调试的 Java 代码。 对话框中的描述信息有: 调试配置的名称 项目名称 主类名 arguments(参数)选项卡的描述信息有
Intellij IDEA用不良行为把我逼疯了: 我有一个(基于Gradle的)项目,有两个用Java编写的主要类,每个类都在自己的包中。 一个叫"HelloFX" 一个叫"ImageView示例" 两者都使用JavaFX,因此需要一些特殊的“运行配置”。 为了“HelloFX” 对于“ImageViewExample” 配置是相同的,在这两种情况下(这将是很好的,不必处理一个巴洛克式复杂的文本框