使用链接项目的JAR而不是.class

时间:2015-07-17 11:37:30

标签: java netbeans jar

我正在使用NetBeans 8.0.2构建桌面应用程序。对于我的应用程序,我必须管理3个不同的项目:主项目和两个链接到主要项目的“工具”项目。

当我运行主项目时,它将检查其类路径中存在的JAR,以便检索Manifest文件并进行一些工作。

为了让我的应用程序正确运行,必须看到两个链接项目的JAR,但它没有,因为NetBeans处理项目的编译类而不是JAR(出于调试目的,我推测)。

我在Oracle文档中找不到任何关于它的信息,而且我唯一看起来像是通过使用另一个组件来创建一个大胖的JAR。

有没有办法告诉NetBeans“编译链接的项目并使用JAR而不是.class”文件?提前致谢

编辑:这是我用“添加项目..”选项

添加项目时的示例
  

/ C:/ Users / xxxxx / Documents / GuiceProjectsRD / xxxReaderRef / build / classes /

这是我添加JAR

的示例
  

/C:/Users/xxxxx/Documents/JavaLib/xxxReaderRef.jar

当我添加JAR时,我有“.jar”扩展名,这有助于我识别JAR,然后查看它以获取Manifest。当我添加项目时,没有JAR的路径,只有编译的类,我无法使用它。

1 个答案:

答案 0 :(得分:1)

我不会依赖罐子中的清单,因为你会遇到这类问题。

查看Typesafe Config库。它是一个小的100%纯Java库,可以与Json / Hokon配置一起使用。 而不是依赖Manifest,创建一个" reference.conf'在每个工具项目中。在您的应用程序中,创建一个' application.conf' (如果需要的话)。通过' ConfigFactory.load()'加载配置。它会在类路径上自动搜索所有可用的reference.conf和application.conf,无论是否在jar中,并将这些配置合并到一个配置中。

我在项目中使用这种方法可以插件扩展。例如,在工具A中具有类似

的配置
tool.A.class = 'my-tool-A.class'

或使用嵌套结构,如

tool {
  A {
    class = 'my-tool-A.class'
  }
}

做类似的工具B. 然后在您的应用程序中,从Config中,您可以获得一个'工具列表。配置并检测可用的工具。