我的客户端有一个名为CacheDownloader的类,它为我的主jar,即客户端下载解压缩更新。我有一个问题,因为它无法解压缩新客户端并在使用时替换它,所以我不得不制作一个新的jar(名为ClientUpdater)解压缩新客户端以替换旧客户端,然后打开新客户端
ClientUpdater打开客户端备份没问题。但是,CacheDownloader无法打开ClientUpdater,它会出现内存不足错误。
CacheDownloader仍会下载所有新文件并解压缩文件,所有ClientUpdater都会解压缩包含相当小客户端的小型zip文件。
以下是CacheDownloader加载ClientUpdater的方法:
Runtime.getRuntime().exec("java -jar " + getCacheDir() + "/ClientUpdater.jar");
System.exit(0);
以下是完整的错误消息 - http://gyazo.com/8105ffd4c35f5f6d4a68a770fedf8f92
希望这是足够的背景和信息,而不是冗长。我现在的问题是,我该如何解决这个问题呢?错误说我可以增加保留代码缓存,这是否有负面影响?而且我如何做到这一点,谷歌并没有真正展示如何解释它做了什么。
我对Java很陌生,所以要记住这一点。
答案 0 :(得分:2)
您可以尝试以下步骤来解决此问题。
答案 1 :(得分:0)
我知道这是RSPS。我建议您使用反射来加载客户端,因为使用 Runtime.exec 将无法在未正确配置环境变量的系统上运行。