Я пытаюсь открыть файл PDF в Linux с помощью команды xdg-open в java.
String[] command = {"xdg-open","\""+path+"\""}
Process p = Runtime.getRuntime().exec(command,null);
p.waitFor();
Когда я запускаю код в терминале, ничего не происходит, даже если я ввожу его в терминал:
xdg-open path
он открывает PDF. Есть идеи, что не так?




Вы не должны избегать пути: если программа была вызвана, она была с недопустимым путем ("path", а не path).
String[] command = {"xdg-open", path}
Runtime.getRuntime().exec(command,null); будет использовать ProcessBuilder внутри, который, в случае Linux, должен вызывать системную команду Execve.
Может это поможет? https://stackoverflow.com/a/40569083/2633917