Java 9: Почему он блокирует блокировку lib/modules? (Windows)
При запуске приложения любого стороннего приложения, например. Блокнот (но вы можете взять что-нибудь еще), из приложения Java 9, а затем выйдите из приложения Java:
import java.io.*;
public class LaunchNotepad {
public static void main(String[] args) throws IOException {
Runtime.getRuntime().exec(new String[] {"C:\\Windows\\notepad.exe"});
}
}
запущенное стороннее приложение сохраняет блокировку Java 9 lib\modules
. Это затрудняет наше приложение Java с частной JRE, чтобы обновить себя, потому что исходный каталог (содержащий JRE) нельзя переименовать. Вот скриншот от ProcessExplorer (Sysinternals):
Это пахнет ошибкой Java 9 (сообщено как JDK-8194734), но существует обход для запуска приложение на Windows без блокировки lib\modules file
, например с помощью внешнего (прокси) приложения, которое просто запускает переданный параметр в качестве приложения?