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 あたりで。
792 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 19:41:14 ] Java以前に、50枚切り替えとか常識的に考えて設計がおかしいだろ どういう手段を実現したいのかではなくて、どういう目的を実現したいかを説明してみ
793 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 19:45:10 ] 業務アプリとか作ったことないのか…
794 名前:790 mailto:sage [2008/05/03(土) 19:45:29 ] >>791 作成して初期化するって意味が解らん 新しい画面を表示するときにnewした所で一瞬 792も言っているが、まずは何をしたいかを説明した方がいい
795 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 19:46:17 ] >>787 >>788 有難うございました。本を見ながらなんとか出来ました。結城さんもうすこし分かりやすく書いてよ・・ StringBuilderとかまだ分からない言葉もありましたが助かりました。
796 名前:デフォルトの名無しさん [2008/05/03(土) 19:53:13 ] >>792 詳しいことは省きますがあるアプリケーションを作っていて本当に様々な 操作をするのに50枚いるのですが、メニュー画面から親JPanelは50枚以上かな・・・ その上にももちろんJPanel載っています。そしてメニュー画面のボタンを押すと切り替えていっています。 そしてデータなどの入力・編集・印刷処理などをさせています。今現実的にうまくは動いているのですが、 ただ重たくて・・・できるだけ簡単に改造できればと思っています。 プログラムをロードするときに全部作っていてCardLayoutでばんばん貼り付けていました。 それをmediatorパターンで中央管理していたのですが・・・おそらくそこでJPanelを生成するクラスを作って 管理すればいいですかね?
797 名前:デフォルトの名無しさん [2008/05/03(土) 19:58:27 ] >>793 その通りですw 言語処理系でプログラムをやっていたんですが急に業務用のアプリを速攻で作りましたw Windowを使ってプログラムを書くのは初めてです。 >>794 インスタンスを作るという意味ですinit()やexit()をcallしています。 インスタンスを作ってあるものを。今はCardLayoutで切り替えて共通のインターフェースでinit()で データの初期化やロードをしたりexit()メソッドを呼んだりしています。
798 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 20:55:24 ] >>793 確かに業務アプリには糞設計のGUIが散見されるな
799 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 20:56:32 ] m9(^Д^)
800 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 20:59:10 ] >>796 重くなっている原因がJPanelの数って話は推測ですか、実測した結果ですか? また、起動パラメータやJavaのバージョンをあげるなど、ソースに手を入れずに出来る対策はされましたか? ちなみにSwingであれば、大雑把に1.4から5.0にすると2倍、5.0から6にすると1.5倍くらいのパフォーマンスアップが見込めます。 起動時のヒープ確保量のデフォルトも大きくなっています。
801 名前:デフォルトの名無しさん [2008/05/03(土) 22:09:01 ] >>800 どうもです。 残念ながら推測です。ただグラフィックの資源を食いつぶしているのではないかと 感覚的にしかつかんでいません。今5.0 を使っていますが、6.0にするとそれだけの パフォーマンスがアップするんですか・・・ちょっと考えて見ます。 実行時のパラメータはメモリ関係の方はかなりあげています。 もうかなりの人間が使っているのでソースはいじりたくないですからね。 何せ、今回GUIでWindow自体の開発は初めてでデザインパターンやJavaの本を短期間で 読みあさりどんどん書いていってしまったのでここに相談させていただきました
802 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 22:10:10 ] >>798 質問している人間ではなく50枚も作るのかと言っている人間じゃないのか(笑)
803 名前:デフォルトの名無しさん [2008/05/03(土) 22:19:58 ] 教えてください、今ホームページを作っていてHTMLのsubmitボタンを押したときの 時間を取得するのは可能ですか? 昔本呼んだswingかなんかの処理ではたしかイベント処理があったと思うんが HTMLのボタンでもイベント処理とかできるんですか? 初心者なんで可笑しなこと聞いてたらすみません
804 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 22:22:49 ] Javaは関係なさそうな・・・ フォームとJavaScriptでいけるんじゃね?
805 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:11:19 ] >>804 すいません、今Javaを習っていて web3構築を使ってホームページを提出しなきゃいけなくて どーしても押された時間によって処理したいことがあって ちなみにJavaScriptはまったく分かりません swingもまだ習ってないんですけど たしか昔本で読んだことがあって
806 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:14:20 ] >>805 Submitを押された時間ではなくて、Servletでリクエストを処理した時の時間ではダメなのか? 多少の誤差は出るが、十分な気がするけど。 むしろ、クライアント側の時刻なんて各マシンの時刻だから信用できるものでもないし。
807 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:14:33 ] よくわからんけど課題って習ったことを使えばできることなんじゃないの?
808 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 00:15:23 ] >>806 >Servletでリクエストを処理した時の時間ではダメなのか? そういう方法もあるんですね、十分だと思います ていうかDateクラスで得られる時間って 自分のパソコンに設定されている時間だってことに気付かされました ありがとうございました >>807 ショッピングサイトならなんとか作れそうなんですけど 落ちこぼれなんで、皆と違うものをと思ったんですけど 自分で調べろ的な学校だし 大人しくショッピングサイトのほうがいいかもしれません
809 名前:デフォルトの名無しさん [2008/05/04(日) 01:51:50 ] 例えばArrayListなどのインスタンスを、メソッドに引数として渡し、 メソッドの中で、そのインスタンスに対して操作を行うことは、 Javaのマナー的に、やらない方がいいのでしょうか?
810 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 01:55:56 ] モジュール結合度が上がる (共有結合になる) のであまり良くはない。 まぁクラス内に閉じていて private 宣言されているようなユーティリティメソッドとかなら良いんじゃないの。
811 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 02:37:03 ] ケースバイケース 禁忌ではない
812 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 04:19:14 ] むしろ、弄られないことを想定している場合は (そのメソッドが継承できるように公開されている場合は) 呼び出し側でコピーを作って渡すべき
813 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 05:13:28 ] 操作を行うって書いてあんじゃん。 それにコピーなんか作らなくても Collections#unmodifiableList() で十分。
814 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 08:00:49 ] >>812 呼び出し側でコピー作るのか? 普通は呼ばれた方(コンストラクタ等)でコピーを作るんじゃね? ArrayList(Collection col) とかそうだろ?
815 名前:809 mailto:sage [2008/05/04(日) 17:29:19 ] >>810 >>811 どうもありがとうございます。 禁忌じゃないけど、あまり良くないという感じでしょうか。 ケースバイケースで考えてみます。
816 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 18:45:08 ] >>814 コンストラクタでコピーするのは、 生成されたインスタンスが内部に保持するフィールドを防御するためで、目的が違う。 それにコンストラクタは、明示的にクラスを指定しなければいけないから 何をするべきかは、ドキュメントをみて決定していいと思う。 >>813 unmodifiable〜で十分なのは、ごもっともで
817 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 18:56:07 ] >>815 むしろ、何が行われるかをドキュメントに書くことが重要 外見は同じでも、 /** ソートしたリストを返す。元のリストはそのまま */ List sort(List list) /** 引数の list を破壊的にソートした後、そのリスト自身を返す */ List sort(List list) の2つじゃ、使う側のどきどき感が違う
818 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 19:19:44 ] ドキュメントは重要は同意 設計の方針としては、どんな使われ方しても自分のバグにならないように保守的にするのが良い。 コンストラクタの中でのコピーはそういう観点でもある。
819 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 21:11:25 ] >>818 でもそれを徹底し過ぎると、メモリを無駄に馬鹿食いする危険性も。 Objectに変更可否フラグがあれば良かったのかもしれんが……。
820 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 21:13:37 ] たいしてつかわねーよw
821 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 23:05:10 ] >>819 それがドキュメントであり、設計なのでは? シャローかディープのコピーでも違いがあると思うけど。
822 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 23:51:52 ] そんなふうに色々考えているうちに、頭のCPUがフル稼働して、自分が何に悩んでいるかすら忘れ、結局は一番簡単で手抜きの設計に落ち着くわけです
823 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 00:13:50 ] まさにYAGNIの原則。
824 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 01:24:07 ] 防御コピーは徹底しろ。それが嫌な奴はオブジェクト指向言語など使うな。 どうせ、「オブジェクトを作ると遅くなる」とか言い出すのだろうし。
825 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 01:29:29 ] 極論バカが来ました
826 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 01:42:13 ] 防御コピーが極論か。 オブジェクト指向がこの世に出てから半世紀近く経っているのにな。
827 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 01:50:24 ] オブジェクト指向覚えたての社会人 2 年目かよw でも経験少ないから適材適所のような程度問題が判断できないんだよな。
828 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 03:09:17 ] 全てのオブジェクトをイミュータブルにしてしまえばいいんだよ 停止し結晶化した世界は美しいぜ
829 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 03:11:13 ] 吟遊詩人が現れた
830 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 04:22:00 ] >>828 それ何てErlang? まぁErlangだとI18N/L10Nが絶望的なので、実用を考えるなら Scalaでありとあらゆるオブジェクトをvalで宣言するのが良さげ。
831 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 09:24:54 ] [問題]与えられた9個の変数(int型)の中から最大値と最小値を求め、表示しろ。 [解1]3つのメソッドを作る void setData(int...data){// ここでmaxとminを求める} int getMax() {} int getMin() {} // こんな単純な問題でメソッドを3つも使う必要があるのか? [解2]変数maxとminを持った内部クラスを作る class Data { int max; int min; } Data getData (int...oneDatas) {// 最大値、最小値を求めDataクラスに格納して返す} // なんか気持ち悪い。 先輩方はこのような宿題を出されたら、どのように解答したらいいと思いますか?
832 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 09:57:32 ] どういう状況で出された問題なのか解らないのではっきりとは言えないが、解答として間違っていないとは思われ。 クラスという概念になれるっていう場面ならば、解1の方が良いと思う。 だけど、setDataでmaxとminを求めるのではなく、フィールドに変数を格納しておき、getMax, getMinで最大(最小)を求める方が良い。 解2の方は内部クラスとして定義しているだけならば、本質は解1と何も変わらん。 1つのメソッドで2つ以上の値を返す時には普通に使う。
833 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 09:58:48 ] 表示しろだろ? 素直にそのままやろうぜー max(int ...data)とmin(int ...data)を作っておいてそれを利用して普通に出力かな 2回も走査しないといけないじゃないか!って気持ち悪い場合は、これくらいのロジックだしその場で書く。 これくらいで新たなクラスやら、その結果専用のクラスを作るのはどうかと思う。
834 名前:832 mailto:sage [2008/05/05(月) 10:01:00 ] 補足。 解1でフィールドに保持しておくと、メモリ使用の点、最大最小を求めるコスト的な点ではデメリット。 だが、そのクラスに「平均値を取得するメソッドを追加しろ」という仕様変更に強いのがメリット。 全ての処理をsetDataでやっている場合、まったく異なる性質のメソッドを追加しているのにもかかわらず、最大最小を求めるメソッドがデグレを起こす可能性があるからね。
835 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 10:09:41 ] APIの使い方の話題なのか、for文とif文レベルの話題なのか、832の書くようなクラス設計の話題なのか、問題文に記述するべきだな。
836 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 11:19:13 ] >>831 本題には無関係だが、dataは複数形で、単数形はdatumだ。 (dataを単数扱いすることもあるらしいが、どちらにしろdatasにはならない)
837 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 17:27:12 ] アプレットが初期化されていませんって言うのはいったい何のエラーなんですか? あとアプレットをhtmlに組み込むのって<body>の中に何か書く必要ありますか?
838 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 17:44:42 ] アプレットが初期化できていないってエラーだ。 www.google.co.jp/search?q=java+%E3%82%A2%E3%83%97%E3%83%AC%E3%83%83%E3%83%88+%E5%85%A5%E9%96%80
839 名前:デフォルトの名無しさん [2008/05/05(月) 20:40:18 ] すんません、メソッドについて質問させてください。 Aクラス ・メンバ変数ふたつ(static) ・メソッド(実行すると引数をもとに計算してメンバ変数の内容を書き換えるメソッド) 適当なクラスファイルでAクラスのインスタンスを生成して、 メソッドに引数を渡して処理をし、その次の行にAクラスのメンバ変数ふたつを呼び出したところ、 変数はどちらも初期値のままでした。なにがいけないのか全くわかりません。 どなたか教えていただけませんか。 メソッドは戻り値はなく、メンバ変数を書き換えるだけなのでvoid宣言してありreturnは書いてません。
840 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 20:46:27 ] >>839 書き換えてないからでしょう
841 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 21:01:26 ] >>840 どうして書き換えられていないのか心当たりになるようなケースありますか?
842 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 21:04:37 ] まずはコードを貼るんだ
843 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 21:06:00 ] とにかく問題のコードを書いてくれ
844 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 21:11:16 ] 開始時刻と終了時刻を入力して経過時間とともに表示するプログラムです。 package XXXXXX; public class ex134{ /* クラスフィールド */ public static int hh, mm; public int subTime(int h1,int m1,int h2,int m2){ mm = h2 * 60 + m2; mm = mm - (h1 * 60 + m1); /* 終了時刻が翌日であるケースの修正 */ if (mm < 0){ mm = 24 * 60 + mm; } hh = mm / 60; mm = mm % 60; } }
845 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 21:15:01 ] import XXXXXX.*; public class XXXXXX{ public static void main(String[] args){ /* 変数 */ String buf; /* インスタンス生成 */ KeyIn key = new KeyIn(); ex133 ex = new ex133(); /* 時刻の入力 */ //入力文省略 /* 経過時間の計算と表示 */ //省略 ex.subTime(h1, m1, h2, m2); buf = " " + ex.hh; buf = buf.substring(buf.length() - 2); System.out.print("経過時間 " + buf + " 時 "); buf = " " + ex.mm; buf = buf.substring(buf.length() - 2); System.out.println(buf + " 分"); } }
846 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 21:17:14 ] すいません、貼り付けた直後に自己解決しました。 インスタンス生成するとこのクラスファイル名を間違えていました。 voidもintになってた!本当にすいません。
847 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 21:34:45 ] これもカーニハンの言うテディベアの話と同じ原理なんだろうか
848 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 21:39:32 ] マーフィーの法則w
849 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 22:07:38 ] >>832 ,834 わかりやすい説明ありがとうございます >>833 getMin(int...datum)、getMax(int...datum)の二つのメソッドを作って提出したいと思います。 ありがとうございます。 >>835 問題のレベルとしてはif文、for文を正しく使うレベルだと思います。 しかし、授業ではメソッドやクラスを使うところまでは学んだので、これを使って問題を解いてみようと考えてみたら上手にメソッド分けが出来なくて・・・ >>836 英語の勉強をがんばりますXD
850 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 22:23:25 ] 必要のないところにオブジェクト指向的なプログラミングをするのは 不必要な複雑さを導入するだけ
851 名前:デフォルトの名無しさん [2008/05/05(月) 22:31:45 ] JSPでFormから入力された文字列をInteger.parseInt()で int型の数字にして利用しているのですが、例外処理の書き方が判りません。 Integer.parseInt()に"12345q"とか入った時点でエラー吐いて止まってしまいます。 どのように回避すれば良いのでしょうか?
852 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 23:31:50 ] parseIntで発生する例外をcatchするか、charにばらして1文字づつチェックするか、正規表現で数値かどうかをチェックするか、好きにしろ
853 名前:デフォルトの名無しさん [2008/05/06(火) 00:22:03 ] Java SEのダウンロードページにアクセスできません このままでは仕事が出来ないので誰かインストーラうpしてください><><<<
854 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 00:33:37 ] またかよ・・・ バージョンの指定はないな。 ほれ sakuratan.ddo.jp/uploader/source/date80855.zip
855 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 00:59:50 ] (;゚д゚)ァ.... 本当に聞いてくれるとは思わなかった。ありがとう。 とはいうものの、今更バージョン違うなんて言い辛いorz
856 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 01:38:35 ] applis.servehttp.com/ の 00013292.exe パスはjdk6
857 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 03:46:59 ] journal.mycom.co.jp/column/java/023/index.html を参考に勉強していたのですが 下のコードがバイトコンパイルを通らず困っています バージョンを変えないといけないのでしょうか? $javac GenericClass.java GenericClass.java:1: '{' がありません。 public class GenericClass<E> { ^ GenericClass.java:3: '}' がありません。 } ^ エラー 2 個 環境は以下の通りです java version "1.6.0_03" Java(TM) SE Runtime Environment (build 1.6.0_03-b05) Java HotSpot(TM) Client VM (build 1.6.0_03-b05, mixed mode)
858 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 03:54:22 ] 本当に1.6のjavac使ってるか? javac -version で確認してみろ。 1.4とか出てきたならば、pathを確認してみるべし。
859 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 04:11:38 ] …間違ってました。orz パスを確認したら1.4 を呼んでました。 ちなみに 1.4 では javac -version が用意されてないようです
860 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 16:26:41 ] >>859 javac -J-version
861 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 18:07:30 ] linkedlistで最後の要素を追加、削除するときは、その処理を実行するたびに先頭からたどっていくのでしょうか? それとも前回参照した値からたどっていくのでしょうか?
862 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 18:40:15 ] 一般的な実装であれば最後に追加するのに先頭からどうこうすることはない。 気になるならば、ソース読んでみたら?
863 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 18:50:01 ] 実装軽く読んだけど、まあ少なくとも線形探索はやってない感じ
864 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 19:18:53 ] www.kab-studio.biz/Programing/JavaA2Z/Word/00000319.html ↑を読むと ただし、LinkedListクラスの要素を取得する場合、インデックスナンバーから直接取得することはできず、 先頭に当たる要素からリンクをたどって数えていき取得することになる。 そのため、データの取得はArrayListクラスよりも遅い。 という風に書いてあったんですけど、先頭から削除しても、最後尾から削除してもすべての要素を削除するのに かかる時間に違いがなかったので質問させていただきました。 で更にぐぐってみたら www.stackasterisk.jp/tech/java/collection02_02.jsp ↑に 削除する要素が後半だったら、最後尾から探索するって書いてあったんで理解しました
865 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 19:26:17 ] 先頭と最後尾へのアクセスに特化させて効率をよくしたのがLinkedListなんだよ 基本的なデータ構造なんだから覚えておけ
866 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 19:30:23 ] バカが現れた。
867 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 19:51:16 ] いやいや、釣りだろw
868 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 19:56:03 ] 彼は僕達には理解できないLinkedListの真理に到達したに違いない
869 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 20:06:28 ] あぁ、まりちゃんね。
870 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 20:35:31 ] VMが落ちると出力されるコアダンプについてですが、 ファイルを見ても何がなんだかさっぱり分かりません?_? 最低限、コアファイルから分かる情報は拾えるようにしたいのですが コアダンプについて詳細に解説してるサイトを教えてくださいm(__)m できれば日本語のサイトが良いです。
871 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 20:50:16 ] コアダンプというのは、簡単にいえば、プログラムが動いていたときの そのプログラムが使っていたメモリの状態をファイルに落としたもの。 落ちたプログラムをデバッガにかけるときに、死んだときの状況を再現する ためにコアダンプを与えることが出来る。単体ではあまり意味はない。 デバッガとかgdbとかdbxという単語とペアでぐぐればいいと思う。
872 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 21:11:46 ] ありがとうございます。 コアダンプ単体では意味がないのですね。 教えていただいた単語も含めぐぐってみます。
873 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 01:19:20 ] wavを再生する際の音量を調節するにはどうすればいいのでしょうか? 調べては見ましたがどうもそれっぽいのが出てこず・・・ www.google.com/search?q=java+%E9%9F%B3%E9%87%8F%E3%80%80wav&hl=ja&lr=&client=opera&rls=ja&hs=wF5&start=20&sa=N
874 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 06:03:01 ] [form.jsp]の入力フォームに入力された値をtxtファイルに書き出したいのですが、うまくいきません。 エラー無く[form_ok.jsp]に移動はしてくれるのですが、data.txtがどこにもつくられません。 どこをどう直すべきでしょうか。(改行が多すぎるとエラーが出たので、妙な改行になっています。すみません。) [form.jsp] <form action="form_ok.jsp" method="post"> <input type="text" name="data"><input type="submit" value="送信"> </form> [form_ok.jsp] <jsp:useBean class="form.form" id="mail" scope="session"/> <html><head></head> <% String data = request.getParameter("data"); form.main(data); %> <body>(以下略) [form.java] package form; import java.io.*; public class Mail { public static void main(String data) throws IOException { try{ FileOutputStream fos = new FileOutputStream("data.txt"); OutputStreamWriter osw = new OutputStreamWriter(fos , "MS932"); BufferedWriter bw = new BufferedWriter(osw); bw.write(data); bw.close(); osw.close(); fos.close(); } catch(Exception e){ e.printStackTrace();} } }
875 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 10:44:23 ] long型を使って19桁までの計算はできましたが、20桁以上の計算のやり方がわかりません。 具体的に言うと12345678901234567890*12345みたいな計算です。 お願いします。
876 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 10:49:06 ] BigDecimal
877 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 12:40:27 ] 整数だけでいいなら BigInteger
878 名前:875 mailto:sage [2008/05/07(水) 13:46:56 ] >>876-877 レスサンクスです。 それらについて検索して、色々やってみます。
879 名前:デフォルトの名無しさん [2008/05/07(水) 19:17:43 ] プログラミング学びたいんだけどC、C++、JAVAどれから始めればいい?あとなんかいい本ある?
880 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 19:26:50 ] >>879 初心者のためのプログラミング言語ガイド Part8 pc11.2ch.net/test/read.cgi/tech/1208186034/ 目的を書いた方がいいよ 何のためにプログラミングを学ぶのか、具体的に何を作りたいのか
881 名前:デフォルトの名無しさん [2008/05/07(水) 20:17:39 ] 就活で使いたいんだよねー 今年学部で就活してみてIT技術の大切さが分かったから院でまた就活するときに使えるように ITコンサルいきたいって思ってるんだけどなにがいいかな?多分企業によっても違うんだろうけど、一番使い勝手がいいのは何?
882 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 20:27:39 ] こうやってまた学校が屑を押し付けてくるのか
883 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 20:34:05 ] Cは、その選択肢の基礎になる。 Cができれば、UNIXのカーネルも読めるし。
884 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 21:51:57 ] Cができればカーネルが読める、 英語ができればカーネルさんと話せる
885 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 22:01:46 ] javax.swing.tree.DefaultTreeModelの仕様について質問です。 DefaultMutableTreeNode n1 = new DefaultMutableTreeNode(); DefaultTreeModel t = new DefaultTreeModel(n1); System.out.println(t.getRoot()); => null なぜnullが出るのでしょうか? コンストラクタはrootを要求しています。 なのでn1がrootとして取得出来ると思うのですが、 どうすればn1がrootとして取得出来るようになるのでしょうか? ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/api/javax/swing/tree/DefaultTreeModel.html
886 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 22:15:00 ] 追記です。 加えて System.out.println(t.getRoot()==null); => false になります。 nullではないと言ってるのにnullが出るのはなぜでしょうか・・
887 名前:デフォルトの名無しさん [2008/05/07(水) 22:35:55 ] ファイルの書き込みをFileWriterでやるのはうまく出来たのですが 書き込むときにまっさらにして書き込みたい時はどうするのでしょうか? ループの中で一行のテキストを書き込んでるのですが、追記じゃなくて、その時書き込んだものだけが残るようにしたいです。 File file = new File("path"); file.delete(); FileWriter fw = new FileWriter(file); fw.write("書き込むテキスト"); とかやってみたけど、ファイルサイズ0になってしまいました。 お願いします
888 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 22:49:49 ] closeしろ
889 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 23:40:15 ] >>885-886 > DefaultMutableTreeNode には、ユーザオブジェクトへの参照、つまりユーザが独自に定義するオブジェクトへの参照も格納できます。 > DefaultMutableTreeNode に toString() を指定してその文字列表現を要求すると、そのユーザオブジェクトの文字列表現を返します。 を踏まえたうえで ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/api/javax/swing/tree/DefaultMutableTreeNode.html#toString() こいつが呼ばれているからだと思う
890 名前:超初心者 mailto:sage [2008/05/08(木) 00:08:55 ] すみません。 .jadファイルと.jarファイルをアップして、 携帯でDLして、正常に起動できるようにしたいのですが、 どうすれば、いいでしょうか? とりあえず、2つのサーバーの内、一つのサーバーでは、 アップしたデータが携帯で正常に起動する事が出来たのですが、 もう一つのサーバーでは、ミスマッチと表示され、起動できませんでした。 .jarファイルは、URL認証がOKのサーバーじゃないと無理なのでしょうか? ちなみに、.htaccessに.jadと.jarのmime-typeは、追加しています。 すみませんが、どなたかご教授お願い致します。m(__)m
891 名前:デフォルトの名無しさん [2008/05/08(木) 08:52:56 ] お邪魔します。同じく超初心者です。 課題でハングマンをいう文字当てゲームのプログラムを書いてる所なんですが、 なにやらもうにっちもさっちもいきません。 見本の一部がこんな感じです。 Word: _ _ _ _ _ _ _ _ _ _ _ _ _ _ Misses: Guess a letter: a Word: _ _ _ _ _ _ _ A _ _ _ A _ _ Misses: Guess a letter: e Word: _ _ _ _ _ _ _ A _ _ _ A _ E Misses: インプットされた文字をcharにストアしてanswerと照らし合わせて‥ みたいなとこですでに行き詰まってます。 for (int i = 0; i <= answer.length; i++) { if (answer.charAt(i) == input) { System.out.prin(input); } else if (answer.charAt(i) !=input) { System.out.print("_"); } } } 前に予想した文字もプリントしようとすると際限なく長くなっていっちゃうんですが‥‥ しかも答えはランダムに選ばれるので答えの文字数は不明です。 どんなループに入れたらいいんでしょうか? それと予想された文字を正誤順番問わず繋げてストリングにストアしろという ヒントも出してもらったんですが‥ 課題の目的としては、Boolean method, while loop, text processing、 あたりの知識を理解しろということみたいです。 かなり適当な説明ですが、なにかしらご教示いただけるととっても助かります。
892 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 09:02:33 ] >>889 どうしてそうなるの? getRootでなんでそんなものを呼び出すのか分からない。 理由がないだろ
893 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 10:23:27 ] tomcat + データベースでjava.util.Dateを扱うときなんですけど。 データベースからrs.getDate()メソッドで日付を取り出したとします。 jsp側でDateのインスタンスを生成しデータベースから取り出したDateと生成した Dateをequials()で比較するんですけど上手くいきません。 何かおかしいところがあったらご教授下さい。
894 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 10:30:07 ] >>892 getRootの戻り値になっているDefaultMutableTreeNodeオブジェクトのtoStringが呼び出されて いるのであってgetRootが直接手を下しているわけではないってことでわ?
895 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 10:44:15 ] >>893 > データベースからrs.getDate()メソッドで日付を取り出したとします。 こっちはjava.sql.Dateで > jsp側でDateのインスタンスを生成しデータベースから取り出したDateと生成した こっちはjava.util.Dateになってて違うオブジェクトを比較しようとしてない?
896 名前:895 mailto:sage [2008/05/08(木) 10:50:01 ] そうかも・・・・早速修正してみます。助言ありがとうございます。
897 名前:893 mailto:sage [2008/05/08(木) 14:35:20 ] どうしても上手くいかないのでjava.sql.Dateの日にちを拾得したインスタンスを Stringとして扱うことで解決させました。
898 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 15:23:58 ] >>895 equals()で比較している限りtrueになるので、それはない。 Date date = new Date(); java.sql.Date sqlDate = new java.sql.Date(date.getTime()); System.out.println(sqlDate.equals(date)); // trueになる System.out.println(date.equals(sqlDate)); // trueになる >>895 日付以外のフィールド(時分秒)が一致していないのが原因じゃない?
899 名前:893 mailto:sage [2008/05/08(木) 16:57:14 ] >>898 sql.Dateへのコンストラクターdate.getTime()を System.currentTimeMillis()で行っていたのが原因かもしれません。
900 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 18:00:45 ] JavaのGCには、以下の3つの種類があることを知りました。 www.atmarkit.co.jp/fjava/rensai3/javavm02/javavm02_2.html ・SerialGC ・ParallelGC ・ConcurrentGC java.sun.com/javase/ja/6/docs/ja/technotes/guides/vm/gc-ergonomics.html によると、Server VM (java -server)では ParallelGCが使われるようですが、 -XX: オプションをつけない場合、どのタイプのGCが使われる使われるのでしょうか? server VM だけでなく、いまどきのJVMでは、常にデフォルトでは ParallelGC? java.sun.com/javase/ja/6/docs/ja/technotes/guides/vm/server-class.html によると、Java は自分が動いているOS、メモリ量から、server VM か client VMかを 自動で切り替えるようですが、GCの種類もそうなのかなと思って質問しました。
901 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 18:26:52 ] ConcurrentGCじゃなかったけ? ParallelGCは-XXオプションつけないとならない
902 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 19:27:43 ] JavaMailでアラビア語などの日本語や英語以外の文字の メールを送るにはどうしたらいいでしょうか?
903 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 19:36:47 ] ISO-8859-6などのアラビア語を扱える文字コードを指定すればいいんじゃね メーラもそれに対応してないと読めないと思うけど
904 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 19:49:37 ] UTF-8の文字列で送っちゃうのはだめなのかな。 UTF-8 か >>902 さんのほうかどうかはともかく、メールのヘッダで Content-Type: text/plain; charset="UTF=8" と指定しておくのはわすれないように。 ※ 昔の日本の電子メールのとき(MIME 関連のヘッダをつけなくとも生JISにしておけばメーラで読めた) のように、アラビア語圏の世界では、メールのボディの文字列をISO-8859-6 にしておけば、 ヘッダにMIME 関連のものをつけなくても読めるのだろうか。 いまどきはアラビア語圏といえども、たいていの人は Outlook とか ThunderBird(MIME 対応メーラ)なのかな。
905 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 20:27:48 ] >>903 , >>904 ありがとうございます。 本文に日本語も混ぜたいのでUTF-8で試してみたいと思います。
906 名前:デフォルトの名無しさん [2008/05/08(木) 21:20:12 ] コントロールパネルに数行に渡ってjavaのluntime updateなたいなのが あるけど消していいの? それぞれ144MBくらいのやつ。
907 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 21:22:38 ] >>906 一番バージョンの大きいのが一つ入っていれば良い。
908 名前:デフォルトの名無しさん [2008/05/08(木) 21:25:20 ] ありがとう。消したら、ウインドウズに設定してる?? みたいな表示が出て、ホントは消えないような感じがしたわw
909 名前:初心者 [2008/05/08(木) 22:17:10 ] まじで素人な質問なんだけどコマンドプロンプトでディレクトリを移動したいんだけど指定されたパスが見つかりませんになっちゃうんだけどどうしたらいいの?
910 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 22:56:12 ] まず質問に適切なスレを見つけたらいいと思うよ
911 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 00:40:56 ] Aクラスを継承したB01〜B20クラスがあります。 このB01〜B20クラスは、B01とB05, B09とB15の ような感じで、2つのクラスをセットで使います。 このときに、 B01とB02の場合は、100 B01とB03の場合は、150 ・ ・ B19とB19の場合は、200 B19とB20の場合は、120 みたいに、クラスの全ての組み合わせで 決まった値を持ってくるようにしたいんだけど、 どうやるのがスマートなんでしょう?
912 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 00:55:27 ] それだけの情報だと、 Aのstaticフィールドに「Aのサブクラス2つ」(からなるオブジェクト) をキーにしたMapを持つ くらいか。 2つの組み合わせを別途クラスとして定義するほうがいいかもな。 AやBに具体性があるともうちっとよい助言が得られるかも。
913 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 01:08:14 ] クラス名を連結させてハッシュ関数に放り込むとか・・・・・?
914 名前:902 mailto:sage [2008/05/09(金) 09:35:29 ] 下記のようなソースでアラビア語を送ってみました。 OutlookExpressでは正常に表示できたのですが Beckyでは■になってしまいました。ただその文章をIEのテキストエリアに 貼り付けるとアラビア語が復活するのでBecky側の問題かもしれません。 プログラムとしては下記でよいものでしょうか? mimeMessage.setFrom(new InternetAddress(this.fromAddr,"", "utf-8")); mimeMessage.setRecipients(Message.RecipientType.TO, this.toAddr); mimeMessage.setSubject(this.subject, "utf-8"); mimeMessage.setContent(this.text, "text/plain; charset=utf-8"); mimeMessage.setHeader("Content-Transfer-Encoding", "8bit"); mimeMessage.setSentDate(new Date());
915 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 09:46:43 ] JAVA初心者です。 ファイルの保存をするために、下のようなメソッドを書きました。 FileDialog fd = new FileDialog(this, "Save", FileDialog.SAVE); PrintStream ps; FileOutputStream fos; public void save(){ fd.show(); String filename = sd.getFile(); if(filename == null) return; fos = new FileOutputStream(filename); ps = new PrintStream(fos); ps.print(display.getText()); ps.close(); fos.close(); } これをactionPerformedメソッドでボタン押下時に呼び出すようにしています。 保存ダイアログはちゃんと開くし、保存もできるのですが、場所の指定ができません。 違うフォルダを指定しても、javaファイルが置いてあるところと同じ場所に保存されてしまいます。 なぜなのでしょうか? JAVAを勉強し始めたばかりなので、トンチンカンなこと書いてたらすみません。
916 名前:915 mailto:sage [2008/05/09(金) 09:51:28 ] すみません、saveメソッド内2行目は String filename = sd.getFile(); ではなく、 String filename = fd.getFile(); です。
917 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 10:50:56 ] >>915 ,916 試してないから違うかもシレンけど、 getFile()じゃなくてgetDirectory()じゃないの? あと、JDK5以降だったら、showじゃなくてsetVisible使うんじゃなかったっけ。
918 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 11:02:17 ] >>911 それだけだと、「B01〜B20はインスタンスでいいんじゃないの?」って気がする。
919 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 11:37:06 ] showじゃなくてsetVisibleつかうのは1.4以降
920 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 11:47:35 ] よろしくおねがいします。 Simpleformatクラスを使用して、 Timestamp型をString型("yyyy'/'M'/'d' 'H':'m':'s"形式)にしたのですが、 このStringをTimestamp型に再変換するにはどうすれば良いでしょうか?
921 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 13:27:28 ] >>920 SimpleDateFormatでパースして、得られたDateを Date#getTimeして、Timestampのコンストラクタに与えたらどうだろうか。
922 名前:900 mailto:sage [2008/05/09(金) 14:36:32 ] >>901 レスどうもありがとうございます。 java.sun.com/j2se/reference/whitepapers/memorymanagement_whitepaper.pdf の P14 には、 java.sun.com/javase/ja/6/docs/ja/technotes/guides/vm/server-class.html において Server VM が選択された場合はデフォルトで Parallel Collector が使われ、 それ以外のケースは Serial Collector がデフォルトになるとありました。
923 名前:920 mailto:sage [2008/05/09(金) 14:45:09 ] >>921 それで行けました!ありがとうございます!
924 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 14:51:06 ] >>919 FileDialogというかDialogやWindowに関しては1.4ではshowは非推奨メソッドではない。 deprecatedになってsetVisibleを使用しろとされたのは1.5から。 Componentは1.1からshowは非推奨だったので、 非推奨になるのが遅かったのはトップレベルウインドウ特有の何か事情があったんじゃないかと思う。
925 名前:915 mailto:sage [2008/05/09(金) 17:15:00 ] >>917 ,919,924 レスありがとうございます。 getFileをgetDirectoryにしてみたり、showをsetVisibleにしてみたりしましたがやはりだめなようです。 ファイルの保存自体はできているのですが・・・・・・、なぜなんでしょうかね・・・
926 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 17:31:31 ] >>925 File file = new File(fd.getDirectory(), fd.getFile()); fos = new FileOutputStream(file);
927 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 17:33:55 ] >>925 FileDialogやめてJFileChooser使ってみれば?
928 名前:デフォルトの名無しさん [2008/05/09(金) 17:53:06 ] プログラムを動かすとブラウザでホームページを表示できるようにしたいんですけど、どんな感じで書けばいいですか?誰かお願いします!
929 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 17:55:20 ] Desktop クラス使え
930 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 17:59:43 ] >>928 java.awt.Desktop.getDesktop().browse(new java.net.URI("www.google.co.jp/ "));
931 名前:デフォルトの名無しさん [2008/05/09(金) 19:09:47 ] >>929 >>930 ありがとうございますm(_ _)m
932 名前:デフォルトの名無しさん [2008/05/09(金) 23:31:12 ] <T> XXX<T> hoge(XXX<T> xxx){...} という関数があったときに、返り値の型の <T> XXX<T> ↑ はどういう意味があるのでしょう?
933 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 23:34:56 ] Tという名前の型引数を使いますよ
934 名前:デフォルトの名無しさん [2008/05/09(金) 23:41:23 ] >>933 Tの型は、 hoge(new XXX<YYY>()); と書いたときに決まっているのでは? <T> XXX<T> hoge(XXX<T> xxx){...} と、 XXX<T> hoge(XXX<T> xxx){...} が同じということでしょうか?
935 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 23:47:29 ] ジェネリクスは型だけじゃなくてメソッドでも使えるんだよ
936 名前:デフォルトの名無しさん [2008/05/09(金) 23:52:36 ] template<typename T> XXX<T> hoge(XXX<T> xxx){...} ということですか、納得です。 ありがとうございました。
937 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 00:00:33 ] うむ 精進しろよ
938 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 00:05:07 ] そんな感じ C++の化け物テンプレートほどの威力は無いが・・・・
939 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 00:07:49 ] っていうか並べて比べるのもおこがましい程度
940 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 00:20:44 ] そもそも比較すること自体が間違ってる。
941 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 00:24:56 ] templateはわかめみたいにふえていくからなあ
942 名前:デフォルトの名無しさん [2008/05/10(土) 01:08:02 ] >>934 ごめん その方法で生成した任意の型の出力が可能ってことでいいのかな
943 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 09:16:29 ] テンプレートパターンというのを知らない池沼がいるから困るwwww
944 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 09:20:46 ] 久しぶり
945 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 10:13:22 ] 今からでもランタイムサポートできないのかな
946 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 10:26:18 ] やりたきゃ自分でVMを実装するんだな 言語名はJava++ みたいな感じでwww
947 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 10:51:58 ] ジェネリクスがキャスト挿入のシンタックスシュガーだというのは 実装次第じゃなくて言語仕様で決まってることなの?
948 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 10:58:08 ] 決まってる。
949 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 11:13:24 ] ttp://www.objectclub.jp/technicaldoc/java/java_gene ここの「JavaへのGenerics導入の方針」参照。
950 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 11:17:50 ] java7っていつ出るの?
951 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 11:19:20 ] 来年。(予定は未定)
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を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。