Java 在批处理文件中下载带有wget的JDK安装程序

Java 在批处理文件中下载带有wget的JDK安装程序,java,eclipse,batch-file,command-line-interface,wget,Java,Eclipse,Batch File,Command Line Interface,Wget,正如标题中所述,我正试图使用以下命令以批处理文件的形式下载jdk安装程序: wget --verbose --show-progress --referer="https://download.oracle.com" --no-cookies --no-check-certificate --header "Cookie: oraclelicense=accept-securebackup-cookie" "https://download.or

正如标题中所述,我正试图使用以下命令以批处理文件的形式下载jdk安装程序:

wget --verbose --show-progress --referer="https://download.oracle.com" --no-cookies --no-check-certificate --header "Cookie: oraclelicense=accept-securebackup-cookie" "https://download.oracle.com/otn-pub/java/jdk/15.0.1%2B9/51f4f36ad4ef43e39d0dfdbaf6549e32/jdk-15.0.1_windows-x64_bin.exe"
我从批处理文件中获得此错误:

--2021-01-05 15:12:30--  https://download.oracle.com/otn-pub/java/jdk/15.0.1B9/51f4f36ad4ef43e39d0dfdbaf6549e32/jdk-15.0.1_windows-x64_bin.exe
Resolving download.oracle.com (download.oracle.com)... 23.212.156.99
Connecting to download.oracle.com (download.oracle.com)|23.212.156.99|:443... connected.
HTTP request sent, awaiting response... 302 Moved Temporarily
Location: https://edelivery.oracle.com/otn-pub/java/jdk/15.0.1B9/51f4f36ad4ef43e39d0dfdbaf6549e32/jdk-15.0.1_windows-x64_bin.exe [following]
--2021-01-05 15:12:30--  https://edelivery.oracle.com/otn-pub/java/jdk/15.0.1B9/51f4f36ad4ef43e39d0dfdbaf6549e32/jdk-15.0.1_windows-x64_bin.exe
Resolving edelivery.oracle.com (edelivery.oracle.com)... 2a02:26f0:2b00:3b4::366, 2a02:26f0:2b00:390::366, 104.124.198.35
Connecting to edelivery.oracle.com (edelivery.oracle.com)|2a02:26f0:2b00:3b4::366|:443... connected.
HTTP request sent, awaiting response... 302 Moved Temporarily
Location: https://download.oracle.com/otn-pub/java/jdk/15.0.1B9/51f4f36ad4ef43e39d0dfdbaf6549e32/jdk-15.0.1_windows-x64_bin.exe?AuthParam=1609856056_4a223d45cbb97da535473401552470f5 [following]
--2021-01-05 15:12:31--  https://download.oracle.com/otn-pub/java/jdk/15.0.1B9/51f4f36ad4ef43e39d0dfdbaf6549e32/jdk-15.0.1_windows-x64_bin.exe?AuthParam=1609856056_4a223d45cbb97da535473401552470f5
Connecting to download.oracle.com (download.oracle.com)|23.212.156.99|:443... connected.
HTTP request sent, awaiting response... 404 Not Found
2021-01-05 15:12:32 ERROR 404: Not Found.
但是 当我在CLI中直接使用此命令行(更改wget.exe文件所在的CD)时,它会正确下载安装程序,如下所示:

--2021-01-05 15:19:43--  https://download.oracle.com/otn-pub/java/jdk/15.0.1%2B9/51f4f36ad4ef43e39d0dfdbaf6549e32/jdk-15.0.1_windows-x64_bin.exe
Resolving download.oracle.com (download.oracle.com)... 23.212.156.99
Connecting to download.oracle.com (download.oracle.com)|23.212.156.99|:443... connected.
HTTP request sent, awaiting response... 302 Moved Temporarily
Location: https://edelivery.oracle.com/otn-pub/java/jdk/15.0.1%2B9/51f4f36ad4ef43e39d0dfdbaf6549e32/jdk-15.0.1_windows-x64_bin.exe [following]
--2021-01-05 15:19:43--  https://edelivery.oracle.com/otn-pub/java/jdk/15.0.1%2B9/51f4f36ad4ef43e39d0dfdbaf6549e32/jdk-15.0.1_windows-x64_bin.exe
Resolving edelivery.oracle.com (edelivery.oracle.com)... 2a02:26f0:2b00:390::366, 2a02:26f0:2b00:3b4::366, 104.126.235.187
Connecting to edelivery.oracle.com (edelivery.oracle.com)|2a02:26f0:2b00:390::366|:443... connected.
HTTP request sent, awaiting response... 302 Moved Temporarily
Location: https://download.oracle.com/otn-pub/java/jdk/15.0.1+9/51f4f36ad4ef43e39d0dfdbaf6549e32/jdk-15.0.1_windows-x64_bin.exe?AuthParam=1609856489_c1f5f2310bf675762561de7d78160532 [following]
--2021-01-05 15:19:44--  https://download.oracle.com/otn-pub/java/jdk/15.0.1+9/51f4f36ad4ef43e39d0dfdbaf6549e32/jdk-15.0.1_windows-x64_bin.exe?AuthParam=1609856489_c1f5f2310bf675762561de7d78160532
Connecting to download.oracle.com (download.oracle.com)|23.212.156.99|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 167452312 (160M) [application/octet-stream]
Saving to: 'jdk-15.0.1_windows-x64_bin.exe'
我真的需要使用这个命令一个脚本


如果有人知道批处理文件和CLI之间可能出现了什么问题,我将非常感谢您的帮助。

比较您输出的URL。
CLI URL包含一个百分号
%2B
,作为URL编码字母的一部分。但是批处理脚本输出缺少此百分号,因此导致错误的URL

  • CLI输出
    15.0.1%2B9
  • 批量输出
    15.0.1B9
因为批处理使用百分号
%
来标识变量,所以如果您想按字面意思使用它,就必须对其进行转义


因此,请尝试在批处理脚本中使用两个百分号
%%
。这应该会导致在你的URL中出现一个(正确的)单个
%

以防你不知道。它起作用了,我没有想到这个特定的%字符!谢谢你指出这一点,谢谢你的帮助!:)