如何将IntelliJ IDEA项目导出为应用程序

时间:2018-01-12 20:08:26

标签: java intellij-idea

我正在使用IntelliJ IDEA版本2017.1.5,我想知道如何将我的Java项目导出为Windows或Mac的可运行应用程序。我正在Windows机器上开发。

我想要的是一个可以在Windows或Mac上安装然后通过点击图标运行的程序,就像打开谷歌浏览器,Microsoft Word或任何其他应用程序一样。到目前为止,我只能导出为可执行的.jar文件,但是当我尝试运行它时,我收到以下错误:

Exception in Application start method
java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:389)
        at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:328)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767)
Caused by: java.lang.RuntimeException: Exception in Application start method
        at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:917)
        at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$155(LauncherImpl.java:182)
        at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NullPointerException
        at com.sun.javafx.scene.control.skin.Utils.computeTextWidth(Utils.java:118)
        at com.sun.javafx.scene.control.skin.LabeledSkinBase.computePrefWidth(LabeledSkinBase.java:734)
        at javafx.scene.control.Control.computePrefWidth(Control.java:537)
        at javafx.scene.Parent.prefWidth(Parent.java:915)
        at javafx.scene.layout.Region.prefWidth(Region.java:1419)
        at javafx.scene.layout.Region.computeChildPrefAreaWidth(Region.java:1728)
        at javafx.scene.layout.GridPane.computePrefWidths(GridPane.java:1556)
        at javafx.scene.layout.GridPane.computePrefWidth(GridPane.java:1242)
        at javafx.scene.Parent.prefWidth(Parent.java:915)
        at javafx.scene.layout.Region.prefWidth(Region.java:1419)
        at com.sun.javafx.scene.control.skin.ScrollPaneSkin.computeScrollNodeSize(ScrollPaneSkin.java:929)
        at com.sun.javafx.scene.control.skin.ScrollPaneSkin.layoutChildren(ScrollPaneSkin.java:822)
        at javafx.scene.control.Control.layoutChildren(Control.java:578)
        at javafx.scene.Parent.layout(Parent.java:1087)
        at javafx.scene.Parent.layout(Parent.java:1093)
        at javafx.scene.Parent.layout(Parent.java:1093)
        at javafx.scene.Parent.layout(Parent.java:1093)
        at javafx.scene.Scene.doLayoutPass(Scene.java:552)
        at javafx.scene.Scene.preferredSize(Scene.java:1646)
        at javafx.scene.Scene.impl_preferredSize(Scene.java:1720)
        at javafx.stage.Window$9.invalidated(Window.java:846)
        at javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:109)
        at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:144)
        at javafx.stage.Window.setShowing(Window.java:922)
        at javafx.stage.Window.show(Window.java:937)
        at javafx.stage.Stage.show(Stage.java:259)
        at view.VisualInterface.start(VisualInterface.java:182)
        at model.Generator.start(Generator.java:57)
        at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$162(LauncherImpl.java:863)
        at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$175(PlatformImpl.java:326)
        at com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java:295)
        at java.security.AccessController.doPrivileged(Native Method)
        at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(PlatformImpl.java:294)
        at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
        at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
        at com.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:191)
        ... 1 more
Exception running application model.Generator

我还要注意,我无法通过双击Windows资源管理器中的图标来运行此.jar文件,我必须从命令行运行它,如下所示:

java -jar UPCGen.jar

我希望能够导出到Mac和Windows。因此,无论是作为runnable .jar还是.exe(以及Mac的文件扩展名)。提前感谢您的帮助。

0 个答案:

没有答案