今天早上我遇到了一个棘手的问题,花了我几个小时试图追踪它。我继承了两个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
文件夹。
人们建议确保org-netbeans-modules-java-j2seproject-copylibstask.jar
在project.properties
文件中被正确引用(确实如此),在<userhome>/.netbeans/version/build.properties
文件中也是如此(确实如此)。事实上,NetBeans似乎默认将这个jar的副本放置到所有Java项目的./lib
文件夹中。我尝试创建全新的项目并手动引入源代码,但没有效果。
我张贴在这里的希望:
- 也许有人能给予我一些见解这是如何发生在首位,以及如何避免它。
- 也许有人可以告诉我为什么只有某些项目打破,即使所有的
project.properties
文件完全相同或全新的。 - 将来有这个问题的人会过得更好。
5条答案
按热度按时间h43kikqp1#
我能在网上找到的最接近的解决方案是this link,它只包含了一个部分的解决方案。按照那篇文章中的说明 * 不会 * 解决问题,因为它遗漏了一些重要的东西。下面是我最终偶然发现的解决方案。
在NetBeans中,请转到:
在窗口底部有一个标记为
Properties
的框。粘贴以下内容:将
NetBeans 7.1
替换为实际的安装路径。实际上就是这样!棘手的是,当您单击OK
时,NetBeans似乎会对此字段中的文本进行一些解析。具体来说,它将反斜杠视为转义符,而且有时还会添加反斜杠。这就是为什么我花了这么长时间才发现:我尝试了链接中的解决方案(例如
C:\Program Files\Netbeans
等),它不起作用,但后来我回到这个窗口发现:C\:Program Files
等。“哦!”我想,“我只是打错了!我真是个傻瓜!”所以我将其“更正”为C:\
,然后重试--仍然没有成功。结果是NetBeans将 * 添加 * 一个反斜杠来转义:
,但将只删除它在此处找到的任何其他单个反斜杠。我仍然不知道为什么会发生这种情况,或者为什么它似乎只影响某些项目。
mw3dktmi2#
我在Mac上安装了NetBeans 7.1.2,卸载了它,然后安装了7.3.1。我得到了同样的错误。下面是我必须要做的修复:转到
NetBeans菜单〉首选项〉“Java”标签〉Ant子标签〉属性
我注意到属性仍然有应用程序的旧号码,所以我不得不将7. 1. 2更改为7. 3. 1,然后它就工作了。
谢谢你让我走上正轨!
soat7uwm3#
背景信息:Ant属性保存在build.properties用户目录中的www.example.com文件中。这因平台而异,但可以通过查看nbproject/private/ www.example.com文件来找到private.properties。然后查看user.properties.file下的路径,并查看指向的文件-您可以看到Ant构建中使用的路径-以及这些路径是否正确。
kkih6yb84#
我的安装程序的问题是在我作为库包含的一个项目中。它仍然有CopyLibs-2文件夹,而不是升级的CopyLibs文件夹,但nblibraries.properties有升级的libs.CopyLibs的东西。我不知道如何触发升级,所以我做了以下操作:
1.已删除库/复制库-2
1.右键单击“库”文件夹,然后选择“添加库”。
1.导入的复制库任务
1.添加了复制库任务库
这使得CopyLibs出现在我的Libraries文件夹中,这看起来有点奇怪,因为它通常像jnlp文件夹一样隐藏,但它在没有在Tools〉Java〉Ant Properties中设置全局libs.CopyLibs.classpath的情况下工作。
我花了几次尝试才以正确的方式清除内容并添加它。有时它会添加,但随后显示一个问题,解决消息将是““CopyLibs”库有丢失的项目“和”问题:这个项目使用了一个叫做“CopyLibs”的类库,但是这个类库的类路径项丢失了。我不明白为什么整个过程如此繁琐和神奇。
我还注意到,在提交时,IDE已经更新了我的project.properties,将javac.classpath从无更改为${libs.CopyLibs.classpath}
qvk1mo1f5#
在我的项目中,当我安装了一个更新的NetBeans时,一个私有属性必须更改。项目文件nbproject/private/private.properties以下面的行结束:
“12.5”是旧的NetBeans版本。将其更正为“16”解决了问题。