今天早上我遇到了一个讨厌的问题,花了我几个小时试图追查它。我已经使用两个NetBeans项目A
和B
继承了一些代码。 他们都建立并成功运行;没有复杂的Ant构建任务;只是默认的IDE设置。
这两个项目共享大量代码,因此我将其分解为一个新的第三个项目Common
。解析引用等后,NetBeans报告没有错误。一切似乎都很好。我毫不费力地构建了Common
项目。事情变得奇怪。
突然,当我尝试构建项目A
和B
时,他们编译就好了 - 但是在 build 的末尾,每一个都打破了同样的错误:
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)
所有.class
个文件都显示在build/classes
中,而其他所有文件似乎都顺利进行,但没有任何文件进入dist
文件夹。因此,我开始搜索CopyLibs
问题。
人们建议确保在org-netbeans-modules-java-j2seproject-copylibstask.jar
文件(它是)中正确引用了project.properties
,并且在<userhome>/.netbeans/version/build.properties
文件中也是如此(它是)。库 存在于它所引用的所有位置;事实上,NetBeans似乎默认将此jar的副本放入所有Java项目的./lib
文件夹中。我尝试制作全新的项目并手动提供资源,但无济于事。我很神秘。
我在这里寄希望于:
project.properties
文件或者是全新的。答案 0 :(得分:24)
我在网上找到的最接近的修补程序是this link,其中只包含部分解决方案。按照该帖子中的说明,不会解决问题,因为它遗漏了一些重要的东西。这是我最终偶然发现的解决方案。
在NetBeans中,请转到此处:
Tools > Options > Miscellaneous > Ant
在窗口底部,有一个标有Properties
的框。粘贴如下:
libs.CopyLibs.classpath=C\:\\Program Files\\NetBeans 7.1\\java\\ant\\extra\\org-netbeans-modules-java-j2seproject-copylibstask.jar
将NetBeans 7.1
替换为您的实际安装路径。这实际上就是它的全部!让它变得棘手的是,当您单击OK
时,NetBeans似乎会对此字段中的文本进行一些解析。具体来说,它将反斜杠视为转义,并且有时会添加反斜杠。
这就是为什么我花了这么长时间才找到:我在链接中尝试了解决方案(例如C:\Program Files\Netbeans
等),但它没有用,但后来我回到这个窗口发现了这个: C\:Program Files
等等“哦!”我想,“我输错了!我真是个傻瓜!”所以我“纠正”它到C:\
并再次尝试 - 仍然没有成功。原来NetBeans将添加反斜杠以转义:
,但只会删除它在此处找到的任何其他单反斜杠。
我仍然不知道为什么会发生这种情况,或者为什么它似乎只影响某些项目。
答案 1 :(得分:7)
我在Mac上安装了NetBeans 7.1.2,卸载了它,然后安装了7.3.1。我得到了同样的错误。以下是我必须要解决的问题:转到
NetBeans菜单&gt;偏好&gt; Java选项卡&gt;
特性
我注意到属性仍然是应用程序的旧编号,因此我必须将7.1.2更改为7.3.1,然后才能工作。
感谢您让我走上正轨!
答案 2 :(得分:0)
我的设置问题原来是在我作为库包含的项目中。它仍然具有CopyLibs-2文件夹而不是升级的CopyLibs文件夹,但是nblibraries.properties具有升级的libs.CopyLibs文件。我不知道如何触发升级,所以我做了以下事情:
这使得CopyLibs显示在我的Libraries文件夹中,这看起来有点奇怪,因为它通常像jnlp一样隐藏,但它没有设置工具&gt;的全局libs.CopyLibs.classpath。 Java&gt; Ant Properties。
花了几次尝试以正确的方式清除东西并添加它。有时它会添加,但然后显示问题,解决消息将是&#39;&#34; CopyLibs&#34;图书馆遗失物品&#39;和问题:该项目使用名为&#34; CopyLibs&#34;的类库。但是这个库的classpath项目缺失了#39;我不明白为什么整个过程如此挑剔和神奇。
我还注意到IDE已更新我的project.properties以将javac.classpath从无变为$ {libs.CopyLibs.classpath}
答案 3 :(得分:0)
背景信息:Ant属性保存在用户目录的build.properties文件中。这取决于平台,但可以通过查看nbproject / private / private.properties文件找到。然后查看user.properties.file下的路径并查看指向的文件 - 您可以看到Ant构建中使用的路径 - 以及它们是否正确。