为基于Java的应用程序实现提前编译(AOT)

为基于Java的应用程序实现提前编译(AOT),java,netbeans,desktop,rcp,Java,Netbeans,Desktop,Rcp,我们正在使用Netbeans/Eclipse的富客户机平台框架,用java开发一个基于桌面的商业应用程序。IDEs(Netbeans/Eclipse)为打包应用程序提供了很好的内置安装程序。唯一的问题是,我们的最终用户在部署时可以看到jar文件,我们的知识产权没有得到足够的保护,因为反向工程是可能的。代码混淆可以用来最小化影响,但无法避免。我们正在寻找开源解决方案/产品,这些解决方案/产品可以通过直接将应用程序转换为本机代码(类似于AOT应该做的事情)来帮助我们缓解问题 提前感谢你的帮助 -Bh

我们正在使用Netbeans/Eclipse的富客户机平台框架,用java开发一个基于桌面的商业应用程序。IDEs(Netbeans/Eclipse)为打包应用程序提供了很好的内置安装程序。唯一的问题是,我们的最终用户在部署时可以看到jar文件,我们的知识产权没有得到足够的保护,因为反向工程是可能的。代码混淆可以用来最小化影响,但无法避免。我们正在寻找开源解决方案/产品,这些解决方案/产品可以通过直接将应用程序转换为本机代码(类似于AOT应该做的事情)来帮助我们缓解问题

提前感谢你的帮助


-Bhan

这里已经讨论过了:

您可以使用我公司生产的产品,使用不包含字节码的(或Linux二进制)


通常,AOT编译器必须了解此类动态框架或容器的内部工作,特别是其类加载,否则在运行时需要原始字节码进行一致性检查和可能的JIT编译。到目前为止,我们的产品只“知道”Eclipse RCP和Apache Tomcat类加载器(当然它总是知道标准类加载器)。

除了主题之外,您是否估计了使用RCP(我猜是GPL/LGPL)和其他开源库对您自己的产品授权的影响?@Osw:Eclipse RCP使用Eclipse公共许可证(EPL)而且Netbeans平台具有CDDL和GPLv2的双许可证。正如Donal Netbeans平台正确指出的那样,许可证是双许可证,因此不是问题。但我们还需要考虑其他可预见的影响吗?如果我错了,请纠正我,但这个问题不涉及将JAR文件作为资源嵌入到可执行文件中吗?它仍然是Java字节码,对吗?问题是对于一个普通的jar文件,这些转换会起作用,但是对于像Netbeans/Eclipse这样的富客户机平台,它并没有那么简单。因此,我想知道如何处理这类申请。我想他提到了开放source@RomanticElectron没有开源AOT编译器可以满足他的需要。他还提到开发一个商业应用程序。对于非商业用途,我们有免费的许可证。@Dmitri Leskov您对jRate有何看法,这里有一个链接:@RomanticElectron我认为一个项目上一次更新是在整整七年前,除了历史之外,它在所有方面都是死的。