| Ver tema anterior :: Ver siguiente tema | | Autor | Mensaje |
|---|
shimmykhaoz
Registrado: 23 Ene 2007 Mensajes: 19
| Publicado: 04/01/2011 1:19 pm | | | Título: Ejecutar un .exe de C, que usa archivos .txt, desde Java |
| Hola, he estado intentando ejecutar un programa ya compilado en C desde java, osea un .exe desde un programa en java usando el siguiente codigo
| Código: |
Runtime aplicacion = Runtime.getRuntime(); try { aplicacion.exec("cmd.exe /k start C:/Users/JTerán/Documents/Proyectos/Sintesys/CaculoMI.exe"); } catch(Exception e) { System.out.println(e); }
|
El programa se ejecuta, pero el problema es que este .exe usa un archivo .txt para trabajar entonces al ejecutarse desde java siempre me dice que no se encuentra el archivo, pero este Si se encuentra y al hacer doble click sobre el .exe osea ejecutarlo desde su ubicacion funciona perfectamente.
Alguien sabe si se necesia agregar mas parametros, en el exec o si se hace de otra forma?
De antemano Gracias.
Saludos |
| | Volver arriba | |  | rir3760

Registrado: 01 Oct 2004 Mensajes: 7517 Ubicación: Mexico
| Publicado: 05/01/2011 8:40 am | | | Título: |
| El problema es, cuando inicia la aplicacion desarrollada en C, el directorio de inicio o actual es (supongo) el de la aplicacion en Java (donde sea que esta se encuentra).
La mejor solucion (si aplica) es cambiar el directorio actual, aqui no puedo ayudarte ya que no manejo Java.
Otra solucion es cambiar el directorio de trabajo justo antes de ejecutar el comando "cmd", eso lo consigues mediante la linea:
| Código: | cmd /k "cd directorio&&aplicacion" |
Donde directorio es el directorio donde se localiza la aplicacion y aplicacion es el nombre del ejecutable.
Por ejemplo si quiero ejecutar la aplicacion "Main.exe" ubicada en "C:\rir3760\Devel\User\C\Ejemplos\stdio\feof" utilizaria:
| Código: | cmd /k "cd C:\rir3760\Devel\User\C\Ejemplos\stdio\feof&&Main.exe" |
Para que te resulte mas facil obtener el comando correcto primero crealo y ejecutalo directamente mediante la entrada de menu "Inicio" --> "Ejecutar", una vez tengas la linea correcta agregala al programa en Java.
Un saludo _________________ C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly. -- Kernighan & Ritchie, The C programming language |
| | Volver arriba | |  | shimmykhaoz
Registrado: 23 Ene 2007 Mensajes: 19
| Publicado: 10/01/2011 1:09 pm | | | Título: |
| Muchas gracias, pero solo tuve que agregar la dirección completa en el .c, ya que solo le daba el nombre del archivo, porque se encontraba en la misma carpeta.
Un saludo |
| | Volver arriba | |  | | rir3760

Registrado: 01 Oct 2004 Mensajes: 7517 Ubicación: Mexico
| Publicado: 10/01/2011 3:24 pm | | | Título: |
| Esa modificacion es correcta y funciona pero debes tener en cuenta que ahora el programa en C utiliza una ruta absoluta, eso significa que si mueves el programa en C junto con su archivo de datos ya no funcionara.
Un saludo _________________ C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly. -- Kernighan & Ritchie, The C programming language |
| | Volver arriba | |  | | |
| No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas
|
|
| |