2016-04-10 2 views
0

Ok, j'ai trouvé comment exécuter un fichier .exe à partir de ce programme, mais je ne sais pas comment lancer un fichier .jar.Comment exécuter un fichier .jar à partir d'un programme 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(); 
      } 
     } 
    } 

Cela va exécuter Sony Vegas Pro, attendez 10 secondes, puis fermez-le. Voici ce que j'ai jusqu'à présent, en essayant de se rendre à lancer un .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(); 
     } 
     } 
    } 

Pas d'erreur de ne pas trouver le fichier, ni aucune erreur du tout. Le programme fonctionne comme il le ferait, juste sans rien ouvrir.

Aidez s'il vous plaît!

+0

ce qui se passe lorsque vous exécutez 'java -jar C:/Users/propriétaire/Desktop/minecraft_server.15w51b' cmd? pouvez-vous l'ouvrir en double-cliquant? –

+0

@FastSnail Hah, non je ne peux pas, double-cliquant dessus ne fonctionne pas, et aussi cmd me donne une erreur. "Impossible d'accéder au fichier jar". mais j'essaie avec un fichier jar différent, "JSonSign" et ça va faire la même chose dans cmd et mon programme. – Kaelinator

+0

lorsque vous l'exécutez à partir du programme Java, vous ne pouvez pas voir un cmd. Si vous lisez la sortie alors vous pouvez obtenir le message. Mais si vous ne pouvez pas le lancer manuellement, comment pouvez-vous tester à partir de java –

Répondre

0

vous pouvez essayer de telle manière aussi essayer {

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(); 
     }