程序的发布与函数和数据的封装

shijies 2017-11-29 05:46:55
1、关于Java程序的运行
在Window环境Java程序打包成exe程序更方便使用,请问是否建议将制作的Java程序打包成exe程序?
2、关于函数和数据的存储和调用
将函数和数据封装到.class文件中,还是封装到dll文件中?
...全文
155 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
kampoo 2017-12-03
  • 打赏
  • 举报
回复
注意防止反编译的关键步骤:重写ClassLoader,所有.jar文件都是加密的,JNI唤起ClassLoader解密.jar文件,然后运行 所以.class放的地方是第二步的问题,关键之前要对.class文件进行加密。另外补充一下,ClassLoader也做一次加密,然后JNI先解密后运行。 另外JNI也可以再做一些加密措施~~在反编译问题上还是有很多工作需要做的
引用 2 楼 shijies 的回复:
如果把.class文件按资源文件存入dll中,仍然可以从dll中导出.class文件,不能起反编译的作用。
shijies 2017-12-03
  • 打赏
  • 举报
回复
如果把.class文件按资源文件存入dll中,仍然可以从dll中导出.class文件,不能起反编译的作用。
kampoo 2017-12-02
  • 打赏
  • 举报
回复
1. 打包成exe略微方便些。打包框架一般是做一个外壳,利用JNI+ClassLoader来运行java的入口类,但无法脱离JRE运行。还有另外一种直接将java编译成本地代码的exe,能够脱离JRE运行,但对JDK库的使用有一定限制,稳定性不太清楚,尝试过但没有发布给客户。 2. 使用外壳方法的话,其实所有的方法和数据还是在.class中的,没有在dll中。放在dll中也是可以的,但需要通过JNI访问。 BTW,以前做过类似的事情,主要是防止合作方反编译java代码,修改了一个外壳程序,重写ClassLoader,所有.jar文件都是加密的,JNI唤起ClassLoader解密.jar文件,然后运行。对反射有影响,反射类如何加载会有些麻烦。运行效果稳定,开始还这么用,后来项目结算之后,再有些补丁就懒得这么麻烦了,直接发布了jar包。

58,454

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧