質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Javaアプレット

Javaアプレットは、Webページに組み込まれて実行されるJavaアプリケーションの形式です。Java SE 11で廃止となりました。

Q&A

0回答

406閲覧

Javaでディレクトリが作成されない

aiueoaiueoaiue

総合スコア94

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Javaアプレット

Javaアプレットは、Webページに組み込まれて実行されるJavaアプリケーションの形式です。Java SE 11で廃止となりました。

0グッド

0クリップ

投稿2018/07/25 14:17

###実現したい事
Javaで画像をアプレットに表示させて、ボタンを押すと新しくフォルダを作り、その中に画像を別名で保存するというソースを書いたのですが、ボタンを押すとエラーっぽいのが表示されます。サイトを参考に.java.policyを作ったりしたのですが相変わらずアクセスが拒否されたままでした。前回も質問したのですが、アプレットはやめとけとかいう本末転倒な回答は除いて、解決策の分かる方回答お願いします。
###ソース

Java

1/*<applet code = "Image05.class" archive = "Image05.jar" width = "240" height = "240"></applet>*/ 2 3import java.awt.*;//ウィンドウの表示に必要 4import java.awt.event.*;//ウィンドウのイベント処理に必要 5import java.awt.image.*;//Imageの取り扱いに必要 6import java.io.*;//Imageの読み込み 7import javax.imageio.*;//Imageの読み込み 8import java.applet.*; 9 10public class Image05 extends Applet implements ActionListener{ 11 12 //Buttonの作成と設定 13 Button button=new Button("イメージの保存");//Buttonの作成 14 BufferedImage image; 15 @Override 16 public void init(){ 17 setBackground(Color.WHITE); 18 setLayout(new BorderLayout()); 19 add(this.button, BorderLayout.NORTH); 20 this.button.addActionListener(this);//Listenerの追加(イベントの処理先を指定) 21 image=loadImage("test.jpg"); 22 } 23 24 //イメージをファイルから取り込む 25 // 引数 - Imgaeのファイル名 26 // 戻り値 - 読み込んだイメージ 27 BufferedImage loadImage(String name){ 28 try{ 29 FileInputStream in=new FileInputStream(name);//FileInputStreamを作る 30 BufferedImage rv=ImageIO.read(in);//イメージを取り込む 31 in.close();//閉じる 32 return rv;//戻り値に読み込んだイメージをセット 33 }catch(IOException e){ 34 //エラー時の処理(エラーを表示)しnullを返す 35 System.out.println("Err e="+e);//エラーを表示 36 return null;//null を返す 37 } 38 } 39 40 //表示の必要があれば実行されるメソッド 41 @Override 42 public void paint(Graphics g){ 43 BufferedImage bufferImage=makeImage();//表示用のイメージを作成 44 g.drawImage(bufferImage,0,0,this);//作成したイメージを画面に描く 45 } 46 47 //描画や保存に必要なイメージを作成する。 48 BufferedImage makeImage(){ 49 int x2=getWidth();//画面の幅を取得 50 int y2=getHeight();//画面の高さを取得 51 int iw=image.getWidth(this);//イメージの幅を取得 52 int ih=image.getHeight(this);//イメージの高さを取得 53 int x0=0;//画面左位置 54 int y0=0;//画面上端位置 55 int x1=x2/2;//画面中央位置(横) 56 int y1=y2/2;//画面中央位置(縦) 57 58 BufferedImage bufferImage=new BufferedImage(x2,y2,BufferedImage.TYPE_INT_BGR);//Buffer用イメージを作成 59 Graphics2D g2=bufferImage.createGraphics();//描画用のGraphics2D型変数g2を取得 60 61 62 g2.setBackground(Color.WHITE);//背景色を白で指定 63 g2.clearRect(0, 0, x2, y2);//全体をクリア 64 g2.drawImage(image, x0,y0,x2,y2,Color.WHITE,this);//画面の左上にイメージを縮小して表示 65 g2.dispose();//不要になったグラフィクスは廃却 66 67 return bufferImage;//作成したイメージを戻り値として返す 68 } 69 70 71 //イメージの保存 72 // image - 保存するイメージ 73 // fileName-保存先のファイル 74 // format - 書式(bmp,BMP.gif,GIF,jpg,JPG,JPEGなどが可能) 75 // 戻り値 成功(true),失敗(false) 76 boolean saveImage(BufferedImage image,String fileName,String format){ 77 File newdir = new File("./aoi"); 78 newdir.mkdir(); 79 if (newdir.mkdir()){ 80 System.out.println("ディレクトリの作成に成功しました"); 81 }else{ 82 System.out.println("ディレクトリの作成に失敗しました"); 83 } 84 try{ 85 OutputStream out=new FileOutputStream(fileName);//ファイルとアプリを繋ぐ 86 ImageIO.write(image, format, out);//指定の形式で出力 87 return true;//成功したらtrueを返す。 88 }catch(IOException e){ 89 //例外処理が発生したらエラーをコンソールに出して、falseを返す 90 System.out.println("Err="+e);//エラー出力 91 return false;//falseを返す 92 } 93 } 94 //ボタンが操作されやらイメージの保存を実行 95 @Override 96 public void actionPerformed(ActionEvent e) { 97 if(e.getSource() == this.button){ 98 BufferedImage image=makeImage();//イメージの作成 99 saveImage(image, "./aoi/out.jpg", "JPG");//保存 100 } 101 } 102}

###エラー内容

java.security.policy: file:/C:/Users/ユーザ名/.java.policyの構文解析エラー: 行1: [;]ではなく[?grant]が検出されました Exception in thread "AWT-EventQueue-1" java.security.AccessControlException: access denied ("java.io.FilePermission" ".\aoi" "write") at java.security.AccessControlContext.checkPermission(AccessControlContext.java:472) at java.security.AccessController.checkPermission(AccessController.java:884) at java.lang.SecurityManager.checkPermission(SecurityManager.java:549) at java.lang.SecurityManager.checkWrite(SecurityManager.java:979) at java.io.File.mkdir(File.java:1311) at Image05.saveImage(Image05.java:78) at Image05.actionPerformed(Image05.java:99) at java.awt.Button.processActionEvent(Button.java:409) at java.awt.Button.processEvent(Button.java:377) at java.awt.Component.dispatchEventImpl(Component.java:4889) at java.awt.Component.dispatchEvent(Component.java:4711) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760) at java.awt.EventQueue.access$500(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.awt.EventQueue$3.run(EventQueue.java:703) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90) at java.awt.EventQueue$4.run(EventQueue.java:733) at java.awt.EventQueue$4.run(EventQueue.java:731) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80) at java.awt.EventQueue.dispatchEvent(EventQueue.java:730) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

###試したこと
javac -encoding UTF8 Image05.java でコンパイル
jar cvf Image05.jar Image05.class でjarファイル作成
appletviewer Image05.java でアプレット実行
###.java.policy

grant codeBase "file:/C:/Users/ユーザ名/Desktop/-" { permission java.security.AllPermission; permission java.io.AllPermission; };

###参考サイト
http://a4dosanddos.hatenablog.com/entry/2013/07/04/233122

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問