我从互联网上下载文件(How to download and save a file from Internet using Java?),但我不想在运行之前创建文件。所以我的想法是:我将文件下载到文件new File("myJar.jar");
中,而不是执行Runtime.getRuntime().exec("java -jar myJar.jar");
< =(我需要创建文件...)我将解压缩jar并获取每个类的字节并将它们放入类加载器以运行该程序。这是一个好方法还是你会推荐什么? Java: How to load Class stored as byte[] into the JVM?< =如果我从jar中加载每个类,这会运行程序吗?
编辑: 这应该是为了让破解者很难获得文件。
编辑2: 如果它不是一个罐子而是一个.exe,怎么可能呢?当我将jar编译为本机代码,然后将其编译为.exe时,需要这样做,因此破解程序无法从jvm中获取代码。
答案 0 :(得分:0)
尝试使用为您完成工作的URLClassLoader
。您稍后可以使用findResource(...)
方法查找META-INF/manifest.mf
,阅读它,找出主要类find it并调用其main(...)
方法,执行与您正在执行的操作完全相同的操作与java -jar ...