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

scyqe7ek  于 2023-02-04  发布在  其他
关注(0)|答案(5)|浏览(153)

今天早上我遇到了一个棘手的问题,花了我几个小时试图追踪它。我继承了两个NetBeans项目AB的一些代码。* 它们都成功地构建和运行 *;没有复杂的Ant构建任务;只有默认的IDE设置。
这两个项目共享大量代码,因此我将其分解到新的第三个项目Common中。在解析引用等操作之后,NetBeans没有报告错误。一切看起来都很好。我顺利地构建了Common项目。然后事情变得很奇怪。
突然间,当我试图构建项目AB时,它们 * 编译 * 得很好--但是在 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.jarproject.properties文件中被正确引用(确实如此),在<userhome>/.netbeans/version/build.properties文件中也是如此(确实如此)。事实上,NetBeans似乎默认将这个jar的副本放置到所有Java项目的./lib文件夹中。我尝试创建全新的项目并手动引入源代码,但没有效果。
我张贴在这里的希望:

  • 也许有人能给予我一些见解这是如何发生在首位,以及如何避免它。
  • 也许有人可以告诉我为什么只有某些项目打破,即使所有的project.properties文件完全相同或全新的。
  • 将来有这个问题的人会过得更好。
h43kikqp

h43kikqp1#

我能在网上找到的最接近的解决方案是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将 * 添加 * 一个反斜杠来转义:,但将只删除它在此处找到的任何其他单个反斜杠。

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

mw3dktmi

mw3dktmi2#

我在Mac上安装了NetBeans 7.1.2,卸载了它,然后安装了7.3.1。我得到了同样的错误。下面是我必须要做的修复:转到
NetBeans菜单〉首选项〉“Java”标签〉Ant子标签〉属性
我注意到属性仍然有应用程序的旧号码,所以我不得不将7. 1. 2更改为7. 3. 1,然后它就工作了。

谢谢你让我走上正轨!

soat7uwm

soat7uwm3#

背景信息:Ant属性保存在build.properties用户目录中的www.example.com文件中。这因平台而异,但可以通过查看nbproject/private/ www.example.com文件来找到private.properties。然后查看user.properties.file下的路径,并查看指向的文件-您可以看到Ant构建中使用的路径-以及这些路径是否正确。

kkih6yb8

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}

qvk1mo1f

qvk1mo1f5#

在我的项目中,当我安装了一个更新的NetBeans时,一个私有属性必须更改。项目文件nbproject/private/private.properties以下面的行结束:

user.properties.file=C:\\Users\\Fred\\AppData\\Roaming\\NetBeans\\12.5\\build.properties

“12.5”是旧的NetBeans版本。将其更正为“16”解决了问题。

相关问题