Temurin-build: Java.exe рдХреЗ рдкрде рдореЗрдВ рдЪреАрдиреА рд╡рд░реНрдг "рдореВрд▓ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде" рддреНрд░реБрдЯрд┐ рдХрд╛ рдХрд╛рд░рдг рдмрдиреЗ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 27 рдЬрдире░ 2020  ┬╖  8рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: adoptium/temurin-build

рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдо рдФрд░:рд╡рд╛рд╕реНрддреБрдХрд▓рд╛:
рд╡рд┐рдВрдбреЛрдЬ10.0.18362
OpenJDK11U-jre_x64_windows_hotspot_11.0.6_10.zip
OpenJDK11U-jre_x86-32_windows_hotspot_11.0.6_10.zip

рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрджрдо:

  1. рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдЬреЗрдЖрд░рдИ рдХреЛ https://adoptopenjdk.net/releases.html . рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб
  2. рдЗрд╕реЗ рдЕрдирдЬрд╝рд┐рдк рдХрд░реЗрдВред
  3. "jdk-11.0.6+10-jre" рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ "jdkц╝вхнЧхРлуВА" рдХрд░ рджреЗрдВ ("ц╝вхнЧхРлуВА" 4 рдЪреАрдиреА рд╡рд░реНрдг рд╣реИрдВ)
  4. Java.exe рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:
$ jdkц╝вхнЧхРлуВА\bin\java -version
Error occurred during initialization of VM
Unable to load native library:

$ ren jdkц╝вхнЧхРлуВА jdk
$ jdk\bin\java -version
openjdk version "11.0.6" 2020-01-14
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.6+10)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.6+10, mixed mode)

jdk-11.0.5+10-jre рддреНрд░реБрдЯрд┐ рдХрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рдмрдирд╛ред
рдЖрдкрдХреЗ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

jdkissue2

Reported to OpenJDK / JBS bug

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ jdk/jdk рдореЗрдВ рдареАрдХ рдХрд┐рдпрд╛ , рдФрд░ jdk/jdk11u-dev рдкрд░ рднреА рдмреИрдХрдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ред рдЗрд╕реЗ 11.0.8 рдореЗрдВ рднреЗрдЬ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк 11.0.8 рд╕реЗ рд╕реАрдЬреЗрдХреЗ рдкрде рдкрд░ рдПрдбреЙрдкреНрдЯрдУрдкреЗрдирдЬреЗрдбреАрдХреЗ 11 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╕рднреА 8 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЛрд░рд┐рдпрд╛рдИ рд╡рд░реНрдгреЛрдВ рдХреЗ рд╕рд╛рде рднреА рдРрд╕рд╛ рд╣реА рд╣реИ

рдореЗрд░реЗ рдРрдк рдкрд░ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рд░рд┐рдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛, jdk-11.0.6+10 . рдХреЗ рд╕рд╛рде jlink рдмрд┐рд▓реНрдб
image

рдЪрд┐рддреНрд░ рдореЗрдВ рд▓реЙрдиреНрдЪ рд╕реНрдХреНрд░рд┐рдкреНрдЯ

<strong i="10">@echo</strong> off
set DIR="%~dp0"
set JAVA_EXEC="%DIR:"=%\java"
%JAVA_EXEC%  -p "%~dp0/../app" -m com.pmm.ParadoxosGameModManager/com.pmm.ParadoxosGameModManager.ModManager  %*

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: 11.0.5 рдХреЗ рд╕рд╛рде рднреА рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛, рдкреБрд╖реНрдЯрд┐ рдХрд░реЗрдВ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

@ рд╣рд┐рдорд╛рд╡рд╛рд░реА-рд╕рд╛рди рдХреНрдпрд╛ рдЖрдк 11.0.6 рдХреЛ рдЕрдкрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

@karianna рдореБрдЭреЗ рд╡рд╣реА рддреНрд░реБрдЯрд┐ рдорд┐рд▓реАред
рдЖрдкрдХреЗ рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

openjdk_ss

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдореЗрдВ рдПрдХ рдмрдЧ рд╣реИред рдореИрдВрдиреЗ рд╡рд░реНрддрдорд╛рди рдЬреЗрдбреАрдХреЗ/рдЬреЗрдбреАрдХреЗ рд╕реНрд░реЛрдд рдкрд░ рдЗрд╕ рдореБрджреНрджреЗ рдХреА рдкреБрд╖реНрдЯрд┐ рдХреА рд╣реИред рдпрд╣ рдХрд┐рд╕реА рднреА рдкрде рдкрд░ рдШрдЯрд┐рдд рд╣реЛрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ CJK рд╡рд░реНрдг рд╣реЛрдВред

рдореИрдВ рдЗрд╕реЗ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдкреИрдЪ рдХреЗ рд╕рд╛рде рдареАрдХ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ OpenJDK рдореЗрдВ рд╣реЙрдЯрд╕реНрдкреЙрдЯ-рд░рдирдЯрд╛рдЗрдо-рджреЗрд╡ рдХреЗ рд▓рд┐рдП рд╕рдореАрдХреНрд╖рд╛ рдЕрдиреБрд░реЛрдз рднреЗрдЬрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдХреНрдпрд╛ рдЖрдкрдиреЗ рдХрднреА рдЗрд╕рдХреЗ рд▓рд┐рдП OpenJDK рд╕рдореБрджрд╛рдп рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ? рдЕрдЧрд░ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рддреЛ рдореИрдВ рдЗрд╕реЗ рдЬреЗрдмреАрдПрд╕ рдореЗрдВ рдлрд╛рдЗрд▓ рдХрд░ рджреВрдВрдЧрд╛ред

diff --git a/src/hotspot/os/windows/os_windows.cpp b/src/hotspot/os/windows/os_windows.cpp
--- a/src/hotspot/os/windows/os_windows.cpp
+++ b/src/hotspot/os/windows/os_windows.cpp
@@ -4207,14 +4207,16 @@
     size_t prefix_len = wcslen(prefix);
     size_t full_path_size = is_abs ? 1 + buf_len : JVM_MAXPATHLEN;
     size_t result_size = prefix_len + full_path_size - prefix_off;
-    result = (wchar_t*) os::malloc(sizeof(wchar_t) * (additional_space + result_size), mtInternal);
+    size_t result_buffer_size = sizeof(wchar_t) * (additional_space + result_size);
+    result = (wchar_t*) os::malloc(result_buffer_size, mtInternal);

     if (result == NULL) {
       err = ENOMEM;
     } else {
-      size_t converted_chars;
+      ZeroMemory(result, result_buffer_size);
       wchar_t* path_start = result + prefix_len - prefix_off;
-      err = ::mbstowcs_s(&converted_chars, path_start, buf_len + 1, buf, buf_len);
+      int win32_ret = MultiByteToWideChar(CP_THREAD_ACP, MB_ERR_INVALID_CHARS, buf, (int)buf_len, path_start, (int)(buf_len + 1));
+      err = (win32_ret == 0) ? EINVAL : ERROR_SUCCESS;

       if ((err == ERROR_SUCCESS) && needs_fullpath) {
         wchar_t* tmp = (wchar_t*) os::malloc(sizeof(wchar_t) * full_path_size, mtInternal);

@YaSuenag рдирд╣реАрдВ, рдореИрдВрдиреЗ рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдореИрдВрдиреЗ рдЖрдкрдХреА рдорджрдж рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХреАред

рдореИрдВрдиреЗ рдЬреЗрдмреАрдПрд╕ рдХреЛ рдЗрд╕ рдореБрджреНрджреЗ рдХреА рд╕реВрдЪрдирд╛ рджреА, рдФрд░ рд╣реЙрдЯрд╕реНрдкреЙрдЯ-рд░рдирдЯрд╛рдЗрдо-рджреЗрд╡ рдХреЛ рд╕рдореАрдХреНрд╖рд╛ рдЕрдиреБрд░реЛрдз рднреЗрдЬрд╛ред

https://bugs.openjdk.java.net/browse/JDK-реореирекрежрезрепрен
https://mail.openjdk.java.net/pipermail/hotspot-runtime-dev/2020-February/038330.html

@YaSuenag рдЖрдкрдХреЗ рдпреЛрдЧрджрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!
http://mail.openjdk.java.net/pipermail/hotspot-runtime-dev/2020-March/038397.html

рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ jdk/jdk рдореЗрдВ рдареАрдХ рдХрд┐рдпрд╛ , рдФрд░ jdk/jdk11u-dev рдкрд░ рднреА рдмреИрдХрдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ред рдЗрд╕реЗ 11.0.8 рдореЗрдВ рднреЗрдЬ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк 11.0.8 рд╕реЗ рд╕реАрдЬреЗрдХреЗ рдкрде рдкрд░ рдПрдбреЙрдкреНрдЯрдУрдкреЗрдирдЬреЗрдбреАрдХреЗ 11 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

PierreZ picture PierreZ  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

sxa picture sxa  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

karianna picture karianna  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

gdams picture gdams  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

nebhale picture nebhale  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ