Rhino - wie mit NativeJavaObject umgehen?

PeterStrauss

Mitglied
Guten Morgen,

ich versuche mich gerade mit Java und Rhino, dabei führe ich folgenden Code aus:

Java:
process = Runtime.getRuntime().exec("/bin/ls -lisa");
	process.waitFor();
	return process;

Im Normalfall ist das soweit auch kein Problem, ich kann mit dem Process in Java normal weiterarbeiten. Ich möchte aber gern auf einen Fehlerfall reagieren.
Führe ich z.B. folgenden Code aus:
Java:
process = Runtime.getRuntime().exec("/bin/ls -[COLOR="Red"]123456[/COLOR]");
	process.waitFor();
	return process;
...bekomme ich keinen Process zurück sondern ein NativeJavaObject. Ich habe auch schon versucht, ob es möglich ist Informationen, wie z.B. den return-Wert aus dem NativeJavaObject zu lesen aber das ist mit leider nicht gelungen.

Deshalb würde ich mich sehr freuen, wenn mir jemand bei meinem Problem weiterhelfen würde.

MfG Peter
 

PeterStrauss

Mitglied
Lösung um den errorStream aus dem NativeJavaObject zu erhalten + Ausgabe:

Java:
if (myStream instanceof NativeJavaObject)
			{
				NativeJavaObject nstream = (NativeJavaObject) myStream;
				boolean canConv = NativeJavaObject.canConvert(nstream, InputStream.class);
				BufferedReader br = null;
				if (canConv)
				{
					br = new BufferedReader(new InputStreamReader((InputStream) Context.jsToJava(njo.get("errorStream", null), InputStream.class)));
					String line;
					try
					{	
						while ((line = br.readLine()) != null)
						{
							System.out.println("error stream: " + line);
						}
					} catch (IOException e)
					{
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				}
			}
Vielleicht hilft es ja der Nachwelt...
 

Ähnliche Java Themen

Neue Themen


Oben