Skip to content

Commit 0f075aa

Browse files
authored
add System.err (#29)
1 parent 0c03882 commit 0f075aa

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

java_runtime/src/classes/java/lang/system.rs

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ impl System {
5050
],
5151
fields: vec![
5252
JavaFieldProto::new("out", "Ljava/io/PrintStream;", FieldAccessFlags::STATIC),
53+
JavaFieldProto::new("err", "Ljava/io/PrintStream;", FieldAccessFlags::STATIC),
5354
JavaFieldProto::new("props", "Ljava/util/Properties;", FieldAccessFlags::STATIC),
5455
],
5556
}
@@ -60,14 +61,24 @@ impl System {
6061

6162
let out_descriptor: ClassInstanceRef<FileDescriptor> =
6263
jvm.get_static_field("java/io/FileDescriptor", "out", "Ljava/io/FileDescriptor;").await?;
63-
let file_output_stream = jvm
64+
let out_file_output_stream = jvm
6465
.new_class("java/io/FileOutputStream", "(Ljava/io/FileDescriptor;)V", (out_descriptor,))
6566
.await?;
6667
let out = jvm
67-
.new_class("java/io/PrintStream", "(Ljava/io/OutputStream;)V", (file_output_stream,))
68+
.new_class("java/io/PrintStream", "(Ljava/io/OutputStream;)V", (out_file_output_stream,))
69+
.await?;
70+
71+
let err_descriptor: ClassInstanceRef<FileDescriptor> =
72+
jvm.get_static_field("java/io/FileDescriptor", "err", "Ljava/io/FileDescriptor;").await?;
73+
let err_file_output_stream = jvm
74+
.new_class("java/io/FileOutputStream", "(Ljava/io/FileDescriptor;)V", (err_descriptor,))
75+
.await?;
76+
let err = jvm
77+
.new_class("java/io/PrintStream", "(Ljava/io/OutputStream;)V", (err_file_output_stream,))
6878
.await?;
6979

7080
jvm.put_static_field("java/lang/System", "out", "Ljava/io/PrintStream;", out).await?;
81+
jvm.put_static_field("java/lang/System", "err", "Ljava/io/PrintStream;", err).await?;
7182

7283
let props = jvm.new_class("java/util/Properties", "()V", ()).await?;
7384
jvm.put_static_field("java/lang/System", "props", "Ljava/util/Properties;", props).await?;

0 commit comments

Comments
 (0)