2014-01-13 10 views
1

Я не могу запустить свой ssh-keygen.exe. Вывести эту сборку успешно, но код должен выполнить .exe и отобразить приложение. Это мой кодЗапуск внешней программы

import java.io.IOException; 

public class SSHConnectPing { 

    public static void main(String... args) throws IOException { 
     try 
     { 
      Runtime.getRuntime().exec("C:\\ExecuteSSH\\ssh-keygen.exe"); 
     } 
     catch(Exception exc) 
     { 
      System.out.println("error" + exc);/*handle exception*/ 
     } 
    } 
} 

Что мне делать? Пожалуйста, помогите мне.

+0

спасибо чжун Цзэн Ли – Learner

+1

Существует не так много информации, чтобы идти, когда дело доходит до фиксации, но в целом я бы порекомендовал вам взглянуть на Apache Comm ons Exec (http://commons.apache.org/proper/commons-exec/), он делает выполнение других приложений в Java намного менее болезненным. –

+0

благодарит Джейсона, на самом деле я просто скопирую код из сети, чтобы увидеть, как я может запустить мой ssh-keygen.exe. в то время как я прочитал документ, который вы мне дали. может ли кто-нибудь показать мне рабочий код для выполнения приложения .exe в java. спасибо снова Джейсону и всем, кто помог – Learner

ответ

0

Java новичок, как я, кто хочет о том, как выполнить внешнюю программу (.exe), вы можете попробовать это образец:

// get apache.common.exec.jar at: 
http://commons.apache.org/proper/commons-exec/download_exec.cgi 

import java.io.IOException; 
import org.apache.commons.exec.CommandLine; 
import org.apache.commons.exec.DefaultExecutor; 
import org.apache.commons.exec.ExecuteWatchdog; 


public class RunRsync { 

public static void main(String[] args) throws IOException { 

    try { 

    //example : String line = "C://file.exe"; 
    String line = "cmd /c start"; //you can put your .exe path here, like mine i run my window cmd 
    CommandLine cmdLine = CommandLine.parse(line); 
    DefaultExecutor executor = new DefaultExecutor(); 
    int exitValue = executor.execute(cmdLine); 

    } 
    catch (Exception exc){  
     System.out.println("error" + exc);/*handle exception*/} 
    }  
} 
0

Благодаря Jason теперь я могу выполнить мой exe-приложение

Мой код теперь

package apacherunsshkeygen; 

import java.io.IOException; 
import org.apache.commons.exec.CommandLine; 
import org.apache.commons.exec.DefaultExecutor; 
import org.apache.commons.exec.ExecuteWatchdog; 


public class ApacheRunSSHKEygen { 

/** 
* @param args the command line arguments 
*/ 
public static void main(String[] args) throws IOException { 

    try { 

//  String line = "AcroRd32.exe /p /h " + file.getAbsolutePath(); 
    String line = "C:\\ExecuteSSH\\ssh-keygen.exe"; 
    CommandLine cmdLine = CommandLine.parse(line); 
    DefaultExecutor executor = new DefaultExecutor(); 

    //watchdog 
    executor.setExitValue(1); 
    ExecuteWatchdog watchdog = new ExecuteWatchdog(60000); 
    executor.setWatchdog(watchdog); 

    int exitValue = executor.execute(cmdLine); 
    } 

    catch (Exception exc){ 

     System.out.println("error" + exc);/*handle exception*/} 
    } 


    } 
Смежные вопросы