为什么NetBeans不能为我的某些项目找到CopyLibs?

Hen*_*ter 18 ant netbeans build

今天早上我遇到了一个令人讨厌的问题,花了我几个小时试图追查它.我用两个NetBeans项目继承了一些代码,A并且B.他们都建立并成功运作 ; 没有复杂的Ant构建任务; 只是默认的IDE设置.

这两个项目共享大量代码,因此我将其分解为一个新的第三个项目Common.解析引用等后,NetBeans报告没有错误.一切似乎都很好.我Common毫不费力地建立了这个项目.然后事情变得怪异.

突然,当我尝试建立项目AB,他们编译就好了-但在年底建立,每一个休息用了同样的错误:

Copying 1 file to C:\Projects\projectName\build
C:\Projects\projectName\nbproject\build-impl.xml:723: The following error occurred while executing this line:
C:\Projects\projectName\nbproject\build-impl.xml:543: taskdef class org.netbeans.modules.java.j2seproject.copylibstask.CopyLibs cannot be found
 using the classloader AntClassLoader[]
BUILD FAILED (total time: 3 seconds)
Run Code Online (Sandbox Code Playgroud)

所有.class文件都显示出来build/classes,其他一切似乎都很顺利,但没有任何dist文件进入文件夹.所以我开始寻找CopyLibs问题.

人们建议确保org-netbeans-modules-java-j2seproject-copylibstask.jarproject.properties文件(它是)中正确引用,并在<userhome>/.netbeans/version/build.properties文件中引用(它是).该库确实存在于它所引用的所有位置; 事实上,NetBeans似乎./lib默认将此jar的副本放入所有Java项目的文件夹中.我尝试制作全新的项目并手动提供资源,但无济于事.我很神秘.

我在这里寄希望于:

  • 也许有人可以首先让我了解一下这是如何发生的,以及如何避免它.
  • 也许有人可以告诉我为什么只有某些项目会破坏,即使所有项目都有完全相同的project.properties文件或是全新的.
  • 将来有这个问题的人会有更好的时间.

Hen*_*ter 24

我可以在网上找到的最接近的修复是这个链接,它只包含一个部分解决方案.按照该帖子中的说明无法解决问题,因为它遗漏了一些重要的内容.这是我最终偶然发现的解决方案.

在NetBeans中,转到此处:

Tools > Options > Miscellaneous > Ant
Run Code Online (Sandbox Code Playgroud)

在窗口的底部,有一个标有的方框Properties.粘贴如下:

libs.CopyLibs.classpath=C\:\\Program Files\\NetBeans 7.1\\java\\ant\\extra\\org-netbeans-modules-java-j2seproject-copylibstask.jar
Run Code Online (Sandbox Code Playgroud)

替换NetBeans 7.1为您的实际安装路径.这实际上就是它的全部!令它变得棘手的是NetBeans在您单击时似乎对此字段中的文本进行了一些解析OK.具体来说,它将反斜杠视为转义,有时也会添加反斜杠.

这就是为什么我花了这么长时间才找到:我在链接中尝试了解决方案(例如C:\Program Files\Netbeans等),但它没有用,但后来我回到这个窗口发现了这个:C\:Program Files"哦!" 我想,"我输错了!我真是个傻瓜!" 所以我"纠正"它C:\并再次尝试 - 仍然没有成功.原来NetBeans会添加一个反斜杠来逃避:,但只会删除它在这里找到的任何其他单反斜杠.

我仍然不知道为什么会发生这种情况,或者为什么它似乎只影响某些项目.


jam*_*iss 7

我在Mac上安装了NetBeans 7.1.2,卸载了它,然后安装了7.3.1.我得到了同样的错误.以下是我必须要解决的问题:转到

NetBeans菜单>首选项> Java选项卡> Ant子选项卡>属性

我注意到属性仍然有应用程序的旧数字,所以我不得不将7.1.2更改为7.3.1,然后它工作.

在此输入图像描述

谢谢你让我走上正轨!