gpt4 book ai didi

java - 使用 Java 从 URL 下载 EXE 文件出现兼容性错误

转载 作者:行者123 更新时间:2023-12-01 09:31:14 27 4
gpt4 key购买 nike

我正在尝试从我的网站下载 EXE 文件。举个例子,我前往 rarlab 的网站,下载了他们的 64 位 WinRAR 版本的全新安装(我们都知道那是什么。)

无论如何,我将 64 位“安装程序”exe 文件上传到我网站的根文件夹,可以轻松下载该文件(用于测试目的)。通过任何浏览器访问我的网站,我可以成功下载“安装程序”来自 rarlabs 的文件并像任何其他 EXE 文件一样执行它。

现在,这是令人困惑的部分,看在上帝的份上,我无法弄清楚。使用这个简单的代码(我从其他 Stack Overflow 答案中删除了它),我可以从给定的 URL 下载任何 EXE 文件。

代码...

public static void downloadEXE(URL url, String file) throws IOException {
InputStream in = url.openStream();
FileOutputStream fos = new FileOutputStream(new File(file));

int length = -1;
byte[] buffer = new byte[1024];// buffer for portion of data from
// connection
while ((length = in.read(buffer)) > -1) {
fos.write(buffer, 0, length);
}
fos.close();
in.close();
}

URL 和 FILE 参数在哪里...

URL url = new URL("http://www.website.com/winrar-x64-540.exe");
String file = "c:\\Users\\..\\Documents\\winrar-x64-540.exe";

是的,这会将文件从我的网站下载到我的文档文件夹中,没有任何错误,但是当我运行它时,我收到此错误...

LINK TO ERROR IMAGE

不止于此,我决定尝试使用同样的代码从官方网站 rarlabs 下载相同的 64 位 EXE“安装”文件异常(exception)。你可以相信我的话,我使用了正确的 URL,因为这次我不仅使用此代码下载了 EXE 文件,而且还能够成功运行它!

让我怀疑我的网站有问题,而不是 EXE 文件有问题?我还应该提到一个非常重要的发现,我发现它很可能会有所帮助。我决定将工作 EXE 文件的属性与损坏的患病文件进行比较。正常的大小为 2.07 MB,而损坏的大小高达 375 字节!损坏的 exe 与工作 exe 的属性根本不匹配。

看到两个文件的比较让我认为我的网站没有问题,因为我可以通过任何浏览器成功下载并启动我的文件,但代码有错误。

如果您需要解决问题,请向我提出任何问题。让我知道哪些地方需要具体说明。谢谢大家。 :)

最佳答案

您可能没有下载任何有用的东西,也许服务器只是拒绝您的请求并将其存储为文件?

使用java代码下载的文件大小是多少?它与您期望的文件相同吗?

尝试用记事本打开它,看看它是否真的是一个exe(一些随机的ASCII符号,而不是HTML,你就会知道其中的区别)。

如果服务器拒绝您的请求并返回 HTML,您可能需要在请求中设置某些内容(例如 cookies - 您可能需要登录才能获取该内容、用户代理属性、其他内容)尝试看看如何通信看起来就像从浏览器完成时一样,运行 firebug 或其他东西,激活网络选项卡并查看请求的样子。

关于java - 使用 Java 从 URL 下载 EXE 文件出现兼容性错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39383664/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com