【发布时间】:2014-05-01 18:10:51
【问题描述】:
我一直在寻找几天,但我没有找到一个明确的答案。我将如何编写一个小 jar 文件来提供给我的用户,该用户只需从 URL(其中包含多个类)获取 jar 文件并运行它。如果最终用户在任何时候都没有真正在他的计算机上拥有 jar,那就太好了。我这样做是作为一项小型安全措施。
【问题讨论】:
我一直在寻找几天,但我没有找到一个明确的答案。我将如何编写一个小 jar 文件来提供给我的用户,该用户只需从 URL(其中包含多个类)获取 jar 文件并运行它。如果最终用户在任何时候都没有真正在他的计算机上拥有 jar,那就太好了。我这样做是作为一项小型安全措施。
【问题讨论】:
如果用户要执行您的代码,它必须存在于他们的计算机上。这就是它的工作方式。
如果您想重写代码以在服务器上执行大部分工作,那将是打击盗版的一种机制,但这确实意味着您需要复制所有输入验证检查:执行一次在客户端,合理的响应时间,并再次在您自己的服务器上,以确保您的用户不会试图不当使用您的服务。
另一种机制是在您的服务器上运行 VNC 服务器,并要求您的用户进入 VNC。该软件完全在您的服务器上执行。不过,这是一个严厉的步骤,您的用户可能会讨厌。
【讨论】:
我不确定你会怎么做,但我知道使用 Maven 可以让你在没有本地 jar 的情况下访问东西。您只需指定 URL。所以也许看看他们是如何做他们的存储库的。
【讨论】:
另一种选择是加密您的 JAR 文件并编写一个自定义类加载器,在客户端机器上动态解密它。这不会阻止高级用户将调试器附加到 JVM 并检查您的字节码,但会阻止普通用户访问您的代码。
【讨论】: