Код: Выделить всё
private static Connection getConnection(){
try {
return DriverManager.getConnection(
"jdbc:mysql://" + DB_HOST + ":" + DB_PORT + "/" + DB_NAME,
DB_USER,
DB_PASS
);
} catch (SQLException e) {
if (e instanceof CommunicationsException){
new Thread(() -> {
ProcessBuilder pb = new ProcessBuilder("net", "start", "mysql80")
.inheritIO();
try {
pb.start();
} catch (IOException ex) {
throw new RuntimeException(ex);
}
}).start();
try {
return DriverManager.getConnection(
"jdbc:mysql://" + DB_HOST + ":" + DB_PORT + "/" + DB_NAME,
DB_USER,
DB_PASS
);
} catch (SQLException ex) {
throw new RuntimeException(ex);
}
} else {
throw new RuntimeException(e);
}
}
}
Когда я запускаю код, я получил:
System error 5.
Access denied.
< /code>
Это потому, что мне нужны привилегии администратора, но я не знаю, как дать это классу моего сервера или, если это хорошая практика. Я нахожусь в Windows 10 и работаю над проектом, поэтому я выполняю файлы через IDE (IntelliJ).
pd: я знаю, что могу запустить услугу вручную, установить его автоматически, используйте консоль (то есть CMD) с привилегиями администратора ... Я просто хочу знать, и как это сделать (и если это хорошая идея).>
Подробнее здесь: https://stackoverflow.com/questions/795 ... using-java
Мобильная версия