1 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 17:53:34 ] プログラミング言語Javaに関する質問スレです。 JavaScript, Ajaxの質問は、ここでは受け付けていません。 Web製作板をご利用ください。pc10.2ch.net/hp/ 過去ログ、関連スレッド、よくある質問とその回答など、 質問をする前に、貴方が見なければならないサイトについての情報は、 下のwikiのページにまとめてあります。 www.wikiroom.com/java/ これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、 wikiからのリンクをおたどりください。 よくある質問 ・「コマンドまたはファイル名が違います」 「'javac' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 「Exception in thread "main" java.lang.NoClassDefFoundError: 」 www.wikiroom.com/java/?path,classpath ・String に == は使うな。equals() を使え。 ・「\12288 は不正な文字です。」 文字リテラル以外で全角スペースは使えません。半角スペースに。 ・その他の質問→「APIのjavadoc見ろ」 前スレッド 【初心者】Java質問・相談スレッド113【大歓迎】 pc11.2ch.net/test/read.cgi/tech/1204363011/ /* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。 質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */ また、当スレで質問をするかたは、回答をもらえたときに、 wikiの更新をして頂ければ、忝のう存じます。 次スレは>>980 あたりで。
952 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 11:25:58 ] もうjava5以前のクソ仕様な部分はすべて後方互換性無視して 作り替えて欲しい。java5以降は神だが、それ以前はめちゃくちゃ。
953 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 11:49:15 ] import java.security.SecurityException; import java.io.IOException; import java.io.File; public class Sample{ public static void main(String[] args){ File f = new File("c:/test.txt"); try{ if(f.exeists()){ System.out.println("ファイルは存在します。"); if(f.canRead()){ System.out.println("ファイルは存在し、かつ、ファイルは読込めます。"); if(f.setReadOnly(){ System.out.println("ファイルを読取専用にしました。"); if(f.delete()==false){ System.out.println("ファイルを削除できません。"); }else{ System.out.println("ファイルを削除しました。"); } }else{ System.out.println("ファイルを読取専用にできません。"); } }else{ System.out.println("ファイルは読込めません。"); } }else{ System.out.println("ファイルは存在しません。"); } }catch(IOException e){ System.out.println(e); }catch(SecurityException e){ System.out.println(e); } } }
954 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 11:50:07 ] ファイル操作関連で、2点質問があります。 使用OSは、Windows xp Pro SP2で、c:/test.txtを作成後、上記プログラム実行時、ファイルを削除できないようにしたいですが、どうもうまくいきません。 ファイル作成時、ファイルのプロパティで、読み取り専用チェックボックスにチェックを入れてみた後、削除ができてしまうのも、なぜなのか、ちょっとわからないです。 読取専用なのに、削除ができることが、おかしいと思うのですが、ちがいますか。 Windowsの場合は、どうやったら、削除できなくすることができるのでしょうか。 それと、ファイルの読込み権限について教えてほしいです。 ファイルは存在し、かつ、フィルが読込めない時(権限がない場合)、プログラム実行時、ファイルが読込めないようにするには、どうすればよいでしょうか。 よろしくおねがいします。
955 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 12:02:16 ] >>950 JavaOne2008の時点では来年夏予定。
956 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 12:08:53 ] ファイルに対する読み取り専用ってのは、 (ファイルを存在させたままで)内容を変えることが出来ないということ。
957 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 12:19:00 ] >>954 それ、Javaの質問なんか?
958 名前:915 mailto:sage [2008/05/10(土) 13:47:35 ] >>926 できました!ありがとうございます。 Fileクラスというのを使えば良かったのですね。 ちゃんと指定した場所に保存する事が出来ました。 どうもお騒がせしてすみませんでした。
959 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 20:01:14 ] 画像データを byte配列に持ってて、ある位置に○を描画したり、 他画像を貼り付けたりするのってどうやるのでしょうか。。。
960 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 21:05:08 ] byte配列を画像データに展開して、○を描画したり他画像を貼り付けてから、byte配列に戻す
961 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 21:35:45 ] >959 1.画像データを読み込んで表示するプログラムの作り方を覚える 2.○とか簡単な図形を表示するプログラムの(ry 3.表示した画像と図形を画像データに変換するプログラムの(ry
962 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 23:13:17 ] >>960-961 トンクスです! なんとなく、何から始めればよいか分かった気がします!
963 名前:962 mailto:sage [2008/05/10(土) 23:41:42 ] 簡単な例ですが出来ました! BufferedImage srcImage = ImageIO.read(new File("src.gif")); Graphics2D graph = readImage.createGraphics(); graph.setPaint(Color.BLACK); graph.draw(new Ellipse2D.Double(100 100, 100 , 100)); ImageIO.write(srcImage, "gif", new File(workdir + "dest.gif"));
964 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 00:01:19 ] こんにちは。以下のソースをコンパイルすると、”Test.java の操作は、未チェックまたは安全ではありません。 注:詳細については, -Xlint:unchecked オプションを指定して再コンパイルして下さい。” という警告(無検査キャスト)がでるのですが、ソースを書き換えて警告が出ないようにする方法はないのでしょうか? javac -source 1.4でコンパイルするか、@SuppressWarnings("unchecked") を頭に付けると出なくはなるのですが…。 public void doPost(HttpServletRequest req,HttpServletResponse res)throws ServletException,IOException{ req.setCharacterEncoding("Windows-31J"); int index = Integer.parseInt(req.getParameter("test")); res.setContentType("text/html;charset=Windows-31J"); PrintWriter pw = res.getWriter(); //この辺でhtmlの前半生成・この直後まで削ると警告は出ない HttpSession session = req.getSession(); ArrayList<String> list = (ArrayList<String>)session.getAttribute("testArray"); //これ以降を削っても警告が出る if(list == null){ list = new ArrayList<String>(); } list.add(testValues[index]); //testValues[]はインスタンス変数で宣言済み //この辺でhtml生成 session.setAttribute("testArray",list); //この辺で</body></html>生成 }
965 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 00:07:47 ] >>964 無理。 @SuppressWarnings("unchecked") を ArrayList<String> list に付けるしかない。
966 名前:964 mailto:sage [2008/05/11(日) 00:25:34 ] >>965 ありがとうございます。 session.getAttribute()の戻り値がObject型だから、 Stringにキャストできるかどうかわからない…のかと思ったのですが、 それで合ってるのでしょうか?
967 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 00:31:41 ] >>964 「@SuppressWarnings("unchecked") を頭に付ける」が正しい 1.4互換のソースとあわせて使う場合は仕方なし。 どうしても気持ち悪いっていうならば、@SuppressWarningsを許可するUtilクラスなんかを作成しておくのはあり。 @SuppressWarnings("unchecked") public class SessionUtil { public List<String> getAttributeList(HttpSession sesstion, String key) { return (List<String>) session.getAttribute(key); } }
968 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 00:33:26 ] >>966 それで正しいよ。 静的なレベルではどんな型か解らない。 ただ、仕様としてList<String> 以外はありえない。 Tigerの拡張で、静的にList<String> 以外はいれられない/取得できないって制限をかけることが可能になった
969 名前:964 mailto:sage [2008/05/11(日) 00:54:16 ] >>967 ,>>968 ありがとうございます。 getAttributeで得たものを変数に格納しようとすると、 必ず出てしまう警告だということですね。 何か落ち着きませんが…次からは@SuppressWarningsを許可するクラスを作って対応しようと思います。
970 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 02:23:50 ] JSPでカレンダーを作ってます。 今月は問題なく表示できましたが、 先月、次月という2つのボタンを配置してボタンを押してそれぞれ表示させようと思うのですがどうすればいいのでしょう。 現在は先月、次月のボタンを配置したところまではやりましたが実行してボタンを押してみると、 先月はうまくいきましたが次月を押すと、先月と同じ動きをします。 リクエストパラメータを使う?とかなんとか聞いたのですがよくわかりません。
971 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 02:50:42 ] >>954 ファイルそのものじゃなくて、そのファイルがあるディレクトリを読み 取り専用にすればいいじゃないかな。
972 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 03:09:50 ] >>970 リクエストパラメータを使って何月のカレンダーを表示するかをサーバに渡せばいい。 わからなかったらリクエストパラメータとJSPでぐぐってから質問しろ
973 名前:970 mailto:sage [2008/05/11(日) 11:03:33 ] >>970 すいません。 >リクエストパラメータを使って何月のカレンダーを表示するかをサーバに渡せばいい。 これがググってもわからなかったので質問させてもらったんですが。 <form method="post" action="calendar.jsp?year=<%=intYear%>&month=<%=intMonth-1%>"> <input type="submit" value="先月"> <b><%=intYear%>年<%=intMonth%>月</b> <form method="post" action="calendar.jsp?year=<%=intYear%>&month=<%=intMonth+1%>"> <input type="submit" value="次月> </form> 今はこんな状態です。一体どこにどうリクエストパラメータをつかうのかがよくわかりません。
974 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 11:33:47 ] >973 Java以前の話だ。 「HTTP POST GET パラメータ HTML FORM 」あたりのキーワードで調べろ
975 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 14:04:06 ] swingの勉強中なのですが、ImageIconクラスを使った画像の読み込みで 画像が表示されません。 自分でやってみてもダメだったので本に付属のソースをインポートしてやってみたのですがやはり表示されませんでした。 下記が本のソースで、画像ファイルstream.jpgはjavaファイルと同じディレクトリ(pkggui/以下)にインポートしてあります。 本のソースで表示されないあたり画像ファイルの置き場所が間違っているような気がするのですが、どうしたら良いのか教えてください。 public class ImageLabel01 extends JFrame { public static void main(String[] args) { ImageLabel01 w = new ImageLabel01( "Imagelabel01" ); w.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); w.setSize( 350, 250 ); w.setVisible( true ); } public ImageLabel01( String title ){ super( title ); JLabel panel = new JLabel( new ImageIcon( "stream.jpg" ) ); getContentPane().add( panel ); } }
976 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 14:26:37 ] Javaファイル(ソース)ではなく、クラスファイルと同じ場所に配置しているか?
977 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 14:40:55 ] >>976 そっちか!!と思ったのですが、 eclipseがbin/pkggui以下に勝手に置いてくれてたっぽくて今見たらありましたorz ちょっとどうしても分からないので自分の状態が分かるよう 作業画面と実行画面をSSにしてみました。 こんな感じなのですが、どうでしょうか?orz roo.moo.jp/hoge.jpg
978 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 14:51:47 ] ファイル名だけど、pkggui/sample.jpg じゃね? java.sun.com/j2se/1.5.0/ja/docs/ja/api/javax/swing/ImageIcon.html#ImageIcon (java.lang.String)
979 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 15:22:30 ] >>978 アドバイスありがとうございます! 今絶対パス指定したり色々やってみたのですが、どうやらここでのファイル名はカレントディレクトリとして プロジェクトのディレクトリを参照しているらしく、そこにファイルを置くか./bin/stream.jpgとすることで解決出来ました! 以前、ImageIO.read(getClass().getResource(image))で描画処理をした時は imageに使うファイルはパッケージ以下に入れてファイル名だけを記述して行う形でOKだったため 参照しているディレクトリが同様かと思い勘違いしました><;
980 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 15:42:11 ] >>975 new ImageIcon(getClass().getResource("stream.jpg")) とすればいいと思う
981 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 17:47:16 ] 入社して業務でJavaを使うので一から学びたいのですが、良い書籍などあれば教えていただけないでしょうか? オブジェクト指向についての解説もあれば尚良いのですが
982 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 17:51:20 ] >>981 他の言語の経験は?
983 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 17:54:24 ] 入門程度ならやさしいjava以外ならなんでも良いんじゃない。
984 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 17:57:18 ] SJC-Pの問題集をやるのもあり 2ヶ月もあれば大雑把に概要は学べるだろ
985 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 18:02:41 ] 今だとどんな本があるんだろか、と思って調べたら柴田望洋氏が何か書いてるな 明解C言語は良かったが、Javaはどうなんだろ いずれにしても、古いものは避けたほうがいい JDK5.0以降に対応しているもの
986 名前:981 mailto:sage [2008/05/11(日) 18:30:04 ] すみません、経験書いていませんでしたね 学校でC++、Java、VBについては一応習いましたがあまり真面目でなかったことと、 卒業してから遊び呆けて全く書かなくなっていたツケが回って現在は忘れまくって酷い有様です。 先ほどちょっとJavaで四則演算のみの計算機作ろうと思ったら変数宣言の仕方までわからない状態でした。 Dim x as Integerって確かVBの方ですよね・・・なんでこれで通らないのかと悩んでみたり まぁ一応一度は習っていた経験は再習得には役立つと思うのですが、流石に変数宣言の仕方も忘れているようでは 何も知らないものと考えて一からと思っています。 Java以外の言語についても同様の状態です。 一応WhileやFor、If等は覚えていますが関数は殆ど忘れてます。 ちょっと上で挙げて頂いた本について調べてみます。
987 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 18:35:48 ] こういうレスを見るたびに悲しくなる
988 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 18:39:52 ] 卒業して1ヶ月くらいプログラミングから離れていただけで知識が混濁するようではこの先やっていけないんじゃないか?
989 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 18:40:13 ] 何しに学校行ってたんだ?時間の無駄はよくないよ
990 名前:981 mailto:sage [2008/05/11(日) 18:43:34 ] 自分には適正が無いという事かもしれません・・・が、悔やんでも仕方ないのでこれからはしっかり勉強して能力を維持していかなくてはと決意を新たに頑張りたいところです
991 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 18:43:52 ] あれだろ? レポート提出週は演習室で宴会みたいに大騒ぎしてたやつだろ んでレポートはDQNグループの中で一番頭いいやつのコピー レポート提出は考察とかを自分でまとめただけ
992 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 18:45:06 ] テストは過去ウラヤマシス けど、前年度と違う教授や、問題変わってたら落としてやがったwww あれは腹痛くなるまで笑ったぜww
993 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 18:46:26 ] >>990 とにかく書店行って入門書を斜め読みしてみ 一度とにかくやったことがあるなら、メタ的な知識はあるはず
994 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 18:48:05 ] 適正がないと自分で判断したなら辞めるのは正しいよ こんな糞業界、適正でもないとやってられん
995 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 18:49:56 ] 今学校でVBとかもやるんだな ちょっとびっくり
996 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 18:51:19 ] かたやDelphi、かたやScheme いろいろやるみたいですね
997 名前:981 mailto:sage [2008/05/11(日) 18:54:24 ] >991 不真面目とはいえ提出物はちゃんと自分で仕上げていましたよ 悲しいかな当時学んだ内容が脳に定着してくれなかった訳ですがそれは卒業後のだらけだけが原因ではなく、 学生当時の勉強への力の入れ方が足りなかったのもあったのだろうという事ですorz >993 そうですね、そうしてみます。ただ定期圏内にあまり大きな本屋が無いのが残念ですが・・・
998 名前:デフォルトの名無しさん [2008/05/11(日) 18:57:59 ] 無闇にCの作法が混ざりこんできてるのが感じられるなあ かえって混乱が起きてるようにも感じるが
999 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 19:07:35 ] おれ、ハカーになれるかも知れない・・・
1000 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 19:08:39 ] 1000 なら Java 死滅
1001 名前:1001 [Over 1000 Thread] このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。