2010-07-07 18 views

Respuesta

3

Si puede hacer que gnuplot tome todas las entradas desde la línea de comando o entrada estándar (o leer desde un archivo) y también escribir su salida a archivos, no debería haber ningún problema al usar ProcessBuilder.

+0

me hizo algo similar hace un tiempo. Estoy confuso con los detalles, pero puedo confirmar que Gnuplot está feliz de absorber toda su información de los archivos. Es muy scriptable. –

1

Esto funciona en Debian:

String[] s = {"/usr/bin/gnuplot", 
       "-e", 
       "set term jpeg large size 800,600;set autoscale; set grid;set format y \"%0.f\";set output \"plot.jpg\";set xdata time;set timefmt \"%Y-%m-%d-%H:%M:%S\";set xlabel \"Dates\";set ylabel \"Data transferred (bytes)\";plot \""+x+"\" using 1:2 title \"Total:"+tot+"\" with linespoints;" 
      }; 
try { 
    Runtime rt = Runtime.getRuntime(); 
    Process proc = rt.exec(s); 
    InputStream stdin = proc.getErrorStream(); 
    InputStreamReader isr = new InputStreamReader(stdin); 
    BufferedReader br = new BufferedReader(isr); 
    String line = null; 
    while ((line = br.readLine()) != null) 
     System.err.println("gnuplot:"+line); 
    int exitVal = proc.waitFor(); 
    if (exitVal != 0) 
     log("gnuplot Process exitValue: " + exitVal); 
    proc.getInputStream().close(); 
    proc.getOutputStream().close(); 
    proc.getErrorStream().close(); 
} catch (Exception e) { 
    System.err.println("Fail: " + e); 
} 
1

Uso de la biblioteca JavaGnuplotHybrid.

Es muy ligero (solo 3 clases principales) y permite la programación híbrida con Java y Gnuplot.

  1. programación híbrido con Java y Gnuplot
  2. peso muy ligero (apenas tres clases básicas)
  3. Utilizar etiquetas de código de Gnuplot para ejecutar funciones o recibir valores de los campos de los en Java.
  4. Admite la ejecución sincronizada y sincronizada de Gnuplot en Java. (Sincronizado: el programa Java esperará hasta que cierre la metimos ventana de Gnuplot; asynchronized: que el programa Java no espera.)
  5. error de captura/salida de texto normal de Gnuplot al terminal de Java de código
  6. Leer Gnuplot de archivos xml
  7. Plantilla de código de Gnuplot compatible.

Para más detalles:

  1. página Proyecto: https://github.com/mleoking/JavaGnuplotHybrid
  2. Ejemplos: https://github.com/mleoking/JavaGnuplotHybrid/blob/master/javagnuplothybrid/doc/examples.md
+1

¿Tiene un repositorio maven? No voy a poner un frasco en mi proyecto. – ahll