ΠΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΈ: ΠΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ°:
Windows10.0.18362
OpenJDK11U-jre_x64_windows_hotspot_11.0.6_10.zip
OpenJDK11U-jre_x86-32_windows_hotspot_11.0.6_10.zip
ΠΠ΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ:
$ 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 Π½Π΅ Π²ΡΠ·ΡΠ²Π°Π»ΠΎ ΠΎΡΠΈΠ±ΠΊΠΈ.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° Π²Π°ΡΠΈ Π΄Π²ΠΎΠΈΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ.
ΠΠΎΡ ΠΎΠΆΠ΅, ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ Ρ ΠΊΠΎΡΠ΅ΠΉΡΠΊΠΈΠΌΠΈ ΠΏΠ΅ΡΡΠΎΠ½Π°ΠΆΠ°ΠΌΠΈ
ΠΠ± ΡΡΠΎΠΌ ΡΠΎΠΎΠ±ΡΠΈΠ» ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠ±ΠΎΡΠΊΠ° jlink Ρ ΠΏΠΎΠΌΠΎΡΡΡ jdk-11.0.6 + 10
Π‘ΠΊΡΠΈΠΏΡ Π·Π°ΠΏΡΡΠΊΠ° Π½Π° ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ΅
<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, ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ
@ himawari-san. ΠΠΎΠΆΠ΅ΡΠ΅ Π»ΠΈ Π²Ρ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ Π²Π΅ΡΡΠΈΡ 11.0.6 Ρ ΡΠ°ΠΉΡΠ° accepttopenjdk.net/upstream.html, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°?
@karianna Π£ ΠΌΠ΅Π½Ρ ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΎΡΠΈΠ±ΠΊΠ°.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° Π²Π°ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ.
Π― Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΡΡΠΎ ΠΎΡΠΈΠ±ΠΊΠ° Π² Π°ΠΏΡΡΡΠΈΠΌΠ΅. Π― ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΠ» ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ΅ jdk / jdk. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΡΠΈ Π½Π° Π»ΡΠ±ΠΎΠΌ ΠΏΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ» (Ρ) CJK.
Π― ΠΌΠΎΠ³Ρ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΡΡΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ°ΡΡΠ°, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ Ρ Ρ ΠΎΡΡ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π·Π°ΠΏΡΠΎΡ Π½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΡ hotspot-runtime-dev Π² OpenJDK. ΠΡ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡΠ΄Ρ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ Π½Π°Π΄ ΡΡΠΈΠΌ Π² ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π΅ OpenJDK? ΠΡΠ»ΠΈ Π½Π΅Ρ, Ρ ΠΎΡΠΏΡΠ°Π²Π»Ρ Π΅Π³ΠΎ Π² JBS.
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 ΠΠ΅Ρ, Π½Π΅
Π― ΡΠΎΠΎΠ±ΡΠΈΠ» ΠΎΠ± ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅ Π² JBS ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΈΠ» Π·Π°ΠΏΡΠΎΡ Π½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΡ Π² hotspot-runtime-dev.
https://bugs.openjdk.java.net/browse/JDK-8240197
https://mail.openjdk.java.net/pipermail/hotspot-runtime-dev/2020-Feb February/038330.html
@YaSuenag ΡΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° Π²Π°Ρ Π²ΠΊΠ»Π°Π΄!
http://mail.openjdk.java.net/pipermail/hotspot-runtime-dev/2020-March/038397.html
Π― ΠΈΡΠΏΡΠ°Π²ΠΈΠ» ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π² jdk / jdk , Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠ΅ΡΠ΅Π½Π΅Ρ Π½Π°
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
Π― ΠΈΡΠΏΡΠ°Π²ΠΈΠ» ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π² jdk / jdk , Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠ΅ΡΠ΅Π½Π΅Ρ Π½Π°