###前提・実現したいこと
javaアップレットを実行中に、標準入力よりexitという入力があったらプログラムを終了するプログラムが書きたいです。
###該当のソースコード
java
1import java.awt.*; 2import java.applet.*; 3 4public class Main extends Applet implements Runnable{ 5 Thread thread = null; 6 public void init(){ 7 this.thread = new Thread(this); 8 this.thread.start(); 9 } 10 11 public void run(){ 12 while(true){ 13 String s = new java.util.Scanner(System.in).nextLine(); 14 if(s.equals("exit")) break; 15 } 16 } 17} 18
###質問
上記のプログラムで、もしexitと標準入力で打ち込んでも
プログラムは終了してくれません
どうしたら終了してくれるようになるでしょうか?
ネットで色々調べてみたのですが、
run()を抜ければ消滅するというように書いてあるサイトが多く、
自分のはどうしてプログラムが終了しないのかよく分かりません。
どうしたらいいでしょうか?
###以下編集しました。
###編集後のソースコード
java
1import java.awt.*; 2import java.applet.*; 3 4public class Main extends Applet implements Runnable{ 5 Thread thread = null; 6 public void init(){ 7 this.thread = new Thread(this); 8 this.thread.start(); 9 } 10 11 public void run(){ 12 while(true){ 13 String s = new java.util.Scanner(System.in).nextLine(); 14 if(s.equals("exit")) break; 15 } 16 System.exit(0); //exitと入力され、runメソッドが終わると言うときに、プログラムを終了したいです。プログラムの終了方法について、ウィンドウの×ボタンを押した時と同じ動作になればいいと思っています。 17 } 18 19 public void stop(){ 20 } 21 public void destroy(){ 22 } 23 24} 25
###発生している問題・エラーメッセージ
Exception in thread "Thread-3" java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "exitVM.0") at java.security.AccessControlContext.checkPermission(AccessControlContext.java:372) at java.security.AccessController.checkPermission(AccessController.java:559) at java.lang.SecurityManager.checkPermission(SecurityManager.java:549) at java.lang.SecurityManager.checkExit(SecurityManager.java:761) at java.lang.Runtime.exit(Runtime.java:107) at java.lang.System.exit(System.java:962) at Main.run(Main.java:16) at java.lang.Thread.run(Thread.java:745)
回答1件
あなたの回答
tips
プレビュー