Java 锁定Jar文件,将源文件隐藏在.Jar文件中

Java 锁定Jar文件,将源文件隐藏在.Jar文件中,java,service,executable,executable-jar,Java,Service,Executable,Executable Jar,我目前正在使用Java服务包装器。它工作得很好,我可以使用我的可执行jar将其作为服务安装,甚至在将其作为服务安装时传递VM参数 但由于这将在这里和那里部署,我想知道如何防止人们检索Jar文件中的源文件。这可能吗?我正在考虑将jar文件转换成一个.exe文件,并将其作为一个类似的服务进行安装,因为我已经发现了几个能够实现这一点的工具。但他们似乎不允许我传递VM参数 那么,有人知道我应该如何处理这件事吗?您的用户必须能够运行您的.jar文件。因此,您不能阻止他们知道正在运行的代码,同时也让他们运行

我目前正在使用Java服务包装器。它工作得很好,我可以使用我的可执行jar将其作为服务安装,甚至在将其作为服务安装时传递VM参数

但由于这将在这里和那里部署,我想知道如何防止人们检索Jar文件中的源文件。这可能吗?我正在考虑将jar文件转换成一个.exe文件,并将其作为一个类似的服务进行安装,因为我已经发现了几个能够实现这一点的工具。但他们似乎不允许我传递VM参数


那么,有人知道我应该如何处理这件事吗?

您的用户必须能够运行您的
.jar
文件。因此,您不能阻止他们知道正在运行的代码,同时也让他们运行您的代码。对于最常见的反编译和逆向工程策略,您只能努力使其难以实施

如果必须隐藏代码,以下是一些选项:

  • .jar
    文件已经阻止人们查看源代码。查看.jar,您不应该看到源
    .java
    文件(除非您特别选择包含它们)。必须包含.class文件,并且可以将它们反编译成与您的程序相当的机器可读文件,但这并不容易阅读或理解

  • 用C语言重写程序,然后在源代码上使用模糊程序,并从中编译。这是你所能锁定和隐藏的。任何看你的代码的人都会看到完全人类无法理解的胡言乱语,这种胡言乱语很难修改到可以理解的程度,只需观察程序行为并编写一个新的模仿程序就变得容易多了

  • 将jar文件转换为适用于windows的.exe文件:

  • 核选项:

    如果您拥有外星飞船/铁人套装的源代码,并且必须不惜任何代价隐藏此代码,则您需要在使用程序时删除使用此代码的用户的权利和自由。不允许单个用户近距离观察或理解您的程序,以了解它是如何运行的。第三方必须参与其中,不仅要对代码本身进行随机和模糊处理,还要对用户如何理解正在完成的任务进行感知。雇佣的流氓或恶意软件可以监控用户对程序的使用,如果检测到用户试图理解或构建代码的提示,则会导致用户触电或自毁。源代码必须具有自我意识,并在可疑行为时删除自身


    微软和XBox正在使用这些策略,它们通过编写硬件和软件来删除用户的权利和自由,如果你惹恼了母公司,它们就会自行组装。捡起那个能成为公民的人。不要让我打扰你。

    你能生成只包含*.class而不包含*.java的jar文件吗?只要源文件是jar文件的一部分,就可以从中检索它们。是否需要将它们包含到jar文件中?否则,您可能不希望包含它们。如果需要,您可以应用加密和模糊处理,从而使其更难使用。如果您对代码进行模糊处理,可能会使用户更难理解。谁告诉您我的。。。嗯。。。什么铁人套装?我现在确实看到是.class文件,而不是.java文件,没有仔细查看我的坏消息。我想如果用一个简单的文本编辑器不容易阅读,那就足够了,谢谢。