1) в третьем аргументе задайте полный путь к файлу:
ProcessBuilder pb = new ProcessBuilder("java", "-jar",
"/home/meiskalt7/Documents/runJar-55056616-1.0-SNAPSHOT.jar");
Результат будет выглядеть так:
public static void main(String[] args) throws IOException {
ProcessBuilder pb = new ProcessBuilder("java", "-jar",
"/home/meiskalt7/Documents/runJar-55056616-1.0-SNAPSHOT.jar");
Process p = pb.start();
InputStream in = p.getInputStream();
System.out.println(new BufferedReader(new InputStreamReader(in))
.lines().collect(Collectors.joining("\n")));
}
и в консоли вы увидите результат выполнения
2) Если все будет хорошо, тогда вы должны проверить системное свойство с помощью
System.out.println(System.getProperty("user.home"))
, и если путь выглядит как путь на первом шаге, тогда вы должны сравнить путь с оператором равенства:
System.out.println((System.getProperty("user.home") + "/JARFile/JARFile.jar")
.equals([YOUR FULL PATH]))
Может быть, ваша проблема с символами другого языка в пути
2 *) если что-то пойдет не так, вы можете проверить ошибку выполнения процесса в потоке ошибок вашего процесса:
InputStream err = p.getErrorStream();
System.out.println(new BufferedReader(new InputStreamReader(err))
.lines().collect(Collectors.joining("\n")));