Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java IntelliJ Idea 2019.2 gradle jar缺少IntelliJ GUI表单数据_Java_Swing_Gradle_Intellij Idea - Fatal编程技术网

Java IntelliJ Idea 2019.2 gradle jar缺少IntelliJ GUI表单数据

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文件中。 我还将

我正在开发一个基于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添加到依赖项中,以便它能够正确链接。 在
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