java - 使用 JavaFX 内容部署 Swing 应用程序

标签 java swing ant intellij-idea javafx

我已经编写了一个使用 JavaFX 组件的 Swing 应用程序,我想将其打包以进行分发,但我一直无法弄清楚。

在 Intellij Idea 中,我选择了 File-> Project Structure-> artifacts 并选择了“from module”。接下来,我选择了 Build-> Generate Ant Build 并生成了一些 Ant 文件。我修改了 is 行:

<fx:application id="JReader_id" name="JReader" mainClass="com.facetoe.jreader.JReader"/>

描述here到:

<fx:application id="JReader_id" name="JReader" mainClass="com.facetoe.jreader.JReader" toolkit="swing"/>

表示它是一个 Swing 应用程序。最后,我在 Intellij 中使用 Build-> Build Artifacts 构建了 .jar,并且 .jar 的创建没有错误。但是,当我尝试运行 .jar 时,出现此错误:

    ⇒ java -jar out/artifacts/JReader/JReader.jar
    java.lang.IllegalAccessException: Class com.javafx.main.Main can not access a member of class com.facetoe.jreader.JReader with modifiers "public static"
    at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:109)
    at java.lang.reflect.AccessibleObject.slowCheckMemberAccess(AccessibleObject.java:261)
    at java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:253)
    at java.lang.reflect.Method.invoke(Method.java:599)
    at com.javafx.main.Main.launchApp(Main.java:714)
    at com.javafx.main.Main.main(Main.java:871)

看起来它由于某种原因无法运行 main 方法...有人知道我该如何解决这个问题吗?

最佳答案

好吧,我明白了。包含我的方法的类不是public,所以我将它设为public,现在一切正常。

关于java - 使用 JavaFX 内容部署 Swing 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19263615/

相关文章:

java - 延迟 Kafka Streams 消费

java - 共享Spock模拟验证

java - 数据添加到数据库后如何清除JFrame中选定的用户输入组件

java - 如何在 JLayer 覆盖的 JComponent 上激活工具提示?

java - 编译成功,在 ant java 任务中出现 NoClassDefFoundError

tomcat - 通过批处理文件运行 ant 命令

java - 如何设置 ImageButton 大小以及按下按钮时将其显示在添加的图像上

java - MySQL 中大量的 "SET autocommit=0/1"查询

java - 在 Swing 中显示多个按钮

xcode - 用于使用最新 sdk 的 xcodebuild 参数。