/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

Ejecutar un .exe de C, que usa archivos .txt, desde Java

 
      Índice del Foro elrincondelc.com -> Java
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
shimmykhaoz



Registrado: 23 Ene 2007
Mensajes: 19

MensajePublicado: 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

MensajePublicado: 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

MensajePublicado: 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

MensajePublicado: 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
      Índice del Foro elrincondelc.com -> Java
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com