【问题标题】:Ant build for Intellij-IDEA GUI forms用于 Intellij-IDEA GUI 表单的 Ant 构建
【发布时间】:2010-12-29 00:57:50
【问题描述】:

我有一个使用表单的项目,它编译和运行都很好, 但是当使用 生成的 ant 编译时,它不会运行

我的 ant 文件有 java2 任务,我将所需的 jars 添加到我的 lib 文件夹中

  <property name="javac2.home" value="lib/idea"/>
  <path id="javac2.classpath">
    <pathelement location="${javac2.home}/javac2.jar"/>
    <pathelement location="${javac2.home}/jdom.jar"/>
    <pathelement location="${javac2.home}/asm.jar"/>
    <pathelement location="${javac2.home}/asm-commons.jar"/>
    <pathelement location="${javac2.home}/jgoodies-forms.jar"/>
  </path>
  <taskdef name="javac2" classname="com.intellij.ant.Javac2" classpathref="javac2.classpath"/>
  <taskdef name="instrumentIdeaExtensions" classname="com.intellij.ant.InstrumentIdeaExtensions" classpathref="javac2.classpath"/>

但是当我运行我的程序时出现以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: com/intellij/uiDesigner/core/Spacer
Caused by: java.lang.ClassNotFoundException: com.intellij.uiDesigner.core.Spacer
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248)

我注意到从 Idea 编译的版本在输出文件夹中有一些类(缺少什么),而 ant 生成的版本没有这些类。

编辑:我从下面实现了解决方案,这意味着我修改了我的 ant 构建以将 forms_rt.jar 的内容提取到我的输出文件夹

<unjar src="${javac2.home}/forms_rt.jar" dest="${webserver.output.dir}">
          <patternset>
              <include name="**/*.class"/>
          </patternset>
</unjar>

【问题讨论】:

    标签: intellij-idea


    【解决方案1】:

    您需要将来自 IDEA_HOME\redist 的 forms_rt.jar 包含到应用程序的类路径中,方法是通过清单或从该 jar 解压类并将它们与应用程序的最终 jar 打包在一起。

    当您从 IDEA 编译时,它会自动将所需的类复制到输出中(通过设置 | GUI 设计器中的选项进行控制)。

    【讨论】:

    • 谢谢,使用了拆包解决方案,效果很好
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-30
    • 2011-04-23
    • 1970-01-01
    • 2015-01-27
    • 2020-09-14
    • 1970-01-01
    相关资源
    最近更新 更多