如何让客户看不到jar包中的源码?

一个java项目,打成jar包后,一开始使用bat程序运行项目,bat中是直接运行jar包的脚本。由于客户那边可以看到jar包中的源码,所以现在需求变了,想删除掉jar包并且在没有jar包的情况下依然可以运行java项目,这个应该如何操作,请各位大神指个方向!

5个回答

用exe4j这类工具把jar包打包成exe文件试下

weixin_44442000
杨沛东 exe4j工具试过了,生成的exe程序报错,但是jar可以正常运行,除了exe4j还有类似的工具吗?
一年多之前 回复

用exe4j这类工具

如果要将jar打包成exe的话,需要把jdk一起打包进去,不然客户那边就得要求安装jdk什么的

xsb_20171227
今天是星期五 这个就不清楚了
一年多之前 回复
weixin_44442000
杨沛东 那项目中的图片地址应该怎么去设置,生成的exe报错,应该是图片找不到
一年多之前 回复

自定义类加载器,自己的类的二进制class文件进行加密,只能用自己的类加载器加载。

首先你的问题就好比,客户要做一个的网站,但是客户不要有任何程序文件在这个网站里,或者说单纯只是你们不愿意把源码给客户怕客户反编译。
那么以你的问题来说,单纯的想删除掉jar包并且在没有jar包的情况下依然可以运行java项目,这个是不可能的事。没有程序文件,你让程序跑什么?
如果是前面打比方的第一点,唯一的办法是所有内容放在第三方的服务器里,然后自己的程序只做转向或者引用(这块类似微信小程序或者别的什么形式。)
如果是第二点,exe4j将所有内容打进exe。

aiyoyoyo
甲大赋 我记得exe4j打包,使用的资源路径需要配置成classpath形式的内部可访问路径。否则程序里相对路径的引用是不可以访问的。
一年多之前 回复
weixin_44442000
杨沛东 我理解你的意思,起初是想把jar包打成exe程序,但是试了好几天,打出的exe程序打开后报错,jar包可以正常运行,所以我就想着是不是exe4j工具没用好,但是按照网上的流程从来没成功过,我就看看还有没有其它类似的打包工具。我看了报错信息原因应该是项目中的照片位置找不到,请问用这种方式打包的话,照片位置在项目中应该如何处理?
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问