今天早上我遇到了一个令人讨厌的问题,我花了几个小时试图追查它。我继承了两个 NetBeans 项目的一些代码,A
和 B
. 它们都构建并成功运行;没有复杂的 Ant 构建任务;只是默认的 IDE 设置。
这两个项目共享大量代码,因此我将其分解为新的第三个项目 Common
.在解析引用等之后,NetBeans 不会报告任何错误。一切似乎都很好。我建立 Common
项目顺利。然后事情就变得奇怪了。
突然,当我尝试构建项目时 A
和 B
,它们编译就好了——但是在构建结束时,每个都以相同的错误中断:
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 的副本放入 ./lib
默认情况下所有 Java 项目的文件夹。我尝试制作全新的项目并手动引入资源,但无济于事。我很困惑。
我在这里发帖是希望:
- 也许有人可以让我了解一下这首先是如何发生的以及如何避免它。
- 也许有人可以告诉我为什么只有某些项目会失败,即使所有项目的
project.properties
完全相同文件或全新。 - 以后遇到这个问题的人会过得更好。
最佳答案
我能在网上找到的最接近的修复方法是 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 将 添加 一个反斜杠来转义 :
,但只会删除它在此处找到的任何其他单反斜杠。
我仍然不知道为什么会发生这种情况,或者为什么它似乎只影响某些项目。
关于netbeans - 为什么 NetBeans 无法为我的某些项目找到 CopyLibs?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16973377/