質問編集履歴
2
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -2,26 +2,34 @@
|
|
2
2
|
具体的には、ConsoleReader#setPrompt(String)で指定している文字の後に非同期で出力したメッセージが表示されてしまいます。
|
3
3
|
どうすればいいでしょうか?
|
4
4
|
同期実行されている場合はこのようにはなりません。
|
5
|
-

|
6
6
|
|
7
7
|
```Java
|
8
|
-
public static void main(String args[]) {
|
8
|
+
public static void main(String args[]) {
|
9
9
|
try {
|
10
10
|
final ConsoleReader reader = new ConsoleReader();
|
11
|
-
reader.
|
11
|
+
reader.setExpandEvents(false);
|
12
12
|
|
13
|
+
while (true) {
|
14
|
+
String line = reader.readLine(">");
|
13
|
-
|
15
|
+
if (line != null) {
|
16
|
+
if (line.split(" ")[0].equalsIgnoreCase("copy")) {
|
17
|
+
System.out.println("Start Copy Thread");
|
14
|
-
|
18
|
+
Thread thread = new Thread(new Runnable() {
|
15
|
-
|
19
|
+
@Override
|
16
|
-
|
20
|
+
public void run() {
|
21
|
+
// Dummy
|
22
|
+
try {
|
23
|
+
Thread.sleep(1000);
|
24
|
+
} catch (InterruptedException e) {
|
25
|
+
e.printStackTrace();
|
26
|
+
}
|
17
|
-
|
27
|
+
System.out.println("End Copy Thread");
|
28
|
+
}
|
29
|
+
});
|
30
|
+
thread.start();
|
31
|
+
}
|
18
32
|
}
|
19
|
-
}, 0, 1000);
|
20
|
-
String line;
|
21
|
-
while ((line = reader.readLine()) != null) {
|
22
|
-
if (line.equalsIgnoreCase("stop")) {
|
23
|
-
break;
|
24
|
-
}
|
25
33
|
}
|
26
34
|
} catch (Throwable t) {
|
27
35
|
t.printStackTrace();
|
@@ -31,7 +39,10 @@
|
|
31
39
|
|
32
40
|
|
33
41
|
期待する動作
|
42
|
+
下記のようにプロンプト部分「>」に出力された文字がかぶらないようにしたいです。
|
43
|
+
常に一番下の行にプロンプト部分「>」が来るようにしたいです。
|
44
|
+
|
34
|
-
|
45
|
+
>copy
|
46
|
+
Start Copy Thread
|
35
|
-
|
47
|
+
End Copy Thread
|
36
|
-
hoge
|
37
48
|
>
|
1
期待する動作を追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -27,4 +27,11 @@
|
|
27
27
|
t.printStackTrace();
|
28
28
|
}
|
29
29
|
}
|
30
|
-
```
|
30
|
+
```
|
31
|
+
|
32
|
+
|
33
|
+
期待する動作
|
34
|
+
hoge
|
35
|
+
hoge
|
36
|
+
hoge
|
37
|
+
>
|