2013-10-09 37 views
2

我已經編寫了一個使用JavaFX組件的Swing應用程序,但我想將它打包進行分發,但是我一直無法弄清楚。使用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) 

看起來它無法運行出於某種原因...沒有人有任何想法我怎麼能解決這個問題的主要方法是什麼?

回答

1

好吧我想通了。包含我的方法的類不是public,所以我做了public,現在一切正常。