时间:2011-10-22 20:04:55

标签: java jar

如何在java中创建一个jar,只有一个类对jar用户可见(公共)?

我知道我可以从类的声明中省略“public”,这使得它只对那个包可见,但是如果可见性应该公开给所有的包,我怎么在带有几个包的jar中进行jar里面的类,但不是在jar之外?

4 个答案:

答案 0 :(得分:3)

答案 1 :(得分:1)

答案 2 :(得分:0)

答案 3 :(得分:0)

只是一个疯狂的想法,但您可以使用自定义类加载器来加载.jar中未被识别为其他类的文件。

例如,您可以通过加密它们并使用您自己的文件扩展名存储来对文件进行后期处理,然后通过自定义类加载器从类中用户可见的“主”类加载和解密它们。 (告诫;我自己从未试图做过这样的事情: - ))

另一种方法(如果代码库不是太大)可能是像平常一样开发你的类,在包结构上运行你的测试,并且在打包之前的最后一步是使用(perl)脚本重建你的主类通过将所有其他类作为私有静态内部类插入并重建它。使用此转换作为预打包步骤意味着您可以在一个理智的结构中进行开发,同时将实现类隐藏在jar中。