FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Problemas con ShellExecute y Java.
Hola. Vuelvo a haceros una pregunta sobre un problema al que no le encuentro solución, a ver si alguno tiene una brillante idea.
Resulta que mi programa debe acabar lanzando un comando en Java. Dicho comando lo llamarenos "jreNotes.cmd". Digamos también, que "jreNotes.cmd" es similar a otro comando probado y requeteprobado, que es "jreCoher.cmd". si yo ejecuto : todo va como la seda. Sin embargo, si ejecuto No funciona nunca. en particular me da el error : Cita:
La cuestión sería: alguien sabe por qué ShellExecute me da un resultado diferente que la ejecucion desde la linea de comandos de Windows? Tambien lo he probado con winexec. Gracias, muchachos Última edición por dec fecha: 05-09-2005 a las 15:35:31. Razón: (Encerrar el código en la etiqueta DELPHI) |
#2
|
|||
|
|||
Problema resuelto
Hola. Al final, resultó ser mucho más sencillo de lo esperado.
La cuestión básica es que Java es un lenguaje interpretado. Eso significa que no sale un ejecutable del proceso de programación (no se compila). Para eso es necesario tener la maquina virtual java (JVM), que en cada plataforma, interpreta y compila y saca el ejecutable. Pues era en ese paso, que Java (y no delphi) fallaba. La ejecucion de una instruccion java como jreNotes.cmd necesita del path de TODAS las librerias para que la maquina virtual java sea capaz de, en runtime, encontrarlas y compilarlas. Una vez puesto el path de ejecución, ha sido coser y cantar. Gracias por leerme, al menos Corolario: Nunca podrá haber en Java, librerías sin su path bien especificado y bien localizado, para evitarse problemas en runtime. |
#3
|
||||
|
||||
Es cierto lo q dices, ademas si no quieres agregar la ruta actual al classpath puedes hacer esto:
ShellExecute(0,'open' , PChar( 'java') , PChar(' -cp . jreCoher.cmd' + parametros),'', SW_SHOWNORMAL); siendo jreCoher un package, si es un jar seria java -jar -cp . jreCoher.cmd. En ambos casos deberia estar en la misma ruta del exe q lo llama
__________________
Los Estados Unidos parecen destinados por la Providencia para plagar la América de miserias a nombre de la libertad." Simón Bolívar (Carta al Coronel Inglés Patricio Cambell 05/08/1829). |
|
|
|