【发布时间】:2019-08-03 10:05:28
【问题描述】:
我为我的 java 程序创建了一个自动更新程序。但在下载结束时,它会将文件下载到桌面。我可以得到程序文件在哪里并更新它?
这是我的代码:
@Override
public void run() {
if(!Debug) {
try {
FileUtils.copyURLToFile(new URL("fileurl"), new File(System.getenv("APPDATA") + "\\file.zip"));
UnzipUtility unzip = new UnzipUtility();
File deskfile = new File(System.getProperty("user.home") + "/Desktop/file.jar");
if(deskfile.exists()) {
deskfile.delete();
}
unzip.unzip(System.getenv("APPDATA") + "\\file.zip", System.getProperty("user.home") + "/Desktop");
File file = new File(System.getenv("APPDATA") + "\\file.zip");
file.delete();
Successfull = true;
} catch (IOException e) {
Successfull = false;
}
try {
Updater.sleep(0L);
}catch(Exception e) {
e.printStackTrace();
}
}
}
这是我的外部更新程序 jar 中的代码,我需要找到主程序目录我该怎么办?
例如,如果主程序位于桌面以外的任何其他目录中,则更新将始终将其下载到桌面...我需要它来更改执行命令以启动更新程序的文件
【问题讨论】:
-
"我可以..." - 由于 Java 是图灵完备的,因此答案是“很可能是的”。
-
某些程序(Java、Gradle 等)需要为其主目录设置环境变量。这会是一个解决方案吗?