Java IntelliJ Idea 2019.2 gradle jar缺少IntelliJ GUI表单数据
我正在开发一个基于Gradle的JavaSwing应用程序,我还使用IntellijGUI表单内置Swing设计器。我决定测试Gradle创建的可执行jar是否正常工作,并且构建的应用程序是否没有看到IntelliJ designer创建的Swing组件 我尝试了来自的建议,但jar仍然没有看到这些Swing组件。我正在使用IntelliJ Idea 2019.2。我已经从IntelliJ lib文件夹中复制了“forms\u rt.jar”,并将其链接到build.gradle文件中。 我还将IntellijGUI生成设置为Java代码,而不是设置中的二进制代码 我在我的项目中创建了一个“lib”目录,并在那里复制了“forms\u rt”jar,并将其重命名为“forms\u rt-13.1.1.jar”。(我没有为了测试而更改版本号,尽管我认为应该是19.2) 我还将jar添加到依赖项中,以便它能够正确链接。 在Java IntelliJ Idea 2019.2 gradle jar缺少IntelliJ GUI表单数据,java,swing,gradle,intellij-idea,Java,Swing,Gradle,Intellij Idea,我正在开发一个基于Gradle的JavaSwing应用程序,我还使用IntellijGUI表单内置Swing设计器。我决定测试Gradle创建的可执行jar是否正常工作,并且构建的应用程序是否没有看到IntelliJ designer创建的Swing组件 我尝试了来自的建议,但jar仍然没有看到这些Swing组件。我正在使用IntelliJ Idea 2019.2。我已经从IntelliJ lib文件夹中复制了“forms\u rt.jar”,并将其链接到build.gradle文件中。 我还将
Build、Execution、Deployment->Build tools->Gradle的IntelliJ设置中,“Build and run using”和“run tests using”被设置为IntelliJ IDEA,否则不会生成Java代码,而是二进制代码
在测试了我在Stack和JetBrains论坛上找到的每个建议之后,我仍然无法让它正常运行
"C:\Program Files\Java\jdk1.8.0_211\bin\java.exe" -Dfile.encoding=windows-1252 -jar C:\Projects\Java\aghwen\build\libs\aghwen-5.0.jar
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: com/intellij/uiDesigner/core/GridLayoutManager
at aghwen.ChoiceWindowForm.$$$setupUI$$$(ChoiceWindowForm.java:57)
at aghwen.ChoiceWindowForm.<init>(ChoiceWindowForm.java:45)
at aghwen.Main.lambda$main$0(Main.java:8)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: java.lang.ClassNotFoundException: com.intellij.uiDesigner.core.GridLayoutManager
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 17 more
“C:\Program Files\Java\jdk1.8.0\u 211\bin\Java.exe”-Dfile.encoding=windows-1252-jar C:\Projects\Java\aghwen\build\libs\aghwen-5.0.jar
线程“AWT-EventQueue-0”java.lang.NoClassDefFoundError中出现异常:com/intellij/uiDesigner/core/GridLayoutManager
在aghwen.ChoiceWindowForm.$$$setupUI$$$(ChoiceWindowForm.java:57)
在aghwen.ChoiceWindowForm。(ChoiceWindowForm.java:45)
在aghwen.Main.lambda$Main$0(Main.java:8)
在java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)中
位于java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
在java.awt.EventQueue.access$500(EventQueue.java:97)
在java.awt.EventQueue$3.run(EventQueue.java:709)
在java.awt.EventQueue$3.run(EventQueue.java:703)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
位于java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
位于java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
在java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)中
位于java.awt.EventDispatchThread.PumpeEventsforHierarchy(EventDispatchThread.java:105)
位于java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
位于java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
在java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
原因:java.lang.ClassNotFoundException:com.intellij.uiDesigner.core.GridLayoutManager
位于java.net.URLClassLoader.findClass(URLClassLoader.java:382)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:424)
位于sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 还有17个
jar没有或看不到生成的Swing GUI并抛出错误。有趣的是,如果我从build.gradle中删除'flatDir dirs:${rootDir}/lib'和'compile name:'forms_rt',version:'13.1.1'行,就不会创建jar,因为gradle没有看到GUI组件。这意味着Gradle知道表单库了解它,但它不知何故没有在创建的jar中链接它
回答:
我在这里找到了答案:
看起来我的jar没有包含运行创建的Swing组件所需的表单,\u rt.jar,从上面的链接复制的“fatJar”任务使其工作正常
"C:\Program Files\Java\jdk1.8.0_211\bin\java.exe" -Dfile.encoding=windows-1252 -jar C:\Projects\Java\aghwen\build\libs\aghwen-5.0.jar
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: com/intellij/uiDesigner/core/GridLayoutManager
at aghwen.ChoiceWindowForm.$$$setupUI$$$(ChoiceWindowForm.java:57)
at aghwen.ChoiceWindowForm.<init>(ChoiceWindowForm.java:45)
at aghwen.Main.lambda$main$0(Main.java:8)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: java.lang.ClassNotFoundException: com.intellij.uiDesigner.core.GridLayoutManager
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 17 more