0

我在 NetBeans7.2 中有一个简单的 Java 项目,当我尝试清理/构建时它失败了:

Building jar: D:\MEUS PROJETOS\_Workspace\JavaWorkspace\Mina\dist\Mina.jar
To run this application from the command line without Ant, try:
java -jar "D:\MEUS PROJETOS\_Workspace\JavaWorkspace\Mina\dist\Mina.jar"
Realizando o ofuscamento do código
Obfuscating dist/Mina.jar...
Created dir: D:\MEUS PROJETOS\_Workspace\JavaWorkspace\Mina\build\obfuscated
ProGuard, version 4.8
Reading program jar [D:\MEUS PROJETOS\_Workspace\JavaWorkspace\Mina\dist\Mina.jar]
Reading library jar [C:\Program Files\Java\jdk1.7.0\jre\lib\ext\jna.jar]
Reading library jar [C:\Program Files\Java\jdk1.7.0\jre\lib\ext\mysql-connector-java-5.1.21-bin.jar]
Reading library jar [C:\Program Files\Java\jre7\lib\rt.jar]
Reading library jar [C:\Library\Java\Home\lib\rt.jar]
D:\MEUS PROJETOS\_Workspace\JavaWorkspace\Mina\build.xml:28: Can't read [C:\Library\Java\Home\lib\rt.jar] (No such file or directory)
BUILD FAILED (total time: 5 seconds)

这很奇怪,因为我的项目库中没有调用 [C:\Library\Java\Home\lib\rt.jar](我的计算机中根本没有“C:\Library”)!

另外,如果已经从“C:\Program Files\Java\jre7\lib\rt.jar”调用了“rt.jar”,为什么还要再次调用它?

我完全不知道这是从哪里来的,也不知道我可以在哪里更改它(因为它不在我项目的库列表中)。

提前致谢!原谅我的英语不好...

已编辑:我刚刚发现编译(构建)应用程序时不会发生此问题,但是当 NetBeans 的 ProGuard4.8 插件尝试混淆时!

4

1 回答 1

1

我想“简单的Java项目”是指“文件”菜单中的NetBeans“新建项目...”操作中的“Java”类别中的“Java应用程序”项目。

Netbeans 默认构建系统Ant。Ant 是编译、打包和运行项目源代码的程序。

如果在项目属性窗口的任何地方都找不到字符串“C:\Library\Java\Home\lib\rt.jar” ,那么下一个要查找的位置是项目根目录下的 nb 文件夹内的属性文件(从“项目”视图更改为“文件”视图)或 build{-impl}.xml 文件。

当您从右键单击“项目”视图中的项目图标单击“清理和构建”操作时,蚂蚁读取 build.xml 文件(导入 build-impl.xml 文件),找到清理和 jar目标,计算成功运行上述目标所需的所有相关目标和属性,并最终运行计算的目标序列。

但是,如果是通过 NetBeans“新建项目”操作创建的项目,则会自动生成 build.xml 和 nb-project,并且从 GUI 更改项目属性有效地更改 build-impl.xml 和其他一些文件的部分. 如果您没有编辑自动生成的文件,那不是要寻找的地方。

接下来要考虑是否是 Netbeans 缓存问题,请参阅此处了解它的位置,输入该目录并删除其内容(但我不能保证它会有所帮助)。

有趣的是,rt.jar 通常位于 JRE_HOME/lib 目录中,其中 JRE_HOME 是某些JRE安装的完整路径,因此可能会导致您将 JRE_HOME环境变量设置为此(不存在的)位置的结论。

这一切都只是猜测,但其中的一些内容应该对您有所帮助。请反馈。

于 2012-10-22T19:48:50.417 回答