2016-03-21 15 views
0

Sorunum, bir Java Programında bir jar açamıyorum. açık, içinde bir OpenCV kütüphanesi vardır. Ben .jar tıklayın çift, o zaman iyi çalışır. Mac OS X terminali İşletme türünü ise gayet aswell çalışır. YaniRuntime.getRuntime(). Exec ("java-jar xxx.jar); Çalışmıyor. Mac OS X

@Override 
public void actionPerformed(ActionEvent e) { 
    if(e.getSource() instanceof JButton){ 
     JButton button = (JButton) e.getSource(); 
     if(button.getText().equals("Aktivieren")){ 

      System.out.println("Yaay"); 
       String str; 

       if(Main.os.contains("Mac")){ 
        str = "java -jar "+System.getProperty("user.home") + "/Library/Application\\ Support/MW"+"/System/Core.jar"; 
        System.out.println(str); 
       } else { 
        str = "java -jar "+Main.directory+"/MW/System/Core.jar"; 
       } 

       System.out.println(str); 

       try { 
        Runtime.getRuntime().exec(str); 
       } catch (IOException e1) { 
        // TODO Auto-generated catch block 
        e1.printStackTrace(); 
       } 

     } 
    } 
} 

Sysout çıktısı geçerli: java-jar/Users/Teknik/Library/Application \ Destek/MW/Sistem/Core.jar

Ve Terminalinde elle yapıştırın zaman gayet

çalışır.

Ve hata iletileri alıyorum.

Kötü İngilizce'm için özür dilerim, im german.

Teşekkürler (veya ne olursa olsun) Teknik

+0

çözmek ve kullanmaz, size 'bir kavanoz eklemem gerekiyor buildpath'. Bu konuda çok fazla kaynak var ve yinelemekten kaçınmak için yeni bir tane göndermek istemiyorum. –

+0

Bunun bir sınıf yolu sorunu nedeniyle olabileceğini düşünüyorum. –

+0

Bu, "Runtime.exec (String)" özelliğini boşluk veya ters eğik çizgi içeren herhangi bir parametreyle kullanamadığınız için başarısız olur. 'Runtime.exec (String [])' yerine, ör. .exec (yeni String [] {"java", "-jar", System.getProperty ("user.home") + "/ Kitaplık/Uygulama Desteği/MW/Sistem/Core.jar")}) '(not backslashes) –

cevap

0

Bunu yaparken deneyebilir misiniz? Genelde

if(Main.os.contains("Mac")){ 
    String jar = "System.getProperty("user.home") + "/Library/Application\\ Support/MW"+"/System/Core.jar"; 
    str = "java -classpath " + jar + " -jar "+System.getProperty("user.home") + "/Library/Application\\ Support/MW"+"/System/Core.jar"; 
    System.out.println(str); 
} else { 
    String jar = "Main.directory+"/MW/System/Core.jar"; 
    str = "java -classpath " + jar + " -jar "+Main.directory+"/MW/System/Core.jar"; 
} 

Ben ProcessBuilder kullanmak isterdim ama bu Eclipse gibi bir IDE bir proje için gerekirse sorununuzu :)

+0

Sorununu çözmüyor, (Açmıyor. – Tech

+0

evet işe yaramıyor. Kabuk oluşturmak ve kabuk içinde java programını yürütmek zorundasınız. –