如何打包java项目?

时间:2009-09-05 11:55:07

标签: java project key

我已经创建了一个java项目,并希望将它提供给客户端,但我不想将其作为jar文件提供,因为客户端可以通过解压缩jar文件轻松查看源代码。

如何打包我的java项目,以便客户端无法查看源代码或无法更改源代码?

还有一件事,我是否可以集成一个关键功能,以便客户端只能通过首先使用我提供的密钥注册该软件来访问该软件?

其次,我可以集成另一个功能,通过该功能,软件只能通过该密钥在一台机器上运行吗?

请记住,该软件仍然应该具有跨平台功能,如果不可能,那么我如何为Debian Linux制作它,就像我在Windows上制作它一样。

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:2)

到第一点。为什么不将jar文件包起来?这些是字节代码,因此客户端将无法查看源。

提供密钥。这可以做到并且有一些库允许这样做,但要小心,至少据我所知,还没有开发出一个尚未破解的DRM系统。并且大多数用户不喜欢限制他们可以做什么的软件。同样的观点适用于你的第三个问题。

答案 2 :(得分:1)

您可以执行一些简单的操作,使客户端获取源代码并强制执行每个主机(等等)许可有点困难。例如,混淆器使得对字节码文件进行逆向工程变得更加困难,并且许可证管理器支持基于您生成和提供的“密钥”的一系列限制。

问题在于,这些都不能保护您免受那些决心颠覆限制的人的侵害。例如,没有混淆器可以阻止某人确定您的代码调用许可证管理器的位置,并且一旦他们知道他们可以修改代码以破坏任何许可证检查。

如果没有锁定整个执行平台(例如,转动客户端运行调试器,读取物理设备等的能力),那么你无能为力。

更可行的策略是在您要求客户签名的软件许可中包含适当的保护措施。并且接受如果他们故意违反许可协议,您可能需要将客户告上法庭。