1 名前:デフォルトの名無しさん [2008/03/01(土) 18:16:51 ] プログラミング言語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質問・相談スレッド112【大歓迎】 pc11.2ch.net/test/read.cgi/tech/1202467704/ /* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。 質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */ また、当スレで質問をするかたは、回答をもらえたときに、 wikiの更新をして頂ければ、忝のう存じます。 次スレは>>980 あたりで。
596 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 23:27:58 ] 180°の弧を描くアナログメータを作りたいんですけどうまくいきません 下のようなpaintメソッドではいけないのでしょうか? 真ん中に直線が描かれるだけで何もなりません double i = 0; int x = 200; int y = 200; public void paint(Graphics g){ g.drawLine(x,y,200,300); Double xx = new Double(200 + Math.sin(1/20 * i) * 200); x = xx.intValue(); Double yy = new Double(200 - Math.rint(Math.cos(1/20 * i) * 200)); y = yy.intValue(); i += 1; }
597 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 23:35:32 ] >>596 1/20 => 0 以上。
598 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 23:38:56 ] 描画部分のループはどうなってんの? というか素直にdrawArcでいいんじゃない?
599 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 23:40:03 ] リロードしてなかったぜ
600 名前:596 mailto:sage [2008/03/19(水) 23:41:24 ] ども 助かりました
601 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 20:51:10 ] ネットワークから受信する XML を SAX で解析する場合って、例えば属性値として 数 GB の文字列を投げられたら OutOfMemory が出るまで分からないよね。 10MB 送って無応答、10MB 送って無応答、、、という接続をいっぱい作られたら どっかでサーバのメモリが逼迫状態のままになるという攻撃になるんだよね。
602 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 21:38:07 ] Appletでウィンドウのサイズをかえるごとにウィンドウのサイズを受け取りたいんですけど どうしたらいいんですか? ダブルバッファでcreateImageの引数を変えたいんですが・・・
603 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 21:44:07 ] ComponentListener または描画のたびにアプレットのサイズ確認して変わってたらバッファ作り直し。
604 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 21:52:07 ] >>603 ありがとうございます 参考にさせていただきます
605 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 22:24:55 ] 何度もすいませんw ↓これじゃだめなんでしょうか?なんか最初のサイズの範囲にしか描画されないんですけどorz public void componentResized(ComponentEvent e){ d = getSize(); buffer = createImage(d.width,d.height); repaint(); }
606 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 23:41:23 ] JTableを印刷するにはどうすればいいでしょうか?
607 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 23:44:00 ] スマートな方法は知らんけど Robot 使って該当領域スクリーンキャプチャすればできることはできるんじゃねか。
608 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 00:12:50 ] >>605 正直、私では分かりません。が、 リスナーの追加、paint 内での buffer の使用状況確認などなど はじめてやる時は、面倒でも一つ一つ丁寧に、 想定したことが起きているか確認しながら進むこと
609 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 00:51:53 ] >>606 JTable#getPrintable() PrinterJob#setPrintable() PrintRequestAttributeSet#add() PrinterJob#printDialog() PrinterJob#print() このへんのメソッド組み合わせて肉付けしていけばできる(はず)
610 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 01:30:16 ] POI(HSSF)で大量のデータ(10万件のレコード)をExcelファイル出力しようとした場合に OutOfMemoryErrorの発生を回避するには 複数のファイルに分割して出力する以外に方法はないんでしょうか?
611 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 01:30:18 ] 済みません、できませんでした。 メソッドの使い方がさっぱりわからなくて・・・。 class pbtActionListener implements ActionListener { public void actionPerformed(ActionEvent i) { } } この中にテーブルを印刷する機能を入れるにはどうすればいいでしょうか 本来なら時間を掛けて勉強するべきでしょうが 時間がないのもう少し詳しく教えてください。お願いします。
612 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 01:33:02 ] >>610 今時の Excel は XML で読めるんだから XML で出せば?
613 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 04:46:13 ] >>611 時間がないならcsvでファイルに吐いてExcelで印刷しろ
614 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 07:01:24 ] ほれ tableどっかから拾ってきてパラメータ適当にいじれ try { Printable printable = table.getPrintable(JTable.PrintMode.FIT_WIDTH, new MessageFormat("タイトル"), new MessageFormat("Page - {0}")); PrinterJob job = PrinterJob.getPrinterJob(); job.setPrintable(printable); PrintRequestAttributeSet attr = new HashPrintRequestAttributeSet(); attr.add(OrientationRequested.LANDSCAPE); attr.add(new MediaPrintableArea(5.1f, 5.1f, 199.8f, 286.8f, MediaPrintableArea.MM)); boolean printAccepted = job.printDialog(attr); if (printAccepted) { job.print(attr); } } catch (HeadlessException e1) { e1.printStackTrace(); catch (PrinterException e1) { e1.printStackTrace(); } 宿題スレかここは…
615 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 08:32:53 ] >>610 Excelで扱える行数の最大は、65536まで。 POI使おうがCOM使おうがどのみち無理。
616 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 09:12:20 ] Excel2007
617 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 09:22:55 ] >>612 なるほど、XMLは考慮していませんでした 調べてみます >>613 CSVも、やはり複数ファイルに分割しないとデータを扱いきれないので・・・ >>615 HSSFであれば1ファイルに複数シートを含めたExcel形式で出力できるので、 HSSFで何とかできないかと思いまして ありがとうございました
618 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 09:31:26 ] 10万件のレコードが出力されたExcelファイルを誰がどんな目的で使うのかが不思議。
619 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 10:05:18 ] 業務から伝票データ集計を流してもらって、まとめて経営戦略用の資料とかにするとかかな。 あとアンケートデータの集計なんてのもあるしね。 それらの資料を元に今後の会社の行く末を。。。なわけだw
620 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 11:47:40 ] 開けないのにどうやって使うのって話では? 開けたとしても人間には解析できないけどなw
621 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 12:03:36 ] 取り込み形式が Excel のシステムにつなげるとか。 あと Excel にさえしてくればあとは中の人間が VBA で何とでもするからという所も多い。
622 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 13:25:58 ] >>614 ありがとうございます。おかげでなんとかなりました。
623 名前:デフォルトの名無しさん [2008/03/22(土) 02:54:05 ] 複数シートに分ければ出来るよ HSSFSheetのドキュメント参照
624 名前:デフォルトの名無しさん [2008/03/22(土) 12:18:28 ] 【提携/JAVA】マイクロソフト、Javaを使ったWindowsアプリ開発でEclipse財団と協力へ[03/21] news24.2ch.net/test/read.cgi/bizplus/1206155464/
625 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 12:36:40 ] 特定のインタフェースを実装しているものを、動的に一覧する手段はあるでしょうか? もちろん、クラスローダにローディングされているもので構いません。 Eclipse の検索で実装が探せますが、あれはソースを解析しているのでしょうか。
626 名前:デフォルトの名無しさん [2008/03/22(土) 13:30:25 ] インターフェイスについて参照して、 実装について参照してはいけないと本に書いてありました。 なぜですか?
627 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 13:38:41 ] >>626 後から実装を取り替えたくなったときに、参照している側まで修正しなければならなくなるから。
628 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 14:57:37 ] >>455 のおかげで行きつけのイラストロジックが起動できた。 ありがとう >>455 。
629 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 15:21:30 ] >>626-627 >>625 の答えとしてであれば、その点は了解しています(いるつもりです...) 行いたいことは、例えばあるコンバートを掛ける時に、公開インタフェースに 従って実装したユーザ任意の処理を、なるべく簡易な方法で追加させたいのです。 例になってしまいますが 標準語 ------> 関西弁 ------> 翻訳結果 と言った変換をするアプリケーションにおいて、公開インタフェースとして String translate(String sentence) を公開し、これをユーザが実装すれば(例えば博多弁を追加) 標準語 ------> 関西弁 -------> 関西弁 + 博多弁 ------> 翻訳結果 といったことを可能にしたい、と言った感じです。 この追加した処理のデプロイ方法として、「公開インタフェースを実装したクラ スを含む jar を ** に置くだけで OK」といった様に行わせたいために、>>625 のような要望となった次第です。FQCN さえ貰えれば済む話ではありますが、で きれば簡易化させたいといった状況です。
630 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 15:31:29 ] 私も、1.6.0_05 アップデータをアンインストールして、 WinXP + Firefox3b4 + JRE1.6.0_03 で動いたよ。ありがとう 455。 >>629 // 其の二つはそれらで完結するレスかと。 プラグインなら、ファイル検索+カスタムクラスローダーで できるかも…やったことないから適当ですが。
631 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 15:32:28 ] 日本語-->英語+フランス語-->翻訳結果っっっw
632 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 15:43:47 ] PrivateKey や PublicKey ってシリアライズして保存しておけばいいの? getEncoded() で何やらバイナリが取れるみたいだけど、これが何なのか分からん orz
633 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 18:01:22 ] >>585 >>589 > キーワードだけ覚えて披露する それは>>582 自身だ。 ポーリングを実装する必要を無くす仕組みではなく、 ポーリングをしなくて良い仕組みでしょ。 あるいは、ポーリングの意味ちゃんとわかってないんじゃない? Comet使った場合定期的に問い合わせなんかしないでしょ?
634 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 18:05:37 ] キューにイベント入ってこなければ定期的な問い合わせになるが。 Comet の仕組み分かってないのか。
635 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 18:08:53 ] >>536 > RMIの紹介サイトはどこもクライアント側からのトリガーでサーバーへ返すものしかなく、 > 逆の場合も使えるのか確証が持てません。 WebサービスとRMIサービスは別なので、それぞれサーバの役割を持つプロセスは異なります。 その例だと Webサーバプロセス = RMIクライアント Webクライアントプロセス = RMIサーバ なので、「(RMI)クライアント側からのトリガーで(RMI)サーバーへ返す」 と読み替えれば別にその紹介サイトの説明で問題はないでしょう。
636 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 18:10:17 ] 定期的な問い合わせではないな、定期的な再接続。 ポーリングはキューの確認終わったらすぐにリターンするが、それを一定の待機時間を維持するようにしただけ。 それをポーリングの揚げ足取りましたよ、と言いたいだけ?
637 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 18:10:20 ] >>634 で、その定期的な問い合わせは Cometフレームワークとやらが実現してるって言ってるの?
638 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 18:11:06 ] >>632 保存したいのならお好きなように。getEncoded()のものを保存しておけ ば、Java以外のプラットフォームでも読めるかもしれない。
639 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 18:22:35 ] >>637 おまえ、ブラウザの裏で Comet が独自の通信プロトコルでも使ってイベントやり取りしてると思ってるなら HTTP のお勉強からやり直したほうがいいぞ。
640 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 20:10:16 ] >>629 使ったことないけど、これなんかどう? java.sun.com/javase/ja/6/docs/ja/api/java/util/ServiceLoader.html
641 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 20:14:39 ] >>629 jarをZipInputStreamに食わせて.classファイルの一覧を出させて、 URLClassLoaderで見つかったクラスを全部ロードさせてみて、 希望のインタフェイスを実装してるかひとつずつ調べる という力技もないこともない
642 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 20:22:40 ] URL.getContent(); を使ってコンテンツをダウンロードすると コンテンツが 「あなたがお使いのブラウザは、Cookieをブロックする設定になっています。」 となっちゃう サイトに対して、 プログラム側がCookieを「受け入れ」て、 アクセスできるようにするには具体的にどうするんでしょうか? HttpURLConnection が自動的にCookie受け入れ処理をやってくれるとかいうのですが.... HttpURLConnection.openConnection(); HttpURLConnection.getInputStream() ; とかやっても URL.getContent(); の時と変わりません。
643 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 20:32:08 ] >>642 java.net.CookieHandlerとかjava.net.CookieManagerあたりを使うんじゃないかなたぶん
644 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 20:33:25 ] エスパーするとそのリクエストを出す前にどこかから Cookie の発行を受けていなければならない。 ブラウザで正常に動かしたのと同じ URL の順序で getContent() してみれ。
645 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 20:44:36 ] IPアドレスの正規表現ってどうしたらいい "[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}$" これだと、300.192.144.109のようなIPアドレスもマッチしてしまう
646 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 21:08:08 ] Cookieの処理を実装する。Cookieを保持するクラスはあるからさ。
647 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 21:24:00 ] うぉ。Cookieはリクエストプロパティにベタに書き込んでたわ。 HttpURLConnection.setRequestProperty("Cookie", "なんたら");
648 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 21:33:18 ] >>645 1オクテットだけなら [0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5] かな。 全部出来てから、あとでより正確にするってことで、 目的のプログラムが出来るまではとりあえずは数字でマッチさせて、 マッチ後int変換して範囲比較したほうが楽かも。 用途によっては java.net.InetAddress.getByName() に食わせて例外を捕まえるという方法も。
649 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 21:40:34 ] "((([12][0-9]{1,2})|([1-9][0-9]{1,2}))\\.){3,3}(([12][0-9]{1,2})|([1-9][0-9]{1,2}))" 通ったよ
650 名前:649 mailto:sage [2008/03/22(土) 21:42:54 ] 失敗2番目と4番目の{1,2}は要らない。
651 名前:649 mailto:sage [2008/03/22(土) 21:47:00 ] 一桁が無かった。
652 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 21:56:12 ] コードを少しずつ改変して行くに当たって、 それぞれにバージョンを付けて残しておこうと思ったら、 プロジェクトごとコピーして残しておけばいいんですか? もっといい方法があるんですか? Eclipseを使っています。コードを書くのは自分一人です。
653 名前:649 mailto:sage [2008/03/22(土) 21:57:47 ] "((([12][0-9]{1,2})|([1-9]{0,1}[0-9]))\\.){3,3}(([12][0-9]{1,2})|([1-9]{0,1}[0-9]))"
654 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 22:03:06 ] それ 299 が通る。 25[0-5]|2[0-4]\d|1\d\d|[1-9]\d?
655 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 22:05:24 ] >>645 正規表現に拘る部分なのか(まぁ何も言うまい >>652 豪華にいくなら、バージョン管理システム。subversion とか cvs とか LocalHistory でもそこそこ残ってる(条件は知らない
656 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 00:38:14 ] subversionは別に豪華じゃないんじゃない?file://でいけるし。
657 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 01:10:38 ] >>655 バージョン管理システムは別に豪華じゃない。 Mercurialとかならサーバのセットアップすら不要。
658 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 02:01:57 ] 信者くせー
659 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 05:36:43 ] AES でサポートされているはずの 192bit, 256bit のキー指定すると例外になるのは何で? サポートされてないの? Exception in thread "main" java.security.InvalidKeyException: Illegal key size or default parameters at javax.crypto.Cipher.a(DashoA13*..) at javax.crypto.Cipher.a(DashoA13*..) at javax.crypto.Cipher.a(DashoA13*..) at javax.crypto.Cipher.init(DashoA13*..) at javax.crypto.Cipher.init(DashoA13*..) at Main.main(Main.java:101)
660 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 12:27:26 ] >>659 違いそうだけど、輸出制限版とかいう話?
661 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 12:54:20 ] 普通に Sun からダウンロードした奴だけど規制版じゃないよね。 Blowfish も 128bit より上は同じ例外なんだけど。
662 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 13:01:43 ] java.sun.com/javase/ja/6/docs/ja/technotes/guides/security/crypto/CryptoSpec.html#AppC やっぱ輸出制限であってるかも。 制限解除したポリシーファイルだけダウンロードできるけど、 そもそも日本はダウンロードOKな国なのか??
663 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 13:20:33 ] >>662 ascii24.com/news/i/topi/article/2000/07/19/610269-000.html 2000年で撤廃されてるらしいから、日本ならダウンロードOK。
664 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 13:37:07 ] java.sun.com/javase/ja/6/docs/ja/technotes/guides/security/crypto/CryptoSpec.html#ExemptApps > 関係があるのは、作成するアプリケーションが、政府により暗号化制限の課された国に > 輸出される可能性があり、アプリケーションをその制限に適合させる必要がある場合だけです。 とあるので制限は解除されているものかと思ったら、128bit で制限かかるあたりからしてこれみたいですね orz 解除の試行錯誤でもしてみるか orz
665 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 13:43:15 ] SUNから解除用ファイルダウンロードしてファイル1個置き換えるだけだよ。
666 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 13:45:59 ] java.sun.com/javase/ja/6/download.html の下の方の その他のダウンロード Java Cryptography Extension (JCE) 無制限強度の管轄ポリシーファイル 6 てやつ。
667 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 14:08:47 ] どうもご丁寧にありがとうございます m(_ _)m ちなみに対照鍵暗号のアルゴリズム的な強さの現状ってこんな感じで良いんですかね。 AES ≒ Blowfish >> トリプルDES > [解読可能の壁] > DES
668 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 20:02:41 ] SwingでWindowsのLook&Feelを用いたとき Windowsのネイティブな部品のように 「コピー」「貼り付け」などのメニューが自動で表示されるようにはできないでしょうか? AWTを用いればWindowsの部品として自動で表示されるようですが、 Swingの場合、自分でそれらの処理を実装しなければならないのでしょうか?
669 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 20:07:03 ] はい
670 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 20:43:04 ] Swingならハンドラ実装するだけ
671 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 22:07:16 ] 今までGUIの終了時処理はWindowListenerを登録して行っていたのですが終了時処理であれば RuntimeのaddShutdownHook() の方が適切なのでしょうか? 一般的なGUIアプリケーションでの終了時処理でこの方法を用いているものを見かけたことがなかったので、何か理由があるのかと思い質問させていただきました。
672 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 22:42:30 ] >>667 AES > Blowfish > トリプルDES ぐらいかなあ ・トリプルDESはDESの強化版なので実績という観点からは評価が高いが、 さすがにいいかげん古い。あと低速 ・一般にブロック長が大きいほうが強度もより高くなるので AES(ブロック長128ビット)はBlowfish(ブロック長64ビット)より強いはず 実際、最近考案された暗号はどれも128ビット以上のブロック長を採用している (Blowfishの設計者が新しく考案したTwofishもブロック長128ビット)
673 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 22:55:05 ] 繰り返しの構文について質問なのですが、 rubyのredoの役割を果たすものってjavaには無いのでしょうか?
674 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 23:04:12 ] >>673 ない。Java は break と continue だけ。
675 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 23:07:24 ] break => break next => continue retry = なし redo = なし かな。
676 名前:634 mailto:sage [2008/03/23(日) 23:08:36 ] >>674 ありがとうございます。 スクリプトに出来てjavaに出来ないことがあるってのは意外ですね。
677 名前:634 mailto:sage [2008/03/23(日) 23:09:18 ] >>675 さんもありがとうございます。
678 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 23:21:22 ] >>671 javaw and shutdown hooks (referring to #4302814) ttp://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4486580
679 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 00:11:04 ] >676 そうか? redo とか retry とかRubyでも偶にしか使わんし、他の言語を見てもある言語は少ないかと。
680 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 00:22:23 ] >>676 >スクリプトに出来てjavaに出来ないことがあるってのは意外ですね。 なんか解釈が間違っている気がする
681 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 00:26:17 ] Ruby厨ってやつだろ
682 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 00:45:54 ] FileInputStreamからFileChannelを取得し、そのFileChannelでmap()を実行すると、ストリームやチャネルをクローズしても元ファイル(FileInputStreamのソース)を削除できません。 原因はMappedByteBufferによって使用中になってしまうからという単純なものなのですが、解決策が FileInputStream fis = new FileInputStream(input); FileChannel fc = fis.getChannel(); ByteBuffer buf = fc.map(); .... buf = null; System.gc(); input.delete(); これくらいしか思いつきませんでした。 何かいい方法はないでしょうか?
683 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 01:13:37 ] >>676 retry や redo と同等の処理を記述することはそれほど難しくないから、 「出来ない」というのは語弊がある。
684 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 02:09:59 ] やさしいJavaを読み終わり基礎中の基礎?の構文を覚え 今結城浩氏のデザパタの本を読んでいるのですが、実務経験が無いため それらのパターンをどの様な時に使えばいいか想像がつきません。 Struts等を使ったシステム開発業務に興味があるのですが、 Web系ではどのようなパターンが使われているのでしょうか? 重ねて質問ですが、最初はどのようなパターンから覚えていけば良いでしょうか? よろしくお願いいたします。
685 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 02:29:20 ] 畳の上の水練という言葉があってだな
686 名前:684 mailto:sage [2008/03/24(月) 02:43:57 ] >>685 分かってはいるつもりでしたが・・・ デザパタの存在自体が面白くて、どうしても勉強したかったのです。 何かツールでも作りながら地道に覚えていきます。
687 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 03:00:42 ] Vector vec = new Vector(); System.out.println("----追加----"); String obj1 = new String("Hello World!"); StringBuffer obj2 = new StringBuffer("こんにちは、世界!"); vec.addElement(obj1); 上記をコンパイルすると最後の行でコンパイルエラーが発生します。 jdk5.0を使っているのですが、何を行えば正常にコンパイルできますか?
688 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 03:13:14 ] うちでは 注:Hoge.java の操作は、未チェックまたは安全ではありません。 注:詳細については、-Xlint:unchecked オプションを指定して再コンパイルしてください。 と警告が出るだけでコンパイルされるんだが。 単にコンパイル警告をなくしたいなら javac -source 1.4 オプションを付ける。 もし>>687 のコードが教科書どおりならその教科書は古い。 VectorのようなコレクションはJDK1.5以降Generics対応なので、 Vector<String> vec = new Vector<String>(); のように型を明示して使うのが基本。というかVector自体(ry
689 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 03:26:34 ] 古い。
690 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 08:01:33 ] >>682 FileChannel の JavaDoc にも GC されるまでマッピングは有効って書かれているから おそらくそれくらいしか方法は無い。 なんでこういう仕様なのか、俺も問いただしたい気持ちでいっぱいだ。
691 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 09:13:02 ] >>690 やはりそうでしたか。 破棄してくれる手段を一つくらい提供してくれてもよさそうですけどね。 諦めてgcすることにします。
692 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 09:40:50 ] 解っているとは思うが、System.gc()を実行してもGCされるわけじゃないぞ
693 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 10:01:06 ] サーバプログラム書いてるんですけど、 inetdとかスーパーサーバからの起動だとプロセス毎にフォークしちゃうから 嫌で、そのへんをスレッドでやりたいんですけど、 その時ってどうやって起動すればいいんでしょうか? 普通にシェルからjavaをバックグラウンドで起動しちゃうとなんか思わぬ影響がでちゃうとか書籍にかいてありました。
694 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 10:11:00 ] 「嫌で」「なんかでちゃう」 そんなとこなら諦めれ
695 名前:693 mailto:sage [2008/03/24(月) 10:23:28 ] >>694 inetdからサーバを呼び出すと、 1クライアントに対してforkとexecを実行するのでCPU時間が増大してしまいます。 それを防ぐために1クライアントに1スレッドを割り当てたいと考えています。 しかし書籍を調べましても起動時にどうすれば良いのか分かりません。 もしよろしければご教授願えませんでしょうか?
696 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 10:26:40 ] サーバでJavaのプロセスを起動し、Socket通信汁
697 名前:693 mailto:sage [2008/03/24(月) 10:32:54 ] >>696 そのプログラムは書いたのですが、 単に端末からバックグラウンドでプログラムを起動しただけでは、 開始した端末セッションからプロセスを切り離せません。 ではどうすればプロセスを切り離して起動できるのでしょうか?
698 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 10:44:13 ] nohup じゃだめなの?
699 名前:693 mailto:sage [2008/03/24(月) 11:04:20 ] >>698 勉強不足でnohupを知りませんでした。 それでやります!ありがとうございました!
700 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 11:38:55 ] そもそもクライアント毎にサーバープロセスを起動するのがナンセンスかと
701 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 11:59:15 ] でもタスクをキューにためてそれを逐次処理するのは遅いのでは?
702 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 12:02:46 ] いやきっとクライアント毎に起動するのはスレッドでしょ。 inetdみたいなデーモンをコンソールから起動すると、端末から切り離せない、 って悩んでただけで。 最終的には、inetd自身のように、/etc/init.d/に起動スクリプト置いてほげほげ、 ってするのが正しい姿なんだろうけど。
703 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 12:07:14 ] そうですよね。 でもサーバが落ちた時に自動起動しないのが難点なくらいで、 他に困るようなことが思いつかなかったので、nohupでもいいかなって思いました。
704 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 12:55:12 ] >>701 マルチスレッドで処理しろよw
705 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 17:09:28 ] ArrayList<Integer>って型に入ってるデータをソートしたいんだけど どういうやり方が良いんでしょう? 今はArrays.sort()にtoArrayでObject[]にしたものと Comparatorを実装したクラスのオブジェクトを渡しています ほかに良い方法があれば教えてください
706 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 17:12:19 ] Collections.sort()
707 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 17:12:29 ] つCollections.sort
708 名前:705 mailto:sage [2008/03/24(月) 17:17:03 ] >>706-707 あ、やっぱりそれ用のがあったのですね ありがとうございました
709 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 20:47:39 ] >>697 $ ./hogehoge > stdout.log 2>stderr.log < /dev/null & とかやればシェルから切り離せるけど、そういうことを言ってるわけ? バックグランドプロセスがあるとシェルが閉じれないのは シェルが用意した stdin, stdout, stderr を持っているからで、 それを別に用意すればOKなんだけど。
710 名前:デフォルトの名無しさん [2008/03/24(月) 22:37:59 ] とても初歩的な質問でお恥ずかしいのですが、 自分の出した答えに自信がないため、質問させていただきます。 int型の変数を2byteの配列に格納(その後取り出し)したいのですが、 ビット演算の理解がつたないため、下記のようなやり方しか思いつきませんでした。 正しいやり方をご存知の方がおりましたら、 教えていただきたく、よろしくお願いいたします。 byte[] data = new data[2]; int num = 128; //格納 data[0] = (byte)(num >> 7); data[1] = (byte)((num << 25) >> 25); //取り出し num = data[0] << 7; num += data[1];
711 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 22:42:30 ] data[0] = (byte)((num >> 8) & 0xFF); data[1] = (byte)((num >> 0) & 0xFF); num = ((data[0] & 0xFF) << 8) | ((data[1] & 0xFF) << 0);
712 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 22:44:18 ] >>710 JDKについてくるjava.awt.Colorあたりのソースで、intと alpha, red, green, blueの各1バイトの換算をしているのが参考になると思う。 intは4バイトだから、厳密に言えばサイズ2のバイト配列には入りきらない。 シフト量は24, 16, 8, 0な。
713 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 22:49:26 ] >>711 >>712 返信いただき、ありがとうございます。 教えていただいたコードと参考資料を元に、 ビット演算の知識を深めたいと思います。 自分ではどうしてもわからなかったため、 とても助かりました。 本当にありがとうございました。
714 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 22:51:26 ] Javaでbyteがsignedってのはつくづく罠と思う。
715 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 22:53:37 ] だよなー おかげでバイナリの扱いがとてもしにくい・・・
716 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 23:32:34 ] intが17bit以上の場合が考慮されていないけどいいのか?
717 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 00:57:08 ] javaはバイナリの操作向いてないよ
718 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 01:30:50 ] またおまえか
719 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 08:02:38 ] 覚えておいたほうがよい 静的メソッドや変数などのリストの一覧的なものってどこにありますでしょうか
720 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 08:15:00 ] MathクラスとかSystemクラスとか他によく使用されるものの一覧を探しています
721 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 08:17:15 ] そんなものはない。静的メソッドは必要に応じて都度クラスに付いてるから 静的メソッドだけ一覧的に覚えること自体に意味がない。
722 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 08:19:51 ] APIじゃだめなの?
723 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 09:15:54 ] >>719 >>3 java.lang, java.util. java.io パッケージ群のそれぞれのクラス、仕組みは 押さえてしかるべき、と主張する人も居るね(逃
724 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 09:43:16 ] 公開鍵証明書を作るクラスって標準でないの? keytool 使うしかない?
725 名前:719 mailto:sage [2008/03/25(火) 11:14:34 ] 静的って書いたのがまずかったのでしょうか Math.なんちゃら〜 とか system.なんちゃら〜 みたいなもので 頻繁に使われるような物のリストを探しているのですが まとめてあるサイトは見つかったのですがあまり使わないようなものが大量にあったり どれがよくつかわれるものなのかわからないので これは覚えておいたほうが良いというものを集めてリストになっているサイトなどありましたら教えてください
726 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 11:16:31 ] 何が必要かなんて、分野によって違ってくるのが当たり前。 とりあえず、ArraysとかCollectionsをあげておくけど、 自分で見つけるのが一番いいと思うよ。
727 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 12:16:29 ] Mathのメソッドもそんなに頻繁に使うとは思えない
728 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 12:33:40 ] >>723 みたいに、java.lang, java.util. java.io以下のクラスは押さえて、 あとはJavadocでその都度確認、ってのでいいんじゃね。
729 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 12:35:03 ] >>724 証明書を発行するAPIというのは標準にはなかったと思う。
730 名前:719 mailto:sage [2008/03/25(火) 12:57:38 ] java.lang, java.util. java.io以下のクラスですな さっそく調べて覚えるよう様にするす dクス!
731 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 12:59:22 ] 719が聞いてたのはstaticメソッドのことじゃないの?
732 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 15:40:34 ] Sound APIについて質問です。 DataLine.Info info = new DataLine.Info(TargetDataLine.class, format); TargetDataLine target = (TargetDataLine)AudioSystem.getLine(info); これで取得したターゲットラインを録音すると、コンピュータ上の音(スピーカーから通常出る音)が録音されました。 これをマイクからの入力に変えるにはどうすればよいのでしょうか? Port.Info.MICROPHONEを情報としてPortを取得して・・・とするのでしょうけれでもその先が分かりません。
733 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 16:20:26 ] >>732 AudioSystem#getMixerInfo、AudioSystem#getMixer、Mixer#getTargetLineInfoあたりで 全部のターゲットラインをリストアップして、一覧から選ばせるってのはどうだろう・・・
734 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 17:55:04 ] javaのコンパイラのパスを要求されたらどこを指定すればいいのでしょうか j2sdkを普通にインストールしました
735 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 17:56:49 ] OSは?
736 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 17:57:07 ] C:\Program Files\Java\jdk1.6.0_05\bin
737 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 17:57:13 ] 窓xp sp3です
738 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 18:01:46 ] >>736 そこらへんで見つかりました ありがとうございます ずっとjreの方を見てました
739 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 18:10:39 ] JDKを入れるのが初めてなら落とすときにインストール手順を読まないのだろうか
740 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 18:15:00 ] 世の中にはマニュアル類を読まない人間が結構いるらしいよ
741 名前:>>733 mailto:sage [2008/03/25(火) 18:51:09 ] >>732 それしかないみたいですね。 そうします。ありがとうございました!!
742 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 22:03:55 ] PATHって、違う言語をコンパイルするときには毎回変えないといけないの? 今Cの設定なんだが。
743 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 22:08:09 ] どんどん追加していけばいいだけ
744 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 22:14:55 ] 基本的に同じ PC 上で同じ言語 (コンパイラ) の違うバージョンを使い分ける場合だけ気をつければ良い。
745 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 23:17:31 ] 追加できるのか。ども。
746 名前: [―{}@{}@{}-] デフォルトの名無しさん mailto:sage [2008/03/26(水) 10:56:16 ] javac の -g:<キーワード> で sources,lines,vars のデバッグオプションが 指定できますが、デバッグ情報が載らない(載せない)と言う点以外の影響 (性能劣化等)はあるのでしょうか。class ファイルが大きくなるだけでしょうか。
747 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 12:03:56 ] サブクラスのインスタンスから「スーパクラスのメソッド」呼び出した時、 スーパクラスのメソッド内で、「サブクラスでオーバライドしたメソッド」を使ってた場合に 動的バインドでオーバライドした方のメソッドが呼び出されるのって 単純に気をつけるしかないんでしょか?
748 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 12:09:07 ] >>747 当然の話。むしろ呼んでくれないと困る。 それを「気をつける」と認識する方が問題。
749 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 12:11:17 ] ありがとう。認識あらためます。
750 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 12:14:40 ] >>747 オーバーライド(上書き)とはそういうもの。 公開したいけど、上書きされるのが困るのならば、final を付けてしまいましょう。 公開する必要が無いならば、private にしましょう。 そもそも継承されることを望んでいないなら、class を final にしてしまいましょう。
751 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 13:04:04 ] 言い方を変えれば、上書きしたメソッドを呼んで欲しいからサブクラスで上書きするわけで、読んで欲しくないならばオーバーライドする必要がない ただ、「意図せずにスーパークラスのメソッドをオーバーライドしてしまった」とか「意図せずにサブクラスで定義されているメソッドと同名のメソッドをスーパークラスに定義してしまった」というケースはある。 解決策はfinalもあるが、@Override無のオーバーライドはコンパイルエラーとする、という方が柔軟ではある。
752 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 15:12:47 ] C# と比較するとわかりやすいかも。
753 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 15:37:35 ] C#しらねって奴多いんじゃない?
754 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 15:46:55 ] C#いらねって奴多いんじゃない?
755 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 17:26:04 ] 最近になってJavaが無謀な拡張されまくってるのはC#のせいだからな
756 名前:デフォルトの名無しさん [2008/03/26(水) 21:12:25 ] String str1 = "文字列"; と String str = new String("文字列"); って何が違うのでしょうか?
757 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 21:21:35 ] 後者は無駄の極み
758 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 21:27:04 ] 上はどこかにある "文字列" という文字列の参照を str1 に代入されるだけ。 下は "文字列" という内容の新しい文字列オブジェクトが毎回作られてから、その参照が str1 に代入される。
759 名前:デフォルトの名無しさん [2008/03/26(水) 21:39:02 ] すみません、str1じゃなくてstrでした。 では、前者と後者で目に見える違いが出ることはあるのですか? まら、両者を使い分けたりする必要はあるのでしょうか?
760 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 21:44:10 ] public class Test { public static final void main(String[] args) { String s = "Hello, world"; System.out.println(s == "Hello, world"); System.out.println(s == new String("Hello, world")); } } -------- true false --------
761 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 21:47:42 ] 上は str1 == str が true、下は str2 == str が false 従ってインスタンスが同じかどうかの違いがそのまま適用される。 たとえば synchronized(str1) と synchronized(str)
762 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 22:20:03 ] 誰か文字列の実体はプールで共有されてるって言ってやれよ。
763 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 22:34:46 ] 理由言わないとね・・・
764 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 22:36:15 ] プールと言いたいだけの奴とは違うのだよ。
765 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 23:16:55 ] >>762 intern()しないと共有されないぞ。文字列リテラルは暗黙で共有されるが。
766 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 23:20:24 ] >>756 に対する答えは、 String str = new String("文字列"); は絶対に使うな、でいいじゃないか。 理由はこの際どうでもいい。
767 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 23:27:48 ] 理由がどうでもいいとか思うやつって技術者としてどうなんだ。
768 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 23:29:40 ] 理由を押し付けて初心者を混乱させるのって人間としてどうなんだ。
769 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 23:31:49 ] 動けば良い系の人じゃね。 安易に絶対とか使うのも技術屋じゃねーし。
770 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 23:31:50 ] 俺も*とりあえずは*使うな、って方針には賛成 必要になってから知ればいいんじゃないかな
771 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 00:00:19 ] 小学生に教える時に中学高校で扱う内容にまでふれて 説明した方が良い/悪い論争
772 名前:sage [2008/03/27(木) 00:10:51 ] 1 if (XXX == XXX) ってのはそのオブジェクトの参照が同じかチェックしている? 2 String str = new String("XXX") は新しくメモリに確保(インスタンスを作成)すること? 3 String str = "XXX" の扱いはVMが管理している?
773 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 00:19:45 ] ブッ 理解までにそんな大きなステップが必要なほどのネタなのかよw すぐには不要でも、キーワードだけでも与えておけば必要になった時の理解度が違う。 将来の期待もなく「理由不問、絶対やるな集」だけで育てられたお前に合わせる必要はねぇべ。
774 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 00:21:07 ] >>772 まあ、全てYESと言っても良いかと。 ただ、貴方と私で、其の文を見て、違う状況を想定してる可能性は否めないが。 15.21.3 参照型等価演算子 == 及び != ttp://www.y-adagio.com/public/standards/tr_javalang2/expressions.doc.html#236163 3.10.5 文字列リテラル ttp://www.y-adagio.com/public/standards/tr_javalang2/lexical.doc.html#101083
775 名前:デフォルトの名無しさん [2008/03/27(木) 00:24:58 ] SJC-P310-035の試験を今度受けるんですが、黒本の仕上げ問題で61問中51問正解 だったんですが、こんなレベルでももう合格できますか?
776 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 00:47:48 ] とりあえず忘れろに賛同かな バイト配列から文字列を生成したいような場合にnewは使うが、new String(String str) を使うケースはほとんどない、と教えてる。 どっちかといえば、equalsで比較しろのが重要な話しだし。 >>775 スレ違い
777 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 01:03:18 ] >equalsで比較しろ これの方が遙かに重要だな
778 名前:デフォルトの名無しさん [2008/03/27(木) 03:52:21 ] Javaのライブラリに変数の詳しい情報をダンプしてくれるような奴ってありませんか? PHPでいうvar_dump的なものを使いたいんですが
779 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 08:30:48 ] >>778 用途がわからんのだが、開発中ならたいていのIDEのデバッガについてる 変数watch系機能で間に合いそうな。 それとも運用中に必要な機能?
780 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 08:33:27 ] commons langのToStringBuilderとか大がかり杉?
781 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 08:43:02 ] ねぇよ下駄言語と一緒にするなと言えば済む話では。
782 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 11:45:34 ] JITコンパイルされた後のアセンブリコードを見るには、どうすれば良いですか?
783 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 11:46:42 ] 心眼
784 名前:デフォルトの名無しさん [2008/03/27(木) 12:17:19 ] >>779 普通のテキストエディタでやってる人間なもんで… >>780 ToStringBuilderちょっと見てみます
785 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 12:41:38 ] Soundbankに新たなInstrumentをロードしたい場合どのようにすればよいでしょうか? デフォルトのシンセサイザーをMidiSystemで取得してloadInstrumentでロードしたいのですが、同じInstrumentでもHeadspaceInstrumentじゃないと読み込めないらしいのです。 他にもいろいろ実装しなおさなければいけないのでしょうか?
786 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 12:56:38 ] >>785 www.jsresources.org/faq_midi.html#create_soundbank
787 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 13:34:49 ] うわーSynthesizer実装しないといけないんですね。 分かりました。諦めます。
788 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 15:15:38 ] オーバーロードに関して質問なのですが class unko { public void hoge(List<List<A>>) { } public void hoge(List<A>) { } } これって何で出来ないんですか? 微妙に型というか違うと思うのですが
789 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 15:19:23 ] Javaのジェネリクスは、コンパイル後に消えるから、どちらも同じ型とみなされる。 だからNG
790 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 15:30:01 ] >>789 なるほど・・・
791 名前:デフォルトの名無しさん [2008/03/27(木) 16:53:01 ] List< List<A> >ならOK
792 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 16:57:04 ] >>791 C++と勘違いしてないか?
793 名前:デフォルトの名無しさん [2008/03/27(木) 17:00:59 ] >>792 うん。
794 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 17:13:52 ] なんだ釣りか。
795 名前:772 mailto:sage [2008/03/27(木) 22:42:03 ] >>774 文字列連結でもOKなのは、まったく分かっていませんでした。 さらに、実行時に解決?計算される文字列は、異なるもなのですね。 そもそもinternなんてメソッドがあるなんて知りませんでした。 全く分かっていなかったけど、そのサイトかなり勉強になりました。 理解できればの話ですが。
796 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 01:03:18 ] フィールド名の先頭を_(アンダーバー)にしているコードを見かけるのですが、 どのような意味でそのようにしているのですか?
797 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 01:18:31 ] フィールドとそうでないものとを区別するため
798 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 01:22:10 ] アンダースコアが正しい読み方
799 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 07:58:59 ] >>798 通じるし、そこは許容範囲だろ。 「Unicode的にはローラインだ」とか、不毛だろ?
800 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 08:27:03 ] _1つで始まる識別子って、グローバルな空間では全部予約済みなんだよな。 構造体フィールドならいいけど。
801 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 08:28:05 ] む、そりはC/C++だ。
802 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 08:44:57 ] Cでコンパイルするとリンカ上の名前が_付になる。のような気がした。
803 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 09:06:25 ] 800は791か。
804 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 11:35:10 ] 変数a b c があるとしてこの中で中央値を求めるにはどういう方法がありますか? 変数は何が入るかわからないという場合です。 if文の練習問題なのですが、答えがのってなくて
805 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 11:41:43 ] int[] array = new int[]{a, b, c}; Arrays.sort(array); System.out.println(array[1]);
806 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 11:43:00 ] >>805 if文使えw
807 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 11:47:12 ] 説明が悪かったです、すみません 例えば a=1 b=2 c=3 なら bが出力 a=2 b=1 c=3 なら aが出力 みたいに何の数値を入れても真ん中の数値が出力するということです。
808 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 11:48:59 ] いや>>805 で合ってるよw if(a<b){ if(b<c)答=b; else 答=max(a,c); } else{ if(c<b)答= b; else 答=min(a,c); }
809 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 11:56:18 ] 全然わからないんですが、maxとminはどうすればいいですか?
810 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 12:00:54 ] maxは渡された引数の大きいほうを、 minは小さいほうを返すだけ。 これくらいは自力で書けないと、将来つらいよ?
811 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 12:08:52 ] >806 数が増えた時に汎用的に使えるのはソートじゃね? >809 日常生活にも支障ありそうだなw
812 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 12:15:12 ] ありがとうございます、しかし多分maxとminはまだ参考書に出てきてないので使わない方法なんだと思います。 あとは自力で考えます、ありがとうございました。
813 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 12:21:46 ] >>811 if文つかってやれよw
814 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 12:21:53 ] すみません、勘違いしてたようです。 maxとminは別に何でもいいんですね、引数ってのを使えば楽ってことはわかりました。
815 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 12:25:04 ] っ Math.min、Math.max
816 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 12:30:10 ] あ、Math.min Math.max調べたらやっぱりminとmaxじゃないとだめみたいでした。
817 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 12:35:51 ] min(l,r)は if(l<r)答=l; else 答=r; max(l,r)は if(l>r)答=l;else 答=r;
818 名前:デフォルトの名無しさん [2008/03/28(金) 15:51:54 ] >>803 ちげーよ馬鹿。 俺は決してsageたりしない。
819 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 16:04:25 ] 一つ助けてくれ。 JOGLのデモにあるcgGL_vertex_exampleとruntime_ogl_vertex_fragmentがjogl_cg.dllが見つからないって UnsatisfiedLinkErrorが出るんだけど利用してるjreにjogl_cg.dllは置いてあるんだけど -Djava.library.path指定しても解決できない、どうすれば良いか分かる人居る? JOGLのパッケージ以外に何か必要だったりする?
820 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 16:07:32 ] system32に放り込め。
821 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 18:09:32 ] >>819 cgのランタイムが必要とかかな・・・? そのjogl_cg.dllのインポートテーブルを見てみると何かわかるかも
822 名前:デフォルトの名無しさん [2008/03/28(金) 21:03:25 ] 最近Javaを勉強し始めた者です。 当方JavaScriptを今までやっており、ちょっとサブルーチンを使う程度で あとはとにかくつらつらと書き連ねていくようなプログラムの書き方に慣れてしまいました。 まだJava関係の書籍は買っておらず、様々な入門サイトを見て勉強しているのですが、 いちいちメソッドを呼び出し合ったりメソッド毎に細かく処理を分けたりする、 オブジェクト指向の具体的な使い方やメリット等がいまいち理解できません。 自分で適当にメソッドやクラスを分けたりしてオブジェクト指向をしてる気にはなってみても、 「こんなんで良いのだろうか?」と言う感じがしてしまい、 色んな処理を同じメソッドに詰め込んでしまいがちです。 なので、文法の解説ではなくオブジェクト指向の解説をメインにした 参考書があれば買おうと思うのですが、どの書籍が良いのでしょうか? 回答よろしくお願いします。
823 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 21:21:23 ] >>822 デザパタ
824 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 22:11:01 ] >>822 結城浩という名前を覚えておくと、困った時に助かるかも
825 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 22:27:08 ] まあ、片っ端から10冊ぐらい読め。将来を考えたらたいした投資じゃない。
826 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 23:02:24 ] >>825 必要ない人には必要ないだろ 勝手に将来を妄想するな >>824 にあるけど、結城さんの本は取り組みやすいから、 デザインパターンの入門にしろ、Javaの入門にしろ、1冊目としておすすめ
827 名前:デフォルトの名無しさん [2008/03/28(金) 23:04:19 ] 総称クラスのインスタンスを作成することは出来るでしょうか? public class TempT <T>{ public T makeT(){ return new T(); } } ということをやりたかったのですがコンパイルが通らないようです。 総称クラスの名前だけでもわかれば、 ttp://blog.xole.net/article.php?id=197 で何とかなると思うのですが……。
828 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 23:09:29 ] >>826 勧められた本だけ読んで結城先生信者ですかwさすがゆとりですな
829 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 23:16:03 ] >>827 できないんだったかな public T makeT(Factory<T> factory) { return factory.create(); } みたいにするのが正攻法なんじゃないの 使うときはTに指定する型ごとにFactory<T>をいちいち実装しないといけないけど
830 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 23:17:25 ] >>827 ジェネリクスはコンパイル処理。 コンパイル後は、普通のキャストと変数の型に展開されて、情報は残りません。 何がやりたいのか…何かが出来そうで試してるだけなのかな 汎用的に便利なクラスなんてものは、まず作れないと思ったほうが良い。 それをするなら、今の仕組みが便利に判りやすくなるクラスを作りましょう。
831 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 23:22:26 ] C#だと「引数無しのコンストラクタを持つ」制約が付けられるからあっさり実現できるんだけどね
832 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 23:39:55 ] >>822 >いちいちメソッドを呼び出し合ったりメソッド毎に細かく処理を分けたりする、 >オブジェクト指向の具体的な使い方やメリット等がいまいち理解できません。 オブジェクト指向とか、デザパタとかいう話じゃないだろ。 マーチンファウラーのリファクタリングが指針になるかも。
833 名前:827 mailto:sage [2008/03/29(土) 00:36:28 ] >>828-830 早速のお返事、有難うございます。 >何かが出来そうで試してるだけなのかな 正直、半分はそんなところです。 getDeclaredFieldsあたりのリフレクションとcommons.beanutils、commons.dbutilsを組み合わせて、ごく簡単なO/Rマッパが作れないかなと思ったんですがね。 ……やっぱ素直にHibernateとかS2Daoを使っておいたほうがいいのか。 ・・・でも大げさすぎるんだよなぁw
834 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 09:58:12 ] newInstance使ってキャストって手もあるが
835 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 10:56:37 ] いまは T Class<T>#newInstance() だからキャスト不要。 例外は捕捉する必要あるけど。
836 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 12:53:04 ] どっちみちTからは直接取れないけどな
837 名前:827 mailto:sage [2008/03/29(土) 15:26:04 ] >>835 みたいですね。T.newInstance()って書き方もNGみたいです。 残念ですが諦めましょう。
838 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 15:39:36 ] こんなのどう? public class TempT<T>{ private Class<T> clazz; public TempT(T t) { clazz = (Class<T>) t.getClass(); } public T create() throws Exception{ return clazz.newInstance(); } } コンストラクタ引数が無駄でヤな感じ。アイディア求む。
839 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 15:52:46 ] Class<T>を引数にした方が誤解を招かないんじゃね それでも格好悪いけど
840 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 15:58:57 ] インスタンスの生成に関してジェネリクスでやろうって方針が無理 可能なのはキャストがいらねってくらいだよ
841 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 16:41:57 ] 初心者ですみません、質問させてください 変数の型にfloatを使いたいのですが、コンパイル時にエラーが出ます。 精度が落ちている可能性 検出値 double 期待値 float a=3.6 ^ と表示されてます。 本を買って勉強始めたばっかりで、本の通りに書いたと思うのですが、 自力解決出来ません。doubleで書くと上手く行ったのですが、原因が知りたくて。
842 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 16:46:10 ] 3.6f
843 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 16:48:50 ] 3.6 は倍精度浮動小数点の double。a は単精度浮動小数点の float。 代入するには精度を落とさなければならないが、それをコンパイラが勝手にやるとバグの元になる。 3.6 の方も float であると明示的に記述すれば良い。 a=3.6f;
844 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 16:55:19 ] doubleっていう、「基本があってその倍」な名前のほうが デフォなのがややこしいな。
845 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 16:57:16 ] なるほど、ありがとうございます!
846 名前:デフォルトの名無しさん [2008/03/29(土) 19:29:15 ] 質問です。 現在、mainクラスのガベージコレクションを、 多重継承されたインスタンスからコントロールしています。 ただ、Heap領域にアクセスする場合について、 そのコレクションフレームワークからマルチスレッド化させると、 ローカルにremoveしようとしても同期的な排他制御が取れません。 やはりラッパークラスのプリミティブ型は、エレメントのイテレータもhasNext()メソッドもどきで volatile修飾子のシリアライゼーションをさせるのが絶対条件なのでしょうか。 ちなみに、もしコマンドライン引数によってJava.langのStringBufferまでimportしたとしても、 SetインターフェースのisEmptyメソッドにするとなぜかStackOverflowErrorの例外が発生します。 staticなyield()メソッドを汎用させるため、 throwsで例外ハンドラをコンストラクタなアサーションをしているのですが・・・。 C言語が腐るほど考えたのですが、 バイナリでのファイル操作がなかなかまとまらないため質問した次第ですので、 どうかお答えお願いします。
847 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 19:46:09 ] 「日本語でおk」ってこういうときに使うの? Javaで多重継承かー。
848 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 19:47:33 ] C言語腐っちゃったよ〜 どうしよ〜
849 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 20:39:39 ] Javaっぽい言語のVM実装しているのかねぇw
850 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 20:58:28 ] バカが何人釣られるか静観してようかと思ったが コピペに w とか、もう見てらんない。
851 名前:デフォルトの名無しさん [2008/03/29(土) 21:01:24 ] とりあえず>>846 が池沼なのは確定だろ?
852 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 21:02:31 ] 見てらんない = 結局釣られた
853 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 21:04:39 ] 前スレあたりのコピペも知らんて、おまいら春休み参入者か?
854 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 21:08:43 ] 何でこうネタやコピペすら嗅ぎ分けられない恥ずかしい奴多いんだろここ。
855 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 21:17:09 ] >>846 とかマジ池沼じゃんw 何この春厨wwwww
856 名前:827 mailto:sage [2008/03/29(土) 22:00:37 ] >>838 アドバイス有難うございます。確かにヤな感じはするのですが、こうするより仕方ないようですね。 >>839 Class<T>を引数にする、というのは気がつきませんでした。御助言感謝です。 >>840 どーもすいません(苦笑)
857 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 01:06:30 ] スレに常時へばりついているってのも、どうかと
858 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 04:29:15 ] 悔しそうですね。
859 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 11:03:54 ] Servlet+JSP+Strutsでアプリケーションを作成しています。 これで出力されたHTMLには余計な空行が出力されます。 (Strutsタグなどの位置により) なるべくHTMLを小さくしたいので余計な空行やスペースは 削除したいのですが、なにかテクニックはないものでしょうか? 思いつくのはフィルターとか??? よろしくお願いいたします。
860 名前:デフォルトの名無しさん [2008/03/30(日) 11:26:37 ] スーパークラスHogeの拡張クラスHogeA,HogeBが定義してあり HogeAのカプセル化されたフィールドにα、HogeBのカプセル化されたフィールドにβが定義されてる状態で Hogeにはアブストラクトのゲッターメソッド、セッターメソッドが定義されています 別のクラスDから Hoge h = (Hoge)HogeA or Hoge h = (Hoge)HogeB のような形で選択的にHogeを定義しゲッターメソッドから任意のα、βが抽出できるようにしたいのですが 現状うまく行きません よい方法を教えてください
861 名前:デフォルトの名無しさん [2008/03/30(日) 11:31:09 ] >>859 私の場合ははフィルターを作ってそこを通してデーターが得られるようにしてます
862 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 11:47:37 ] >>860 スーパークラスでαとβが宣言されてないからHogeのインスタンスとしている場合にアクセスできないのは当然です。 そのフィールドを使いたい場合はHogeA,HogeBでキャストしてやらなきゃ無理っす。
863 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 11:49:48 ] >>861 ありがとうございます。 私もfilterでやってみようと思います。 でもその前に、、、、そのフィルターください!orz
864 名前:デフォルトの名無しさん [2008/03/30(日) 11:55:06 ] >>862 選択的キャストの方法としてどういう方法があるでしょうか
865 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 12:10:32 ] >>860 Hoge で定義した get/set メソッド宣言と、α、βの型を教えて欲しい。
866 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 12:18:32 ] >863 数100バイトの差は気にしないほうがいい。 携帯コンテンツとかならば、JSPを工夫するか、Servlet内で全部HTMLを書いて小さくするほうがいいかと。
867 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 12:19:57 ] >860 HogeにgetParam があったとしたら、 HogeA で getParam からαを取得、HogeBではβを取得 ってのが普通かと。
868 名前:>>862 mailto:sage [2008/03/30(日) 12:29:27 ] えらい勘違いしてました。 抽象クラスでgetter/setter宣言してたんですね。 その型が抽象クラスのgetter/setterの戻り値の型の子なら大丈夫です。
869 名前:デフォルトの名無しさん [2008/03/30(日) 12:59:04 ] 失礼 うまく行きました 他のことが原因してました
870 名前:デフォルトの名無しさん [2008/03/30(日) 17:51:19 ] JSON-LIBを使おうと思い、 C:\Tomcat 6.0\lib にjson-lib-2.2.1-jdk15.jarを入れたのですが、 java.lang.NoClassDefFoundErrorが出てしまいます。 C:\Tomcat 6.0\lib下ではクラスパス通らないのでしょうか? それともjdk16環境下なのにこのJARを入れたのが失敗でしょうか。
871 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 21:04:39 ] JDK6ならjavascript使えば良いと思うんだが・・・
872 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 01:30:58 ] png画像の画像処理をしたいのですが質問です. java.awt.image.PixelGraberのgrabPixels()で各ピクセルの情報を配列に取得し, java.awt.ColorのgetRed()/getGreen()/getBlue()で各ピクセルのRGB値まではとれました. ここから取得した配列のRGB値を取得したRGB値を元にして計算し 変更したいのですがどのようにすれば良いのでしょうか?
873 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 01:50:46 ] どう計算したいのかはお前以外には解らんw
874 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 02:24:02 ] どう計算するかは分からないけれど、ImageIO.readでpngをBufferedImageとして読み込んだ方がいろいろ変更の自由がきくよ。
875 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 02:24:57 ] あ,計算の話ではなくて 計算後にでた新しいRGB値をつかってpngを作り直したいんです. 日本語が変ですいません.
876 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 08:54:59 ] 普通にやりたいことを言えよw 例えば元画像をグレースケールにしたいとかさ
877 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 10:17:07 ] 単純に SSLSocketFactory から SSLSocket 作った場合ってどこの CA 証明書が使われてんの? コントロールパネルの Java 設定にリストされているやつ?
878 名前:デフォルトの名無しさん [2008/03/31(月) 11:41:55 ] >>158 肉で出来ています。
879 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 12:18:00 ] JNDIを使用『しないで』DataSourceを生成する方法を教えてください。 組み込みでH2 Databseを使おうと思ったのですが、アプリケーションサーバのJNDIを使って生成する方法しか検索できませんでした。 一応、↓でなんとか生成できたのですが、本当にこの為だけにCommons DBCPやCommons Poolを使わないとならないのでしょうか? ttp://wiki.livedoor.jp/syo1976/d/Derby
880 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 12:26:10 ] JNDI 使わないってスタンドアロンで使うのか? なら接続しっぱなしにしときゃ良いじゃん。
881 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 12:36:20 ] >>879 "Using mock naming contexts for testing" ttp://weblogs.java.net/blog/simongbrown/archive/2003/11/using_mock_nami.html JNDI依存のロジックをコンテナ外でテストするためのテクニックだけど、 流用できると思う。
882 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 12:54:34 ] 超初心者です。入力した整数値を読み込んで、小さいほうの数以上で大きいほうの数以下の全整数を小さいほうから順に 表示するプログラムを作りたいんですが、最後の整数が表示出来ません。アドバイスもらえませんか?作ったコードは下です。 System.out.print("整数1:"); int n = stdIn.nextInt(); System.out.print("整数2:"); int x = stdIn.nextInt(); do { if(n >= x) System.out.print(x++); else if(n <= x) System.out.print(n++); } while (n != x); } }
883 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 13:01:39 ] 素直にforでいいんじゃね? for(int i = n; i <= x; i++){ System.out.println(i); } それとも何かの課題?
884 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 13:07:56 ] System.out.print("整数1:"); int n = stdIn.nextInt(); System.out.print("整数2:"); int x = stdIn.nextInt(); do { if(n >= x) System.out.print(x++); else if(n <= x) System.out.print(n++); } while (n != x); System.out.print(n); //これを追加 } } にするとか 明解javaの演習問題だね
885 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 13:09:22 ] >>883 for使うと簡単そうなんですが、練習問題を最初からやっていってる最中で 今はifとdoとwhile文のところなんで、一つずつ確実に使い方を覚えるためにもこれらの構文を使ってやりたいのです。
886 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 13:11:47 ] >>884 おぉ、出来ました!そうです、明解Javaをやってるんです。 この参考書答えがないので、超初心者な自分にはきついです。
887 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 13:12:39 ] >>884 はifの条件式も変えないと駄目だわ
888 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 13:15:42 ] >>887 (n > x)と(n < x)でいいですかね?
889 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 13:17:31 ] おk
890 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 13:19:57 ] >>889 ありがとうございます、ずっと考えていたのがやっと解決して先に進めます。
891 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 13:20:13 ] ループの前にどちらが大きいかを判断して, 大きい方と小さい方それぞれ別の変数に入れといた方が綺麗に書けるよ
892 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 13:20:16 ] ゆとりは不等号を習わないんだって おそるべしゆとり
893 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 13:25:50 ] >>891 ちょっと考えてみます。すみません、ほんとに初心者なもんで。
894 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 13:38:26 ] 初心者初心者って連呼しすぎうぜえ
895 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 13:48:22 ] 初心者は何をしても許されるべき
896 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 13:50:46 ] 本人乙
897 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 13:57:01 ] ワロタ
898 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 15:28:46 ] じゃあ俺も初心者を名乗るから、何をしても許せ
899 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 15:49:26 ] おれもれも
900 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 15:51:31 ] 「初心者だから仕方ないじゃないですか! 日本国では初心者が手厚く保護されているのです。 私は一生初心者であることに決めました。 初心者なんで気を遣って下さい!大目に見て下さい!」 そしてJavaに合格すると「なぁに、初心な言語は山ほどあるさ!」と。
901 名前:デフォルトの名無しさん [2008/03/31(月) 15:55:37 ] 次スレから初心者なしにしようぜ 【初心者】Java質問・相談スレッドxxx【立入禁止】
902 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 15:59:43 ] ここはひどいインターネッツですね
903 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 16:00:45 ] それは人来なくなるだろw でも自分で初心者を名乗るほどの初心者はくだすれに行った方が良いよな。
904 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 16:05:03 ] 初心者無視スレ時代も知らん連中が集まってんのか。
905 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 16:06:18 ] うん。
906 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 16:17:20 ] >>782 デバッグ版のJDKだと -XX:+PrintOptoAssembly オプション付きで起動すれば 出力できるらしいって d.hatena.ne.jp/kkawa/20080330 に書いてある。
907 名前:879 mailto:sage [2008/03/31(月) 17:23:10 ] >>880 いや、まったくそのとおりなんですが、Commons DbUtilsがDataSourceないと使えんとですよ……。 >>881 ありがとうございます。が、これはこれでMockObjectに依存しているのですね。 同じ依存するならcommonsで統一しましょう。 ……>>880 の言うとおり、一つコネクション取って繋がりっぱなしでいいんですけどねぇ。 何でこんなコトしてるんだろ? Webで使うことしか考えてないのかな>Commons DbUtils
908 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 17:46:03 ] >>907 単一スレッドだけなら接続済みの Connection を 1 コ だけ持つ DataSource クラス作れば良いんでねーの。 必要なメソッド数なんて 10 もないでしょ。あ、close() をゴマかさにゃいかんか。 DbUtils って使ったことないけど、DataSource で受け渡したらトランザクションスコープもクソも なくなるんだがそんなウンコチンチンな作りなのかな。どっかのプロジェクトで見たクソフレームワークみたいだな。
909 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 17:48:49 ] ここで908謹製の最強素敵フレームワークへのリンク
910 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 18:26:27 ] >>909 前世紀の終わりに作った奴は発想も方向性も今の Spring Framework とかなり似ている。 まぁまだフレームワークという言葉自体なかったし、周囲も OO 設計への理解度が皆無だったし。 他で作ってた、場当たり的な拡張で肥大化したクラスライブラリのようなものの方が 「多機能」 として受けが良かったのは悲しかった。 同じ頃にアプレット使って今の Ajax と同じことを提案してたよ。使われなかったけど。あれは特許も 提案したんだけどなぁ。あらためて思い出すと相当先行ってたな俺。
911 名前:879 mailto:sage [2008/03/31(月) 18:32:37 ] >>908 ……申し訳ない。大勘違い。 <font size="+3">Commons DbUtilsでDataSourceは必須ではありません</font> ……googleセンセイで引いてくる例がことごとくDataSourceを使ってたもんだから完全に勘違いしてました。 以後メモ。 Commons DbUtilsでDataSourceを使わずにSQLを発行するのは、単にQueryRunnerのコンストラクタを引数なしで呼べばいいだけ。 その後、queryメソッドの第一引数にConnectionを指定すればOK。 Webで引ける例はQueryRunnerのコンストラクタにDataSourceをほとんど必ず指定しているが、DataSourceがないとQueryRunner=Commons DbUtilsが使えないわけではない。 以上、同じ間違いを繰り返す人が出ないことを祈りつつ恥を晒します(涙)
912 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 18:34:33 ] 受けが良かったのは開発者じゃなくて上や営業向けにね。
913 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 20:57:05 ] ajaxなんてだれでも考えつく昔からある方法だろ。 単に最近になってウケただけ。
914 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 21:25:52 ] IE でまさに innerHTML やデータバインディングが実装された 4.0 の頃の話してんだが。 どこの昔からある方法だよ。
915 名前:デフォルトの名無しさん [2008/04/01(火) 01:42:12 ] TestClass var = new TestClass(); TestInterface test = (TestInterface)var; と言うふうにキャストすると、 TestClassがTestInterfaceをimplementsしていなくてもコンパイルが通りました。 キャストすればどんなインターフェイスにも代入できるのかと思ったんですが、 Stringはキャストすることができませんでした。 特定のInterfaceにキャスト可能な条件というのは何なんでしょうか?
916 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 01:54:18 ] コンパイルは通らないと思うが。本当に extends や implements してないのか?
917 名前:915 mailto:sage [2008/04/01(火) 01:59:09 ] コンパイルは通ったけど、実行したらClassCastExceptionが出ました。 ダメですね。。。
918 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 02:23:02 ] すまん勘違いしていた。 public class TestClass2 extends TestClass implements TestInterface{ ... } というクラスがあるかもしれないから、キャスト時に元の型にそのインターフェースが implements されていなくてもコンパイルは通る (型チェックは実行時にしかできない)。 TestClass var = new TestClass2(); TestInterface test = (TestInterface)var; TestClass が final 宣言されていれば TestClass2 のようなサブクラスの存在は ありえないのでコンパイル段階でエラーになる。 String のキャストに失敗するのは、Java では多重継承ができないから TestClass の サブクラスであり String のサブクラスでもあるクラスというのはありえないから。
919 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 19:23:08 ] Java で作った PublicKey, PrivateKey を KeyStore で保存したいんだけど、 Certificate が必要なようだけどこれってどうやって作るの?
920 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 08:16:19 ] ユーザ認証を求められるwebサイトで、認証後の内容 つまりログイン状態後にアクセス可能になるコンテンツに、 javaプログラムでアクセスするためには、どういう方法をとればよいのでしょうか? 端的に言って、mixi のことなんですが.... javaプログラム側でどのような方法をとれば、mixiのログイン状態を実現できるのか、 知りたいのです。
921 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 08:43:50 ] >>920 javaプログラムでログインすればいいです。
922 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 09:22:17 ] >>920 HTTP通信のライブラリを使うと楽。 Apache HttpComponentsとかHttpUnitとかお薦め。
923 名前:デフォルトの名無しさん [2008/04/02(水) 11:09:49 ] >>921 そのやり方僕にも教えて ログイン時のパラメーターをどうやってJAVAからWEBサイト側に渡すのか 方法が分からん
924 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 11:18:15 ] URL と URLConnection で GET/POST リクエスト送る方法調べろ。
925 名前:デフォルトの名無しさん [2008/04/02(水) 11:26:05 ] それだけなんだ
926 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 13:40:31 ] >>923 まずHTTPから勉強しなよ
927 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 14:44:22 ] Struts+JSPで親画面からwindows.openで子画面をポップアップで開き、子画面で選択した内容を親画面に戻しています。 親画面が縦長なので画面が一番上に戻ってしまいます。 一番上に戻らないようにしたいのですが、どうすれば良いでしょうか?
928 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 14:48:12 ] JavaScript で入力内容を親画面に設定しれ。リクエスト出すな。
929 名前:デフォルトの名無しさん [2008/04/02(水) 15:37:59 ] 入力した数字が素数か調べるにはどうすればいいですか?
930 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 15:42:51 ] >>929 その数字の約数を調べればいい 約数が1とその数字自身しかなければ素数
931 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 17:11:15 ] >>920 まずは Firefox と LiveHTTPHeaders を入れて、どんなことが起きてい るのか調べるんだ。その上で、どんなAPIを使えば楽ができるのかを考える。
932 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 17:13:10 ] Eclipse の TCP/IP モニタで十分じゃん。
933 名前:デフォルトの名無しさん [2008/04/02(水) 19:13:01 ] プログラミング初心者ですが、質問があります。 eclipseで以下のようなプログラムを書いて、それをjar形式でエクスポート しました。 しかし、そのjarファイルをクリックして開こうとすると「could not find main class」 と出てききます。どうすればいいのでしょうか? 誰かわかる方助けてくださいお願いします。 import java.awt.Color; import java.awt.Font; import java.awt.FontMetrics; import java.awt.Graphics; import java.awt.Insets; import java.awt.image.BufferStrategy; import java.awt.image.BufferedImage; import java.io.IOException; import java.util.Timer; import java.util.TimerTask; import javax.imageio.ImageIO; import javax.swing.JFrame;
934 名前:デフォルトの名無しさん [2008/04/02(水) 19:13:57 ] public class GameTestMain { /** * @param args */ JFrame frame1; BufferStrategy bstrategy; int count = 0; BufferedImage backimage1, backimage2; GameTestMain() { frame1 = new JFrame("ノベルゲーム"); frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame1.setBackground(Color.WHITE); frame1.setResizable(false);
935 名前:デフォルトの名無しさん [2008/04/02(水) 19:15:13 ] public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ GameTestMain gtm = new GameTestMain(); } class MyTimerTask extends TimerTask { public void run() { Graphics g = bstrategy.getDrawGraphics(); if (bstrategy.contentsLost() == false) { Insets insets = frame1.getInsets(); g.translate(insets.left, insets.top); g.drawImage(backimage1, 0, 0, frame1); g.setFont(new Font("Selif", Font.PLAIN, 40)); drawStringCenter("秒速1キロメートル", 100, g); bstrategy.show(); g.dispose(); } } }
936 名前:デフォルトの名無しさん [2008/04/02(水) 19:16:07 ] void drawStringCenter(String str, int y,Graphics g) { int fw = frame1.getWidth() / 2; FontMetrics fm = g.getFontMetrics(); int strw = fm.stringWidth(str) / 2; g.drawString(str, fw-strw, y); } }
937 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 19:17:17 ] マニフェスト Main-Class でググレ
938 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 19:17:23 ] エクスポートするときにメインクラス指定した?
939 名前:デフォルトの名無しさん [2008/04/02(水) 19:22:08 ] >>938 GameTestMainってのを選択しました。
940 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 19:30:00 ] >>933 jarを展開してMETA-INF/MANIFEST.MFファイルがあるか確認 その中にMain-Class: GameTestMainと書かれているか確認 必要なclassファイル (GameTestMain.classとかMyTimerTask.classとか) が全部入ってるか確認
941 名前:デフォルトの名無しさん [2008/04/02(水) 19:53:56 ] それ以前にクラスパス通ってる?
942 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 20:42:01 ] そもそもデフォルトパッケージで JAR 起動できたんだっけか?
943 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 20:46:12 ] できるよー
944 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 22:53:45 ] >>932 どうやるんだ?
945 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 22:59:32 ] [Window]-[Show View]-[Other...]-[Debug]-[TCP/IP Monitor] 右上の ▽ の Properties... で実際の接続先を指定。 ブラウザのプロキシ設定で localhst:<local monitor port>
946 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 02:27:30 ] 一つお伺いしたいのですが,java複数枚のjpegをmjpeg or wmv を作りたいのですが どの様にすればよいのでしょうか?
947 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 02:38:51 ] java複数枚のjpegってなんだ?をが2つあるし
948 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 02:57:03 ] >>946 標準APIではメソッド一発で、みたいな便利なものはなさそうだから、 フレームになるjpegデータを読み込んで欲しい動画形式に従ってファイルに書き出していくしかなさそう。 標準でなければ動画を扱うライブラリとかでありそうだけど。
949 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 09:06:56 ] JMFってMotionJPEG対応してなかったっけ?
950 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 17:31:08 ] チャット作るのに JMS 使うのって鯵捌くのに斧振り回すみたいなもんかね?
951 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 22:19:06 ] 文字列にそれまでと違う文字が出てくるindexってとれますか? 1111223111だったら4が取得できるといった感じの
952 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 22:27:52 ] >951 配列に展開してfor文でまわせばいいじゃん・・・
953 名前:デフォルトの名無しさん [2008/04/03(木) 22:36:47 ] 次すれから初心者出入禁止な
954 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 22:52:55 ] 超初心者スレもあるのかな? とりあえず、質問内容を理解できる日本語文が読みたいよ。
955 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 23:13:14 ] 【初心者以前】Java質問隔離スレ【エスパー募集】とか?
956 名前:デフォルトの名無しさん [2008/04/03(木) 23:27:59 ] くだすれでいんじゃね?
957 名前:デフォルトの名無しさん [2008/04/04(金) 00:13:20 ] Javaから、Windows上のフォルダの書込権限を調べることは可能でしょうか? Javaは1.4、Windowsは2000もしくはXPが対象です。
958 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 00:34:49 ] >>957 File.canWrite()
959 名前:デフォルトの名無しさん [2008/04/04(金) 01:06:14 ] >>958 ありがとうございます。 1週間以上探しても見つからず、もはや不可能なのかと諦めかけていました。
960 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 01:15:01 ] >>951 String s = "1111223111"; String regex="(.)\\1*([^\\\\1])"; Pattern p = Pattern.compile(regex); Matcher m = p.matcher(s); if(m.find()) { int i = m.group(0).length() - 1; System.out.println(m.group(0)); System.out.println("index is " + i); } できたどー
961 名前:デフォルトの名無しさん [2008/04/04(金) 04:03:24 ] どうやったらこれ探すのに1週間以上かかるんだw
962 名前:960 mailto:sage [2008/04/04(金) 06:25:46 ] String s = "1111223111"; String regex="(.)\\1+(.)"; Pattern p = Pattern.compile(regex); Matcher m = p.matcher(s); if(m.find()) if(!m.group(1).equals(m.group(2))) { int i = m.group(0).length() - 1; System.out.println(m.group(0)); System.out.println("index is " + i); } 間違えてたどー