2016-04-10 4 views
0

Хорошо, я понял, как запустить .exe из этой программы, но я не знаю, как запустить .jar.Как запустить файл .jar из java-программы

package com.Kaelinator; 

import java.io.IOException; 

public class ServerManager { 
    public static void main(String[] args){ 

     try { 
      System.out.println("Opening"); 
      Runtime runTime = Runtime.getRuntime(); 
      Process process = runTime.exec("D:/Program Files/Sony/Vegas Pro 12.0/vegas"); 
      try { 
       Thread.sleep(10000); 
      } catch (InterruptedException e) { 
       e.printStackTrace(); 
      } 
      System.out.println("Closing"); 
      process.destroy(); 
     } catch (IOException e){ 
      e.printStackTrace(); 
      } 
     } 
    } 

Для этого запустите Sony Vegas Pro, подождите 10 секунд, а затем закройте его. Вот что я до сих пор, пытаясь запустить .jar:

package com.Kaelinator; 

import java.io.IOException; 

public class ServerManager { 
    public static void main(String[] args){ 

     try { 
      System.out.println("Opening"); 
      Runtime runTime = Runtime.getRuntime(); 
      Process process = runTime.exec(" java -jar " + "C:/Users/Owner/Desktop/minecraft_server.15w51b"); 
      try { 
       Thread.sleep(10000); 
      } catch (InterruptedException e) { 
       e.printStackTrace(); 
      } 
      System.out.println("Closing"); 
      process.destroy(); 
     } catch (IOException e){ 
      e.printStackTrace(); 
     } 
     } 
    } 

Нет ошибок он не может найти файл, ни какой-либо ошибки на всех. Программа работает так, как будто бы, ничего не открывая.

Пожалуйста, помогите!

+0

, что происходит, когда вы запускаете 'Java -jar C:/Users/Владелец/Desktop/minecraft_server.15w51b' в ЦМД? можете ли вы открыть его двойным щелчком? –

+0

@FastSnail Hah, нет, я не могу, двойной щелчок не работает, а также cmd дает мне ошибку. "не удалось открыть jarfile". но я пытаюсь использовать другой файл jar, «JSonSign», и он будет делать то же самое в cmd и моей программе. – Kaelinator

+0

, когда вы запускаете его из java-программы, вы не видите cmd. Если вы читаете результат, тогда вы можете получить сообщение .but если он не может запустить его вручную, тогда как вы можете протестировать его из java –

ответ

0

можно попробовать таким образом, также попробовать {

if ((new File("c:\\path_of_jar\jarFileName.jar")).exists()) { 

    Process p = Runtime 
     .getRuntime() 
     .exec("rundll32 url.dll,FileProtocolHandler c:\\path_of_jar\jarFileName.jar"); 
    p.waitFor(); 

} else { 

    System.out.println("File does not exist"); 

    } 

    }  
       catch (Exception ex) { 
       ex.printStackTrace(); 
     } 
Смежные вопросы