1 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 01:35:28 ] 過去ログ、関連スレッド、よくある質問とその回答、 質問をする前に、貴方が見なければならないサイトについての情報は、 下の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質問・相談スレッド98【大歓迎】 pc11.2ch.net/test/read.cgi/tech/1171787388/ /* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。 質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */ また、当スレで質問をするかたは、回答をもらえたときに、 wikiの更新をして頂ければ、忝なく存じます。 JavaScript, Ajaxの質問は、ここでは受け付けていません。 Web製作板をご利用ください。pc10.2ch.net/hp/ 次スレは>>980 あたりで。
152 名前:145 mailto:sage [2007/03/08(木) 00:40:31 ] >>149 ,151 レスありがとうございます その辺りのスコープの問題はメンバクラスにする事で何とかするのが普通なんですね ボタンやラベルを一つのパネルに纏めてしまって、そのパネルもメンバクラスに・・・ なんてすればさらにコードが読みやすくできるのかなぁ
153 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 02:11:06 ] >>138 パーミッションだけならJavaでもできる。 他は・・・ Runtimeとかかねえ Jakarta Commons VFSでにたようなことできなかったかな・・・
154 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 02:17:36 ] >>145 ,152 乗り遅れた… 個人的にはオブジェクトの役割が比較的きっちり分かれるMVCが好み ttp://java.sun.com/developer/technicalArticles/javase/mvc/ ↑英語ですが…日本語でも山ほど資料はあるのでググってみて ちゃんと設計すればプラガブルになるので変更や拡張が楽だしぃ
155 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 03:55:02 ] >>111 よく読め。 GUIの話題なんて一言も振ってない。
156 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 04:03:14 ] その通り キーイベントやウィンドウのリサイズが利かないって話題なんだからCUI関係だよ GUIと間違えちゃいかん
157 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 04:21:08 ] APIリファレンスって印刷して使うものなの? ものすごい量になる悪寒
158 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 04:46:51 ] >>157 お前の想定している状況がイマイチ分からん。 シリアライズの話だけどそもそもアプリケーションプログラマがSwingコンポーネントをシリアライズするってどういう場合? 元々シリアライズってファイルシステムなんかに永続的にオブジェクトの状態を保存する目的のものじゃないでしょ? ネットワーク超えてたれ流すためでしょ? シリアライズを永続的な保存目的に使いだしたからXMLEncoder/XMLDecoderが出てきたの?
159 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 07:10:33 ] 永続的な目的云々もそうだが、ことさらSwingのAPIにだけシリアライズに よるバージョン問題のことが書いてある理由も謎だ。
160 名前:125 mailto:sage [2007/03/08(木) 08:04:27 ] >>126 >>135 >>153 返答ありがとうございます。 手間が掛かりそうなので、簡単に実現できそうなRubyに乗り換えることにしました。 Swingが使えないのが残念ですが。 ちなみに作ろうとしていたのはエロ画像の自動整理プログラムでした。
161 名前:デフォルトの名無しさん [2007/03/08(木) 10:01:01 ] ひとつのつながったテキストを区切って別々のページに保存したいときって どうすればいいですか?
162 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 10:02:30 ] >>153 6.0 のパーミッション操作も全部じゃないよ。 外部ライブラリ使うなら、JConfig 使うとかした方が楽かも。
163 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 10:03:34 ] >>161 「別々のページに保存」ってのが具体的に何したいのかわからん。
164 名前:デフォルトの名無しさん [2007/03/08(木) 10:10:33 ] えと、100行のテキストがあったとして、10行ずつ区切って 別のファイルに保存ってことです。
165 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 10:16:31 ] 言ってる事をそのままコードにするだけだからどこがどう出来てないのか情報がないと教えようがない
166 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 10:19:44 ] java.sun.com/javase/ja/6/download.html にAPIドキュメント追加されてる。
167 名前:デフォルトの名無しさん [2007/03/08(木) 10:55:36 ] 今クローラーってのを作る課題なんですけど、リンク先をページから 拾ってきて、ページごとに保存しなくちゃいけないんです。 で、リンク先抜き出してソース落とすとこまではできたんですけど、 全部つながってひとつのファイルに保存されちゃうんで、それを 区切って保存したいってことです。
168 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 11:03:08 ] >>167 再帰的にやればいいんじゃね?
169 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 11:18:38 ] >>167 > 全部つながってひとつのファイルに保存されちゃうんで ……。つなげなければ良いんじゃね?
170 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 11:46:43 ] 何でつながるのかわかってないんじゃね?
171 名前:145 mailto:sage [2007/03/08(木) 12:33:17 ] >>154 レスありがとうございます >ちゃんと設計すればプラガブルになるので変更や拡張が楽だしぃ 確かにメンバクラスにすると再利用が難しくなるかなぁと思ってました そこでMVCという単語を絡めて検索した所 まさに今考えていた事が既に話し合われていた場所を発見する事ができました www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=18201&forum=12&7 まだしっかりとは読んでいないのですが、これで気持ちよく開発が進めれそうです 本当にありがとうございました ;D
172 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 14:10:21 ] 商品番号、日付、単価、数量 0001,20070308,1200,50 とテキストファイルに記入。 日付の値は日付の処理を行うメソッドに渡し、単価と数量の値は 計算する処理を行うメソッドに渡す。 ということをしたいのですが可能でしょうか? 可能ならばやり方を教えていただきたいです。
173 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 14:10:59 ] >>167 そもそもなんで繋がってんのか分からんがクローラー作るならWWW Wanderer(Wandex), Aliweb, WebCrawlerを調べてみな? まあ、見つけられたらの話だが・・・国内鯖で見つからんなら ttp://en.wikipedia.org/wiki/ で調べりゃあるから、ちゃんと探せば技術文書も論文も化石が埋まってるから。(但し殆どがwwwの歴史の論文だけど) AliwebとWebCrawlerは存命の筈だけど #あと鯖に迷惑だから素人にそんなもん作らせるなと糞講師に言っとけ!(-Α-")
174 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 14:13:46 ] >>172 屑仕様な宿題は出しても不可能な仕様の宿題を出す訳ないでしょ? 宿題スレのテンプレ持ってお引っ越ししましょうね?
175 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 14:14:21 ] >>172 split
176 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 14:17:22 ] 2chに宿題訊きにくるような奴と将来一緒に仕事したくないなあ
177 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 15:09:13 ] >>168 そして再帰的にやって 相互リンクで永久ループにハマってあぼーん
178 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 15:11:00 ] >>176 たんと礼儀とルールと一般常識をわきまえて聞くなら良いけど 質問に答えてくれないと逆ギレするようなやつとは一緒に仕事したくないよな〜
179 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 17:30:50 ] >>177 基底条件ってもんくらい分かってるだろ? でなきゃループ内で再帰やったとき止まらんw
180 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 18:32:06 ] 1つのjavaファイルに、複数の public class を記述すると、 コンパイルしたときに、$付きの class ファイルが生成されます。 こんな書き方ありなんでしょうか?
181 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 18:47:22 ] >>180 JVMの身にもなってみろ
182 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 19:16:30 ] >>180 あり。 > 1つのjavaファイルに、複数の public class を記述すると、 入れ子になったクラスなら $ とかがつくし、 トップレベルに public なクラスが複数あったら コンパイルエラーにしないと言語仕様に反する。
183 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 19:57:55 ] Javaのことはまったくわかりません。 場違いだったら構わず指摘してください。よろしくお願いします。 www.strangepuzzle.com/jnetcube.html このサイトにあるルービックキューブ用のタイマーを 動かしたいのですが、ダウンロードしたあと 何をしたらいいのかまったくわからないんです。 どうすればタイマーを動かすことができるのでしょうか。
184 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 21:09:20 ] >複数の public class コンパイラ通るのか!?
185 名前:デフォルトの名無しさん [2007/03/08(木) 21:10:26 ] 質問させてください。 例えば、DBの1レコードごとに一つのHTMLページのソースが入ってる状態があります。 例 1レコード目 1 トップページ 2レコード 2 サブページ1 3レコード 3 サブページ2 HTTPリクエストに応じたレコードをJSPで表示で表示しているとします。 通常ならリクエストの形は hogehoge.jsp?id=2 とかだと思います。 これをクエリを使わないで/で区切ったリクエストに応じて表示する方法はないでしょうか? 例えば hogehoge.jsp/2/ ↑のリクエストの形で2レコード目の要求として扱う方法はないでしょうか? 2ちゃんねるみたいに pc11.2ch.net/test/read.cgi/tech/1173026128/ というふうにクエリ使わないで/だけでやる方法をさがしています
186 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 21:46:42 ] javax.servlet.http.HttpServletRequest#getPathInfo()
187 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 00:14:40 ] javaで英単語教材を作ってます。 今は、ボタンを押すごとに //空所補充問題文 The rocket launch had to be ( ) because of unexpected bad weather. //空所に入る選択肢 ・aborted ・allotted ・ascribed ・accumulated といった感じで、50個ぐらいある問題文と選択肢のセットをテキストファイルから画面に readLine()で表示させているのですが、今の方法だとテキストファイルに並んでいる 順番でしか表示されません。やりたいことは次のとおりです。 1.この問題文と選択肢のセットをランダムな順番で表示させたい。 2.選択肢も、常に同じ4つの単語ではなくランダムな組み合わせで表示させたい。 ちなみに今は問題文と選択肢のテキストを別々のファイルに保存しているのですが これも問題ありでしょうか?よろしくお願いします。
188 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 00:45:19 ] import java.io.*; import java.util.*; public class EnglishTest1 { public static void main(String[] args) throws IOException { String dataBody = "The rocket launch had to be ( ) because of unexpected bad weather.;aborted;allotted;ascribed;accumulated;other word1;other word2\n" + "The missile launch had to be ( ) because of unexpected bad weather.;aborted;allotted;ascribed;accumulated;other word1;other word2\n" + "The Vista launch had to be ( ) because of unexpected bad weather.;aborted;allotted;ascribed;accumulated;other word1;other word2\n"; ArrayList<Question> questions = new ArrayList<Question>(); BufferedReader r = new BufferedReader(new StringReader(dataBody)); try { for (String line; (line = r.readLine()) != null;) { ArrayList<String> data = new ArrayList<String>(Arrays.asList(line.split(";"))); Question q = new Question(); q.questionText = data.remove(0); q.choices = data; q.correctAnswerNumber = 0; questions.add(q); } } finally { r.close(); } Random random = new Random(); while (questions.size() > 0) { Question q = questions.remove(random.nextInt(questions.size())); System.out.println(q.questionText); } } } class Question { String questionText; ArrayList<String> choices; int correctAnswerNumber; }
189 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 00:46:11 ] あとは自分で。
190 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 00:59:52 ] すまん Collections.shuffle(List) の方がいいな import java.io.*; import java.util.*; public class EnglishTest2 { public static void main(String[] args) throws IOException { String dataBody = "The rocket launch had to be ( ) because of unexpected bad weather.;aborted;allotted;ascribed;accumulated;other word1;other word2\n" + "The missile launch had to be ( ) because of unexpected bad weather.;aborted;allotted;ascribed;accumulated;other word1;other word2\n" + "The Vista launch had to be ( ) because of unexpected bad weather.;aborted;allotted;ascribed;accumulated;other word1;other word2\n"; ArrayList<Question> questions = new ArrayList<Question>(); BufferedReader r = new BufferedReader(new StringReader(dataBody)); try { for (String line; (line = r.readLine()) != null;) { ArrayList<String> data = new ArrayList<String>(Arrays.asList(line.split(";"))); Question q = new Question(data.remove(0), data, 0); questions.add(q); } } finally { r.close(); } Collections.shuffle(questions); for (Question q : questions) { System.out.println(q.questionText); for (String choice : q.choices) System.out.println(" - " + choice); } } } class Question { final String questionText; final List<String> choices; final int correctAnswerNumber; public Question (String questionText, List<String> choices, int correctAnswerNumber) { this.questionText = questionText; this.choices = Collections.unmodifiableList(choices); this.correctAnswerNumber = correctAnswerNumber; } }
191 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 01:09:34 ] Generics関係でArrays.sortの質問です。 やじるしのところで警告が出てしまいます。 抑えるにはどうすればいいでしょうかよろしくお願いします。<(_ _)> ArrayList<Sensyu> al = new ArrayList<Sensyu>(); al.add(new Sensyu("tako", 20 ));// ArrayListにデータを追加 al.add(new Sensyu("yuura", 30 )); al.add(new Sensyu("ponko", 53 )); Object[] oa = al.toArray();// 配列に変換 DataComparator dcom = new DataComparator(); Arrays.sort( oa, dcom); //←‥ここで警告:[unchecked] 無検査変換が出てしまいます。 ---- ---- ---- ----- public Sensyu(String namaeMoji, int ten ){ namae = namaeMoji; tokuten = ten ; } ---- ---- ---- ----- public class DataComparator implements java.util.Comparator{ public int compare(Object o1, Object o2){ return ((Sensyu)o2).tokuten - ((Sensyu)o1).tokuten; } }
192 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 01:31:39 ] >>191 public class DataComparator implements java.util.Comparator<Sensyu> {
193 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 02:41:11 ] >>192 さんありがとうございます。 でもまだうまくいきません‥ public class DataComparator implements java.util.Comparator<Sensyu> { になおして中身を public int compare(HairetuArraysTest.Sensyu o1, HairetuArraysTest.Sensyu o2) { return o2.tokuten - o1.tokuten; } ---- ---- ---- ----- Arrays.sort( oa, dcom); の部分を ↓ Arrays.sort( (Sensyu[]) oa, dcom); //この行番号でエラーメッセージが出てしまう。 するとコンパイル時に何の警告も出ません。しかし、 実行すると Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [LHairetuArraysTest$Sensyu; というメッセージが出てしまうのですが、どうしましょ?(o・・o)/~
194 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 02:49:47 ] toArray で Object[] に変換してるから。 Sensy[] に変換するよう引数をとる toArray の方を使いましょう。
195 名前:193 mailto:sage [2007/03/09(金) 03:05:33 ] >>194 さんありがとう toArray public <T> T[] toArray(T[] a) のことですね、 Sensyu[] oa = al.toArray( ここがわかりませんどうしましょドジですいません );
196 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 04:09:57 ] >>195 new Sensyu[0]でも何でもいいからSensyu[]型を放り込んでおけば、 もしサイズが足りなければ新たに確保してくれる。 APIリファレンスのtoArrayの項目をきちんと読むんだ。
197 名前:193 mailto:sage [2007/03/09(金) 04:29:14 ] >>196 さんありがとうございます。 でっ、できました。ヽ(^o^)丿 難解だけどAPIリファレンス出来るだけ読むようにします。 つきあってくれてありがとう‥
198 名前:デフォルトの名無しさん [2007/03/09(金) 04:48:13 ] 音声の再生についての質問です。 好きなタイミングで音声を鳴らしたり消したりしたいのですが、 スレッド処理を用いている場合はどう書いたらいいのでしょうか? startメソッドにac.loop;と書くと延々鳴ってしまいますし、 runメソッド内に書くとやはり音声の冒頭部分だけが繰り返し再生されてしまいます。 ソース sourcepost.sytes.net/sourceview.aspx?source_id=29248 startメソッドに再生部分を記述 www.za.ztv.ne.jp/yosi-h/Java_Ski.html
199 名前:デフォルトの名無しさん [2007/03/09(金) 10:26:18 ] どなたかご存知でしたら教えてください。 JavaでPDFを作成するiTEXTにて テーブルを作成するときに途中でページからはみ出そうなときは 次ページに改ページしてくれる方法ってないでしょうか? よろしくおねがいします。
200 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 11:21:38 ] >>198 アプレットは単音鳴らすか鳴らせ続けるかだからループさせつつ任意のタイミング止めて再開とかしたいなら適当なサウンドエンジン使った方が良いよ。 >>199 どっかで制御方法見た気がするが・・・javadocくらい叩き込んだ?
201 名前:デフォルトの名無しさん [2007/03/09(金) 11:30:17 ] >200 javadocはよくわかりませんが こちらのサイトでiTEXTのコマンドについては大体わかったのですが ttp://itextdocs.lowagie.com/tutorial/ 質問した内容のサンプルコードが無かったので悩んでます。
202 名前:デフォルトの名無しさん [2007/03/09(金) 11:36:18 ] >200 ありがとうございます。 iTEXTのJAVAdoc見つかりました。 理解できるか分かりませんがちょっと読んでみようと思います。
203 名前:デフォルトの名無しさん [2007/03/09(金) 11:39:01 ] table.tableFitsPage きっとコレジャン! 200サンクス!
204 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 13:53:33 ] >>191 いろいろ解決方法はあるみたいだが、 al = Collections.checkedList(al, Sensyu.class); を使いたくなってくるなあ。これならObjectなど他の型に渡しても 警告が出なくなる。 @SupressWarning("unchecked")でもいいけどさ
205 名前:デフォルトの名無しさん [2007/03/09(金) 14:54:12 ] https://sdlc6e.sun.com/ECom/EComActionServlet/DownloadPage:~:com.sun.sunit.sdlc.content.DownloadPageInfo;jsessionid=A232C894EA5C4D2F03723CB5357D7872;jsessionid=A232C894EA5C4D2F03723CB5357D7872 まとめ見てここからダウンロードしようとしてるんですけどこの後どうすればいいんですか?
206 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 16:47:43 ] >>205 Accept License Agreement してから Java(TM) SE Development Kit Documentation 6, Japanese 選べば? 英語版欲しいなら、English の方選んで。
207 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 16:50:25 ] >>206 サンクス
208 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 19:47:33 ] 英語読めない奴が英語版欲しいと思えんが、jdk6のl10n終わって良かったな。 相変わらず変な訳だが
209 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 20:04:01 ] そういやなんでJavaって日本語版あるんだろ?
210 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 20:18:14 ] むしろ英語マニュアルのが読みやすい俺ガイル
211 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 21:09:04 ] >>208 i10n って、日本語訳終わっただけで中国語訳とかまだじゃない?
212 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 21:37:28 ] >>209 1. 市場が大きい。 2. 訳の需要が大きい。 日本語は造語力が大きいので高等教育で用いられる用語も訳すことが出来、 結果として日本語しかできなくても高等教育が受けられる。 アジアの準先進国の言語などでそれほど造語力が高くない場合、そこまで できないので、英語で高等教育を行わざるを得なくなり、結果として高等 教育を受けた人はみな英語が出来るので、英語で困らなくなってしまう。 という意見を聞いたことがある。
213 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 21:43:59 ] 日本だろうと曲がりなりにも高等教育を受けたら普通英語ぐらいできると思うのだが もし高等教育の意味が文字通り高卒の事だったのなら謝る
214 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 21:49:04 ] >>213 学校教育英語に幻想持ってないか?
215 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 21:52:08 ] ただ単にi18nの一環でかつ日本人は母国語版を欲しがる人種ってだけじゃね? 技術文書の翻訳版を欲しがるのは日本人くらいだし
216 名前:125 mailto:sage [2007/03/09(金) 22:32:27 ] Rubyでは簡単に実現できたので、再びJavaに戻ってきて作成しています。 ファイルのコピー、移動はFileクラスとFileInputStream,FileOutputStreamあたりを使うことで、簡単に実現できました。 ところでお聞きしたいのですが、InputStreamのread( byte[] buffer )、OutputStreamのwrite( byte[] buffer )で使用する 配列サイズというのは、どれくらいが適しているのでしょうか? バッファーが大きければ処理が早く済むがメモリの消費量が大きくなる、ということはなんとなくわかるのですが、 適量のバッファーサイズの見当がつきません。 現在主流となっているマシンスペックだと、適量のバッファーサイズとはどれくらいなのでしょうか?
217 名前:187 mailto:sage [2007/03/09(金) 22:37:51 ] >>190 返事が遅くなってしまってすみません。 提示していただいたコードを参考にやってみます。 ありがとうございました。
218 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 22:40:22 ] >>213 英語で小説読もうとして三日であきらめたことを思い出した 資料としてなら読み進めるのは大して苦じゃないが大量になるとかなりウザい メインで英語使うなんて信じられん
219 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 22:54:05 ] >>216 セオリーは無いと思う。 俺はなんとなく 4kB 〜 16kB あたり取ってるが。
220 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 23:01:30 ] >>218 小説と技術文書は全然違うでしょ。 語彙空間がまるで違うよ。 俺自分の専攻の論文ならすらすら読めるけど、 一般向けの小説(ハリウッド映画の原作)は 3ページで挫折しかけてるw
221 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 00:26:59 ] jarファイルをダブルクリックしても反応してくれません。 (Test.classファイル) class Test{ public static void main(String[] args){ System.out.println("aaa"); } } これを jar cf Test.jar Test.class でjarファイル生成 jar xf Test.jar でjarを解凍 マニフェストファイルにMain-Class: Testを追加して保存 jar cfm Test.jar META-INF\MANIFEST.MF Test.class で再びjarに圧縮 こいつをダブルクリックしてもコマンドプロンプトが出てきてくれないです。 エラーメッセージも出ず無反応です。 ただし、コマンドプロンプトから java -jar Test.jar と打ち込むと aaa と表示されます。 どなたかお助けください。
222 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 00:47:21 ] 関連付けの問題か、あるいはコマンドプロンプトが一瞬出ているのに気付かないかのどっちか
223 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 01:00:44 ] 3つの整数をキーボード入力させてそこから計算させるプログラムを作っているのですが、 入力させた文字列の中に英字または小数がある場合、「○個目には整数を入力してください」という メッセージを表示させたいのですが、Integer.parseIntでの例外をNumberFormatException で拾うという手段を取ってみたのですが、この場合何個目の入力が整数でないのかを個別に 表示することが出来ません。どの入力が間違っていても同一のメッセージ表示しか出来ません。 この方法以外に入力された文字列の中で整数以外の入力を判別して、どの入力がエラーなのかを知らせる方法はありますか?
224 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 01:02:50 ] ちとその部分のコード書いてみ?
225 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 01:10:12 ] >>221 Windowsだとjavaじゃなくjavawに関連づけられてるかもしれない。
226 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 01:31:23 ] >>222 >>225 ありがとうございます。今見てみましたが、javawなってました。 javaにかえて再びwクリックしてみると一瞬だけコマンドプロンプトが表示されましたが、すぐに消えてしまいました。 これはこういうものなのでしょうか?コマンドプロンプトの画面をずっと表示させておくことは出来ますか?
227 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 01:45:48 ] BufferReaderか何か使ってキーボード入力待ちにするのが一番お手軽w
228 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 01:50:28 ] 今ならjava.util.Scannerを薦めたい。 ttp://www.javadrive.jp/start/scanner/index1.html
229 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 02:04:30 ] なるほど。勉強になりました。ありがとうございました。
230 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 03:57:05 ] 空の文字列 "" と、null の違いがよくわからない。。。
231 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 04:16:57 ] >>230 空の文字列は、長さは0だけど文字列。つまり、Stringのオブジェクトが存在する。 nullは、何もないということ、オブジェクトがないという状態を表す。
232 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 04:20:30 ] >>221 パッケージ作っといて修飾名でクラス指定してないって訳じゃなさそうだね。 winの関連づけはjavawだからそれはいじらないでコマンドプロンプトから打て。 CUIプログラムをクリックしても動きません!って発想が既におかしい。プロンプト立ち上げてからならjavaが終了してもプロンプトが残ってて消えないはず。 OSのしくみとかそこら辺を分かってないだけだからまずそこら辺を勉強した方が良い。 てか独学?専門生? >>230 MS VMだと同義w nullはObject派生型なんだけど値は何にも関連付けられてない。 空文字列は"\u000000"になるんだっけ? 他言語やってて言語によって定義が違うから掴めないの? ただ単にjavaのnullが分かってない? 後者ならjavaの本見ればいい。
233 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 04:39:01 ] >>232 > MS VMだと同義w そんな話は聞いた事がない。 > nullはObject派生型なんだけど値は何にも関連付けられてない。 Java では null は null型だよ。空型とか訳される事もあるけど。 Object からは派生してない特別な型。 > 空文字列は"\u000000"になるんだっけ? は? 薀蓄語りたいなら、ちゃんと言語仕様ぐらい見てからやれ。
234 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 04:39:56 ] >>232 >nullはObject派生型なんだけど値は何にも関連付けられてない。 null は null 型のただ一つの値。 Object 派生型でもないし値が関連付けられていないわけでもない。
235 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 05:39:34 ] >>232 何か自分の知識を語りたいのは分かるんだが その表現をする言語力が伴っていないようで少し哀れ 相手の理解力を超えた表現しか出来てないよ・・・・
236 名前:223 mailto:sage [2007/03/10(土) 06:45:41 ] >>224 遅いレスで申し訳ありません。 try{ timeAtBat = Integer.parseInt(str1); sacrifice = Integer.parseInt(str2); hit = Integer.parseInt(str3); average = (double)hit / (timeAtBat - sacrifice); NumberFormat formatter = NumberFormat.getNumberInstance(); formatter.setMaximumFractionDigits(3); System.out.println("打率は" + formatter.format(average) + "です。"); } catch (NumberFormatException e) { System.out.println("数は0〜1000の整数で入力ください"); } str1,2,3はBufferedReaderを使って読み込んでいます。 System.out.println("数は0〜1000の整数で入力ください");の部分を 打席数、安打数、犠打数のどの入力が整数でないのかを"〜数は0〜1000の整数で入力ください" でそれぞれメッセージを表示させたいのです。 助言をいただけたら幸いです。
237 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 09:01:07 ] >>236 parseInt を3つまとめてtry-catchするんじゃなくて、 ひとつづつtry-catchすればわかるじゃん。 あとはカウンタ変数でも作って、今何番目のparseIntやってるかわかるようにするとか。
238 名前:223 mailto:sage [2007/03/10(土) 09:06:27 ] >>237 ひとつずつキャッチする手はもうやってみたのですが、やっぱりそれが一番早いですかね? カウンタ変数のほうをチャレンジしてみたいと思います。 ありがとうございました!
239 名前:223 mailto:sage [2007/03/10(土) 09:17:34 ] >>237 忘れてました。ひとつずつtryのすぐあとでcatchしていくと例外は拾えるんですけど、 処理をそこで終われないですよね?その後にある計算式は例外でも実行されてしまって エラーになってしまいました。 もし、ひとつずつtry-catchしていくのであれば、どこに計算式などを入れるべきですか?
240 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 09:41:12 ] >>236 入力ください で吹いたw
241 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 09:42:37 ] >処理をそこで終われないですよね? return;
242 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 10:39:34 ] >>239 try-catchだと記述が長ったらしくなるから、parseをラップするメソッドを作る手もある。 引数は文字列、戻り値はInteger但しparse失敗時はnull。 そのメソッドの中でtry-catchを使う。 .NETにあるTryPaseの亜流みたいなもん。
243 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 10:55:31 ] HashMapを使って文字列と数字を扱いたいのですが HashMap<String, int>はintがObjectじゃないからできないんでしょうか? この場合HashMap<String, Integer>とするべきですか?
244 名前:221 mailto:sage [2007/03/10(土) 10:59:49 ] >>232 スクールに通ってましたが素人同然です('A`) 関連付けはjavawを変更できないとすると、 結局>>221 のプログラムはwクリックでは実行出来ないということでしょうか? 誰かにこのプログラムを使ってもらう時に 「コマンドプロンプトからjava -jar Test.jarって入力してね」 と言うのはちと苦しいです。
245 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 11:03:57 ] >>243 プリミティブ型は入れられないのでそうする必要がある。 使うときはautoboxing/unboxingが効くので直接プリミティブを使う コードを書いてもOK。コンパイラがこっそりIntegerに入れたり出したり してくれる。
246 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 11:05:08 ] @echo OFF java -jar Test.jar なバッチを一緒に置いておいてもダメだっけか? 最近WindowsでJava使ってないから忘れたわ。
247 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 11:15:38 ] >>245 ありがとうございます 色々調べたり実験したりでちょっと遅れてしましました 宣言だけIntegerにすれば、他ではintとして扱っても問題ないんですね
248 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 11:52:50 ] >>244 ダブルクリックみたいなGUIど真ん中なことやりたかったら、普通はswingとか使う。 コマンドプロンプトがどうしても必要な場合は>>246 の言うとおりバッチでラップすればおk。
249 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 14:31:28 ] >>219 ありがとうございます。 調べてみたら、Javaの上位IOクラスは内部バッファとして8192byteつかっていることがわかりました。 その値に統一して使いたいと思います。
250 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 14:34:43 ] バッチファイル使うんなら、pause で入力待ちすればOKか。
251 名前:221 mailto:sage [2007/03/10(土) 15:47:13 ] バッチファイルというのは初耳でした。 >>246 をTest.jarのあるフォルダにa.batとして保存してこれをwクリックで無事実行できました! 皆さんに感謝します。
252 名前:230 mailto:sage [2007/03/10(土) 17:44:56 ] なるほど、ヌル文字列とヌルポインタの関係みたいなもんですね(`・ω・´) 遅レスですが、ありがとうございました。