Ejecute fortran exe en java

Respetado señor / señora,

Tengo un fortran exe que toma un archivo de entrada y produce un archivo de salida haciendo alguna manipulación en el archivo de entrada. Puedo ejecutar el comando en el terminal de Linux. (Creo que el compilador fortran está disponible en Linux). Ahora sugiera cómo ejecutar Este archivo ejecutable fortran usando Java (en la máquina Linux).

Lo que intenté es

 String cmd="fortranExe arg1 arg2";
 //fortranExe=exe path
 //arg1,arg2 are arguments to fortran executable program
 Process p=Runtime.getRuntime().exec(cmd); 

Pero no obtengo salida. Cuando traté de ejecutar comandos de Linux como ls, dir está dando salida. ¿Se requiere algo para ejecutar código fortran en Java?

Respuesta 1

Intenta usar algo como esto

Process process = new ProcessBuilder("C:\\PathToExe\\fortran.exe","param1","param2").start();

Tengo esto de

Programación Java: llame a un exe desde Java y pase parámetros

Más información sobre ProcessBuilder: http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/ProcessBuilder.html

Respuesta: 2

No, si es un binario reqular para la plataforma en la que está ejecutando su JVM, no debería importar.

¿Cómo se ejecuta el binario, cuando se ejecuta desde la consola?

Una vez que el proceso se generó con éxito, puede leer su stdout de esta manera:

BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()));

String line;
while ((line = br.readLine()) != null)
{
    System.out.println(line);
}
br.close();

Si hubo algún problema de tiempo de ejecución al ejecutar el proceso, por ejemplo, sin permiso para ejecutar el binario, etc., process.exitValue () devolverá 127.

EDITAR: al ver los otros comentarios, puedo ver que está utilizando redireccionado en / salida a su binario.

De hecho, no hay parámetros, pero debe abrir InputFileName.txt y usar el objeto process.getOutputStream () para escribir en su proceso. No es necesario establecer OutputFilename.txt, porque lee la salida de InputStream y, si es necesario, puede escribirla usted mismo en un archivo.

Esta respuesta lo explica en detalle:

https://stackoverflow.com/a/3644288/435583

https://stackoverflow.com/a/6796053/435583

Salud,

Respuesta: 3

Tengo problemas con mi tarea y llevo mucho tiempo rascándome la cabeza. Este es el criterio: su clase EmployeeNames debe tener un método estático llamado convertName (). ...

Tengo una gran cadena que una vez se convirtió en un ByteBuffer y luego, mientras leía más tarde varias veces, solo es necesario presentar una parte de la cadena (descripción general del texto), por lo que quiero convertir ...

¿Cómo puedo obtener un índice específico en la Lista si solo tiene los métodos para el primer y el último elemento, cuando el elemento en la lista se repite varias veces? List <Character> listString = nuevo ...

Posible duplicado: eliminar una carpeta en la tarjeta SD. En mi aplicación, guardé todos mis datos mediante el almacenamiento interno, es decir, el archivo. Entonces, en primera instancia, usando ContextWrapper cw = new ContextWrapper (...