JSP ejecutar Java
AUTOR PREGUNTA #1
Desde 1 fichero JSP hago:
<%Process p=Runtime.getRuntime().exec("javac directorio\\hello.java"); %>
En Java también me funciona.
Lo que no consigo es hacer esto:
java Hello > hola.txt
class hello{ public static void main(String[] args){ System.out.println("Hello. :-)"); } }
No quiero poner este comando (java ...) en 1 fichero BAT, aunque tampoco me funciona en JSP (sí en Java). El fichero Java (en catalán) es éste:
import java.io.File; class fitxer{ public static void main(String[] args){ try{ File fitxer=new File("./test.1x2"); Gracias anticipadas, PepBR if (!fitxer.exists()){ System.out.println("Creant-se el fitxer..."); fitxer.createNewFile(); System.out.println("Fitxer creat."); }else{ fitxer.delete(); fitxer.createNewFile(); System.out.println("Fitxer eliminat i creat de nou."); } }catch(Exception e){ } } }
Gracias anticipadas,
PepBR
-
¿Tienes la misma pregunta? Yo también
Esto también te interesa!
PREGUNTAS SIMILARES
#2
javac miArchivo.java java NombreClase> hola.txt
AUTOR PREGUNTA #3
Ok, dejame ver si te seguí, creo que lo que quieres hacer es utilizar la salida por consola de un programa java para llenar un archivo .txt no? Sí es así, debes hacerlo de la siguiente manera, usando el nombre de la clase, avísame como te va:
javac miArchivo.java java NombreClase> hola.txt
Lo que quiero es exactamente esto, pero no por consola, sí por JSP (y que el fichero TXT no salga vacío. En realidad quiero hacer esto:
java JLex.Main linies.lex javac linies.lex.java java linies in0.1x2
En resumen, que el comportamiento del JSP sea el de la consola MS-DOS. Por esto decía ayer que ya hago correctamente:
javac directorio\\hello.java javac directorio\\fitxer.java
en JSP, que al hacer:
java fitxer > fitxer.txt
tendría que crear los ficheros:
- fitxer.txt (con contenido)
- test.1x2 (vacío)
PepBR
#4
<%@ page import="java.io.*" %> <% String str = "contenido del archivo txt"; String nameOfTextFile = "/usr/anil/fitxer.txt"; try { PrintWriter pw = new PrintWriter(new FileOutputStream(fitxer)); pw.println(str); pw.close(); } catch(IOException e) { out.println(e.getMessage()); } %>
AUTOR PREGUNTA #5
Imagina 1 fichero Java (fichero.java) que hace lo siguiente:
1. Si fichero Prueba.txt no existe en c:\, crearlo y decir:
Fichero Prueba.txt recientemente creado.
2. Si no, decir:
Fichero Prueba.txt ya existe.
Ahora tenemos otro fichero Java (comandos.java) que me hace OK esto:
javac fichero.java
(Process process = Runtime.getRuntime().exec("javac fichero.java"); )
Me falla (no lo consigo) que comandos.java haga OK la ejecución:
java fichero > salida.txt
creándose Prueba.txt si no existía y salida.txt (con contenido).
Si funciona en Java también tiene que funcionar en JSP (de tu código se queja en el parámetro 'fitxer', y mejor si el contenido fuese línea a línea (metido en 1 textarea :-P)),
PepBR
#6
archivo = new File("c:/archivo.txt"); fop = new FileOutputStream(archivo);
Entonces en el código que te pase también cambia esta línea:
PrintWriter pw = new PrintWriter(fop);
Con esto ya debería funcionarte, de igual manera si te da problemas vuelves.
Saludos.
AUTOR PREGUNTA #7
JSP --> archivo.txt --> JSP (contenido del fichero TXT)
Lo que quiero hacer es:
JSP --> (comandos.java --> fichero.java) --> JSP (creación de 2 ficheros)
Lo que te pongo entre paréntesis es para ejecutarlo bajo MS-DOS. El fitxer.txt se crea una vez hecho:
java fitxer > fitxer.txt
Si comandos.java lo hace OK (compilar ya lo hago OK) también lo hará JSP.
Tanto en Java como en JSP es el método Runtime().exec(comando), pero me falla la ejecución (java fitxer > fitxer.txt). En tu código sólo aparece archivo.txt o fitxer.txt, y ningún fichero Java ni Runtime,
PepBR
#8
[color=#282828][font=helvetica, arial, sans-serif]JSP --> archivo.txt --> JSP (contenido del fichero TXT)[/font][/color]
Entonces agrega el runtime dentro del JSP y en vez de apuntar al fichero java, el parámetro del .exec debe ser la clase que hace todas las operaciones para crearte los .txt. Pruebalo entonces así:
[color=#1A1A1A][font=Lucida Sans Unicode', 'Lucida Sans', 'Lucida Grande', Malayalam, Verdana, sans-serif][size=3]
Runtime.getRuntime().exec("java miClase");[/size][/font][/color]
[size=4][color=#1A1A1A]Me avisas[/color][/size]
AUTOR PREGUNTA #9
Lo había probado hace días (y versiones) con:
/K
pero no con /C (fuente: ). Más enlaces:
-
-
-
- (jacosta: tu anterior post (probado))
import java.io.*; public class comprun { public static void main(String[] args) { try { Process process1 = Runtime.getRuntime().exec("javac fitxer.java"); Process process2 = Runtime.getRuntime().exec("cmd /C java fitxer > run.txt"); } catch (Exception e) { e.printStackTrace(); } } }
El fichero run.txt aparece con 1 o 2 líneas de contenido (ver el primer post). El fichero test.1x2 se crea si no existe. :-) Con 'cmd.exe' también funciona.
jacosta: Gracias, pero como ves:
1. Redireccionaba la salida a 1 fichero TXT.
2. Me faltaba empezar el comando "cmd /C" (desde el viernes una de las muchas pruebas era con '/K', '\\K',...).
3. Ya probé lo de tu respuesta anterior, pero sin crearse el fichero TXT (sí el fichero '1x2').
Gracias de nuevo, jacosta,
PepBR