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 あたりで。
684 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 02:39:18 ] XmlNamespaceManager site:w3c.org に該当するページが見つかりませんでした。 おや?
685 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 04:58:49 ] >>681 >どのようにXPathを記述したらいいでしょうか? こういう事聞くレベルなら仕様を理解してない。実装されたAPI以前の問題。て言うかW3Cの仕様に対してMSの実装出してくるなんて釣りにしか見えないんだが・・・。 >XMLから<media:thumbnail> のurl属性 を取得する ロケーションパスの書き方は分かるのか? >>684 .NETのクラス名がw3cのページでヒットするわけ無いだろ。煽るならもっと頭使え。 googleくらい使えるようになろうな xpath site:www.w3.org/ ~~~~~~~~~~~~~~~~~~~~~~~~
686 名前:681 mailto:sage [2007/03/23(金) 05:12:15 ] すみません。 >>685 > > こういう事聞くレベルなら仕様を理解してない。実装されたAPI以前の問題。 > て言うかW3Cの仕様に対してMSの実装出してくるなんて釣りにしか見えないん > だが・・・。 おっしゃるとおり、よく理解しておりません。 > >XMLから<media:thumbnail> のurl属性 > を取得する > ロケーションパスの書き方は分かるのか? おそらく、 /rss/channel/item/media:group/media:thumbnail/@url ではないかと思うのですが…。
687 名前:681 mailto:sage [2007/03/23(金) 05:18:48 ] 追記です。 よく分かっていないのは、名前空間の扱いです。 .NETの実装を見て、JavaのXPathApiにも、addNameSpace にあたる関数があるの だろうと考えたのですが、それを見つけられなくて困っていました。
688 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 09:54:40 ] >>685 は、XmlNamespaceManagerなんぞw3c標準にないのに知るかよ! という回答するつもりだった人からのピーデーの某氏へのイヤミです。
689 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 09:55:34 ] ×という回答するつもりだった人からの ○という、回答するつもりだった人からの 「、」いっこ抜けて意味が変わってるしorz
690 名前:デフォルトの名無しさん [2007/03/23(金) 12:06:23 ] ログを解析するアプリケーションを作りたいのですが、SwingやAWTで UI部分を作り、エンジン部分をC言語で作る事は出来るのでしょうか? 出来る場合、JAVA側(UI)とC側(エンジン)とのやりとりはどのような 感じになるのでしょうか? C言語は少し経験ありますが、JAVAはまったくの初心者です。 よろしくお願いします。
691 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 12:11:49 ] 出来る。 やりとりはソケットを使う/JNIを使うなど。
692 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 12:15:33 ] >>691 即レスありがとうございます その単語でぐぐったら期待通りのAPIがHITしました!
693 名前:681 mailto:sage [2007/03/23(金) 12:54:47 ] 自己フォローです。 Java XPath API www-06.ibm.com/jp/developerworks/java/060906/j_x-javaxpathapi.shtml > しかし、pre という接頭辞を、www.example.com/books という URI > にマップする必要があります。NamespaceContext インターフェースが > JDK(Java software development kit) や JAXP にデフォルトで実装されてい > ないのは多少ばかげた話ですが、実際にないのです。 この後、記事は「名前空間マッピングクラスを自作する」ことになります。ど うなってるの?何か意見の対立と混乱があるように見えます。 ちょっと使おうと思っただけなのに。弱りました。
694 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 13:05:58 ] PS3でFolding@homeが利用可能になりました! タンパク質解析プロジェクトFolding@homeで病気で苦しむ人達を救えるかも。 PS3でFolding@homeしようぜ(Team 2ch) ex22.2ch.net/test/read.cgi/ghard/1174030817/ チーム番号:162 チーム名:Team 2ch fah-web.stanford.edu/cgi-bin/main.py?qtype=teampage&teamnum=162 ☆PS3での参加方法 PS3からFolding@homeを起動し、チーム番号162に入力すればOK。 ユーザ名は何でも良いが、folding.stanford.edu/japanese/download.html にて、名前が既に使われているかどうか確認する事を推奨。 参加の確認としては、「オプション(△)」→「関連サイト」→「チーム処理統計量」と開き、 「Team 2ch」(上記URLのページ)が表示されればちゃんと参加できている。 ☆Folding@homeについて folding.stanford.edu/japanese/
695 名前:デフォルトの名無しさん [2007/03/23(金) 14:02:20 ] File#mkdirsが失敗した場合に その原因を取得する方法ってありますか?
696 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 14:23:47 ] >>695 無いよ。 SecurityManager が許可しない場合だけは例外もらうから分かるけど。 mkdir() する前に、作ろうとするディレクトリが既に存在しても失敗するし、 同名ファイルがあってディレクトリ作れなくても失敗するし、 ディレクトリの名前が不正な場合 名前が長すぎたり名前に使えない文字が含まれたり でも失敗するし、 ファイルシステム上の権限がなくてディレクトリを作れなくても失敗する。
697 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 14:28:48 ] >>696 そうなんすか…orz 一応isDirectory()で存在しない時だけ作るようにはしてるんですが 何で失敗したのかわからないとどうしようもない…
698 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 20:47:55 ] >>693 そもそもAPIは何使ってんだ?JAXP1.3以上? 名前空間のバインディングなんてアプリケーションによっては必要ないし バインドするプレフィックスの数によってデータ構造なり検索アルゴリズムの 最適な実装が変わるから汎用な物は作れないから実装を用意するのは無駄。 バインダくらい自分で書け。愚痴しか書いてないじゃないか?
699 名前:デフォルトの名無しさん [2007/03/23(金) 23:10:02 ] よろしくお願いします。完全に手詰まってしまいました。 環境- マシンA(開発機):Windows XP Pro、IIS6、WebLogic8.1、JavaSDK1.4.13 マシンB(評価機):Windows Server 2003、IIS6 マシンAで開発、デバッグしてOKなものをマシンBに置き換えています。 それぞれにサーブレットクラス1と固定値が書いてあるfinal staticメンバがいるクラス2があります。 マシンAとマシンBではクラス2のfinal staticメンバは違う値が書いてあります。 マシンAでリコンパイルしたクラス1をマシンBに置き換えます。 その後WebLogicを再起動後、マシンBを動かしてみると マシンBでクラス1が参照しているクラス2のfinal staticメンバ変数が マシンAの値となり、エラーが出てしまいます。 クラス2は置き換えていないのに、エラーになってしまいます。 どこかに値がキャッシュされてるとしか思えない動きなのですが、 APサーバを再起動しているのにそういうことがありうるのか、まったくわかりません。
700 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 23:16:48 ] キャッシュでハマることはまああるけどそのパターンならキャッシュ以前の話。 マシンA.クラス2をマシンBに"一度も"持っていったことがないはずなのに マシンA.クラス2の値を参照しているなんておかしい。 なんらかの形でいっしょに持っていってしまったとしか思えない。
701 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 23:16:54 ] 最適化されてクラス1にその定数の値が埋め込まれちゃってんじゃないの?
702 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 23:22:43 ] java.sun.com/docs/books/jls/third_edition/html/binaryComp.html#13.4.9 これじゃね?
703 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 01:13:54 ] 質問です。サーブレットとJAVAって違うの?
704 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 01:24:06 ] >>703 質問です。ゴキブリと害虫って違うの?
705 名前:681 mailto:sage [2007/03/24(土) 01:59:52 ] XPathについての自己フォローです。おそらく解決しました。 何が分からないのか自体をよく分からず調べていたのですが、まとめるとこう なります。 ・XPathの名前空間と接頭辞のバインディングの設定の、Javaでの標準的な方法 は何か? →完全には決まっていない。それを規定するNamespaceContextは、インター フェースだけしかなくて、実装がない。 ・なぜ決まっていないのか? →単にまだ出来ていないだけ。JAXPは現在1.3だが、1.5までには何とか。 ・じゃあ、どうしたらいいのか? →自分で非標準の実装を作るか、privateな内部クラスで使い捨てにするか、ま たは有志の作ったライブラリを利用するか。 ・こういう大事なことがXPath単体でできるようになっていないのはなぜか? →XPathはもともとXSLTのためのもので、XSLT自体がXMLだから、XSLT内に名前 空間宣言をそのまま書けば済んでしまう。 実はXPathを知ったの自体がつい一昨日で、うまく調べられず、ずいぶん無駄な 回り道をしてしまいました。結局、 norman.walsh.name/2006/03/28/jaxpNamespaceContext www-06.ibm.com/jp/developerworks/java/060906/j_x-javaxpathapi.shtml 初見では分からなかったのですが、これらにほぼすべてが書かれていました。 解決に当たって、このスレのやり取りも非常に参考になりました。ありがとう ございます。特に>>685 , >>698 さんには深く感謝します。
706 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 02:27:26 ] 質問者の見本みたいな人だ
707 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 02:33:26 ] >>681 以外の質問者のほとんどがクズに見えてきた
708 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 03:49:46 ] お前ら冷静になって良く見てみろ。箇条書きにしてるだけで結局は 仕様が定める範囲と実装がサポートする範囲と自分で実装しなきゃいけない部分を理解してないし そもそもどのコンテキストでXPathを使いたいのか一度も言ってないんだぞ? XSL内でロケーションを表すのに使うのかプログラム中に直接叩きたいのかすら分からず仕舞だぞ?何を教えろと? 事後報告は当然の事だ。 #XPointerの事もたまにで良いので思い出してあげて下さい。
709 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 10:37:35 ] できて当然のことでも褒めないと人は伸びない
710 名前:デフォルトの名無しさん [2007/03/24(土) 12:03:27 ] >709ごめんなさい…
711 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 12:13:29 ] |/ _., .,、._,r hh.、 y...u,_ 、 、.,., .yl!).彳}゙.^゙冖^^^゙゙'⌒゙゙「{ .〕:!|ァ_ l.r. .rl!.「.゙.′ .゙.^゙「.|^|'!.,.ri,、 _,.u:l 「″ _,..vv-─--v、、.,__゙ ´「 リ゙ .r .-i(┴^ ,.v‐ ′ i!、 厂^'ー、_ .'゙/ .,l| .,.‐'゙r '=, .|ト! .. /_ ┘ _, .[.′ .,r(,,vv!冖h厂 _,、、、,_ ¨゙() .゙゙il|リ冖ミ(ミ,.l|/レ' .|| _,yr!^″ [.zli》ニ《)ミ|l;, |ノ冖ーu「.,zzzzy,{丁′ .!ミ .yr(l「′ 〔″ `.,i^ .〔.!!干「「)v)《フ i| __,/′.} . \,,,,,_,,,,,,vr″ .゙)z ,メ゙'ly |゙/|レr》! } .}.. /,v--r ,、u_:rフ'¬ー^″ ゙ミ 》゙|′ .ミ .| .∨ ,、 {lzトrr┘ \从,,) }:! .《 }}.,rー ミ,,ェ , .'|フ .,,zu厶  ̄ ゙'^ l! ゙|从 》″ | r -:(工ェ」zミv_ n. 〔 .》ト .′ ∨ 7vv=(干=─干ミl||l,_,z ″ 》 .《l,_ .'|! .__ , . ゙̄.. 〕 《^¨′ .゙冖'^^'''冖 v\ } [ 、 . 〕 〔 .′ .」_ .ll′ .| | 」 ._} .hノ .:| ,.. .,.トト 〕 .} .^′ ゙《,_ .、,ノ ...厂、 .il } _ .、 .゙゙'〜 .y,_ _,r;|¨ <、、‐ . ノ .{, 〔 」 ´ ‐ 「ilリiアアァァァ;lllllli(リ゙} ┌ 冫.. .ア \ ∨゙ . _ .- . ' .`゙厂¨厂゙厂'. .゙ 、' .゙. ヽ‐,r| .ノy .´ 、 .: ' ..: .、 ' ` ' _ . .冫 -.',y;|^
712 名前:コン [2007/03/24(土) 13:30:20 ] jsp試したいのにトムキャットの設定がむずくてだめです。 エクリプスは動くし、しかしエクリプスでトムキャットはだめ、 どこかいいサイトあったら教えてください。
713 名前:デフォルトの名無しさん [2007/03/24(土) 14:25:14 ] >712 オレかよ(:D)| ̄|_ =3=3
714 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 14:30:17 ] NetBeans使えばバンドルされてるからそれ使えばいいと思う。 設定が難しいってのには?だが、まあやりたい事の主品はそこじゃないだろうしね
715 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 17:01:50 ] マウスカーソル消す方法ご存知ないですか? Cursorクラス見てもそれらしい設定がないです・・・:
716 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 17:53:52 ] >>715 カーソルを消したいComponentでjava.awt.Component#setCursor(Cursor cursor)を使え。 cursor = Toolkit.getDefaultToolkit().createCustomCursor(new BufferedImage(1, 1, BufferedImage.TYPE_INT_ARGB), new Point(), ""); 与えるImageについては別にこれでないといけないということはない。 Cursorクラスのドキュメントから全て辿れるぞ。もっとドキュメントの読み方を勉強汁。 Component#setCursorはクラス説明の関連項目から。 Toolkit#createCustomCursorはコンストラクタの説明から。
717 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 17:54:18 ] >>715 java.awt.Toolkit#createCustomCursor(Image, Point, String); に透明な Image 渡す
718 名前:デフォルトの名無しさん [2007/03/24(土) 18:31:05 ] 初歩的な質問で恐縮ですが、 <head>内に<link rel="stylesheet" type="text/css" href="css/style.css"> と入れるとjavaが動いてくれません。 色々手は尽くしてみたのですが・・ 原因はなんでしょうか? よろしくお願いします。 <link rel="stylesheet" type="text/css" href="css/style.css"> ↑の一行を外すと動作してくれます。
719 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 18:36:25 ] >>718 style.cssの中でアプレットを無効化してない?
720 名前:718 [2007/03/24(土) 18:44:59 ] >>719 さん 早速のご返答ありがとうございます。 今確認してみましたが、無効となるような設定はしていないようです・・
721 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 18:58:38 ] 実は動いているけど見えないだけとか。 APPLET { width: 0%; } こんなあからさまなのは無いと思うけど。 もう少しcssやhtmlの中身が分からないと何とも言えない。 linkタグやスタイルシートの有無でアプレットの動作が変わるなんて、どちらかというとweb製作板向きの話題かもしれんね。 少なくともその1行が無ければアプレット自身は動作しているわけだし。 もしくは、linkタグやcssの中身をアプレットで検知して動作を変えてるとか…はさすがに無いか。
722 名前:デフォルトの名無しさん [2007/03/24(土) 20:08:06 ] というかCSSファイルの内容の一部を削除していけば、どこが原因かわかるでしょ? ファイル名に/が入ってもいうんだっけ?
723 名前:715 mailto:sage [2007/03/24(土) 21:01:33 ] >>716 >>717 アドバイスありがとうございます。 無事消せました。
724 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 21:10:57 ] >>718 css晒せ
725 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 10:14:55 ] >>712 TOMCAT_HOME\bin\startup.bat だけで動くじゃん。ハマるぐらいならeclipse経由で起動する必要ない。
726 名前:じゃぎ [2007/03/25(日) 11:22:28 ] こんにちわ。 同一Webアプリケーション内の二つのサーブレット間で 同じ情報を共有したり、同じ情報を恒久的に持っていたりという意図に、 どちらかのサーブレットクラス内、あるいはその他、アクセス可能な クラス内のStaic変数を使ったりするのはいけないんでしょうか。 また、Static変数内のものがSerializableかどうかの有無にも関係 ないんでしょうか。 ここのページのリスト3のように ttp://www.atmarkit.co.jp/fjava/rensai2/jspservlet07/jspsevlet07_2.html application.setAttribute("counter",intCnt); として、applicationや、ServletContextのset(get)Attiributeを使う例を 良く見るんですが、モヤモヤしていて迷っています。。よろしくお願い致します。 過去ログでもうまくみつけられなかったんですが、もし関連したページが あるようでしたら、二言、三言キーワードのようなものを投げて頂ければ ありがたいですます。
727 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 11:34:40 ] public static int
728 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 11:39:47 ] そのServletクラスに属するべき情報かどうかで使いわけるべき。 「特定のServletクラスが持つ情報」ではなく、 あくまで「複数Servletクラス間で平等に共有するべき情報」なのであれば ServletContextを使うほうがいいだろうね。
729 名前:じゃぎ [2007/03/25(日) 11:50:02 ] 早速ありがとうございます。 ちょっと心配だったのは、Static変数にした場合、一時的には良くても、 ガベージコレクションなどが行われた際に、必ずしも値が保障されなく なったりするのかな。。とか思ったりしてましたが、心配しなくても良い ものなのでしょうか。 あつかましくて申し訳ありませんが、よろしければ、そのあたりのご教授 も頂ければ幸いに思います。
730 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 11:51:50 ] GCがstatic破壊するなら何を信じればいいんだろう
731 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 11:51:59 ] お願いします。例えば if (list != null && list.size() > 1) {...} でlistがnullの場合、以降の条件式は評価されないようなことに 名称はありますか? また、他の言語では違ったりしますか?
732 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 12:02:25 ] GCがクラスローダを回収したらstatic修飾子つきも回収されるけどな
733 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 12:08:09 ] >>731 >以降の条件式は評価されないようなこと 特に名称は無い。 が、言い方としては「評価が打ち切られる」などと言われることが多い。 >他の言語では違ったりしますか? C言語なども || や && に限ってはJavaと同じく左から評価される。 ただし、+-*/などの評価順はC言語では不定(決まっていない)。 右から評価されたり、ランダムに評価される実装の言語もあると思う。
734 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 12:08:40 ] >>731 ショートサーキット評価
735 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 12:11:48 ] >>734 ショートサーキット評価 の検索結果 約 988 件中 1 - 10 件目 (0.17 秒) 知名度は低いな。
736 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 12:13:19 ] そうじゃない言語があるとしたら わざわざif文を入れ子で書かないといけないのか。つらいな
737 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 12:19:26 ] >>736 VBとか、そうなんじゃなかったっけ
738 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 12:19:33 ] >>736 ヒント: ( )で括ればそれが先に評価される if (((a=1) || b=1) && c=1) foobar;
739 名前:731 mailto:sage [2007/03/25(日) 12:21:18 ] >>733 >>734 ありがとうございます。 昔勉強したときに名前が付いていた気がしていたのですが、 質問される立場になったときに、思い出せず、もやもやしてました。 やっとスッキリしました。
740 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 12:22:34 ] >>738 いやいや、カッコでくくってもc=1は評価されてしまうから >>731 の例だとぬるぽじゃん?
741 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 12:55:59 ] en.wikipedia.org/wiki/Short-circuit_evaluation 俺もショートサーキットという言い方で覚えていたので、 ぐぐったら少なかった(1000行かない)というのは意外。
742 名前:じゃぎ [2007/03/25(日) 13:52:34 ] >>730 >>732 ありがとうございます。setAttributeのほうが、特別推奨される理由が あるとすれば、ガベコレのようなところかなと、つたない頭で考えてました。 >>728 さんにも、スッキリさせて頂きまして、ありがとうございました。 これで安心してサーブレットいじれます。
743 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 14:09:49 ] ショートサーキット評価 988件 ショートサーキット演算子 618件 短絡評価 590,000件 短絡演算子 27,500件 訳したら増えたw
744 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 14:12:28 ] >>743 しむらー、ぶんかつぶんかつー
745 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 14:33:32 ] ""でくくったら激減。 "ショートサーキット評価" 224件 "ショートサーキット演算子" 213件 "短絡評価" 304件 "短絡演算子" 124件 こんなもんなのか。
746 名前:デフォルトの名無しさん [2007/03/25(日) 16:23:20 ] バイナリファイルを比較する簡単な方法はないでしょうか? ……まぁ、 (1)サイズを比較して違ってたら無条件でOUT (2)サイズが同じだったらストリームを二つ開いて、バイト単位で順次比較 とすればいいだけの話ですが、こんなの誰かが作ってるような気がしまして(汗)
747 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 16:25:18 ] MD5で比較
748 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 16:38:31 ] java.security.MessageDigest(のサブクラス)もありますな。
749 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 16:51:17 ] ダイジェスト作る時間があれば順次比較が終ってるだろw >>746 バイト単位の比較でもいいけど、int単位とかで、もっとまとめてやってもいいかもね
750 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 16:55:03 ] てきとーなブロック単位でダイジェスト比較していくと効率がいいかもな。
751 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 17:05:39 ] >>749 >>746 は簡単に実装できる方法を求めてるから速度は二の次なんじゃないかね? そういう意味でAPI使ってハッシュを求めさせるのはコーディングが簡単だし悪くない方法だと思う。 でも、コリジョンの可能性があるから、同一ハッシュ=同一バイナリとは言い切れないのが問題。
752 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 17:14:11 ] >>750 お前、馬鹿だろ。 >>751 ハッシュ求めるより順次比較のほうが簡単じゃないか?
753 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 17:23:44 ] あらかじめ MD5ハッシュが算出してあれば、それ比較してもいいけどね。
754 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 17:27:46 ] >>751 無駄な上に不確実で最悪な方法だと思うが。
755 名前:デフォルトの名無しさん [2007/03/25(日) 17:28:33 ] 質問主は誰かもう作ってるんじゃないか? っていう質問してるのにお前等ときたら…
756 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 17:41:56 ] ハッシュ算出してあるときの話じゃない。 ハッシュを算出するには算出する範囲のビットを全部見る必要がある。 それなら見た時点でお互いを比較すれば済む話。
757 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 17:50:16 ] >>755 commons IO の org.apache.commons.io.IOUtils.contentEquals(InputStream,InputStream)
758 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 17:57:35 ] これでいいじゃん。MessageDigestも使ってるし、みんなはっぴー。 標準APIじゃなくていいのならapache.commonsにあったと思うが。 public static void main(String[] args) throws Exception { File file1 = new File(args[0]); File file2 = new File(args[1]); boolean flag = true; if (file1.length() == file2.length()) { FileInputStream in1 = new FileInputStream(file1); FileInputStream in2 = new FileInputStream(file2); byte[] buf1 = new byte[1024]; byte[] buf2 = new byte[1024]; while (in1.read(buf1) >= 0) { in2.read(buf2); if (! MessageDigest.isEqual(buf1, buf2)) { flag = false; break; } } in1.close(); in2.close(); } else flag = false; System.out.println(flag); }
759 名前:758 mailto:sage [2007/03/25(日) 18:00:02 ] 書かれてたorz
760 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 18:02:56 ] >>758 一致しないときもストリームをcloseした方が綺麗
761 名前:758 mailto:sage [2007/03/25(日) 18:05:47 ] ん?閉じてると思うけど?まあ途中で例外出たらだめだけど。
762 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 18:11:49 ] >>761 すまんwhileの外だった }の数を見誤った でもそれはMessageDigestを使ってるといえるのかw
763 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 18:37:18 ] ハッシュ(MD5)は予めそれがわかっている場合やそれを保存しておいて 後から再利用するってことならまだ分るんだが、そんな前提もなしに ハッシュを勧める莫迦がなんでこんなにいるんだ?
764 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 22:06:41 ] Stringクラスの説明で 「文字列は定数です。この値を作成したあとに変更はできません。」 ってあるんですけど、 String str = new String("123456789"); str = "1"; こんなふうにあとから代入しても、コンパイルエラーも出ず、代入した文字列が表示されるんですけど 変更できないってどういう意味なんですかね?
765 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 22:14:57 ] >>764 "abcde"="12345" ってできないってことだ 1=3と同じ
766 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 22:19:50 ] >>764 それは、変数の参照先オブジェクトが入れ替わっただけ。 "123456789"で初期化したオブジェクトそのものの内容は変更できない。
767 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 22:54:13 ] >>764 str → "123456789" だったのが "123456789" str → "1" になるってこと。元のインスタンスは破壊されない(参照が無くなればガベコレはされるけど
768 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 23:15:47 ] HttpURLConnectionでHTMLソースをUTF-8でゲットしてくる際に 文字化けしてるかどうか判定する事ってできますか?
769 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 23:29:55 ] >>763 > ハッシュ(MD5)は予めそれがわかっている場合やそれを保存しておいて > 後から再利用するってこと だとしても分かっちゃだめだろ。ファイルが一致することの証左にはならん。
770 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 00:07:21 ] ネットでダウンロードするときに付属してることのあるハッシュコードは 飽くまでパリティチェック的な意味合いでしか使われてないと思う
771 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 01:31:26 ] >>768 httpのヘッダ見れば良いんじゃね?
772 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 01:47:51 ] Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version n umber in .class file at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$100(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source) 続行するには何かキーを押してください . . . 知り合いに聞いたところjavaとjavacのverをあわせれば良いといわれたんですが よくわからない・・誰かたのんます!
773 名前:764 mailto:sage [2007/03/26(月) 01:58:19 ] 回答ありがとうございます。理解できました。 String型の疑問がまだあるんですが、よければ回答お願いします。 メソッドに引数として参照型を与えて、その値を変更すると、int等の基本データ型とちがって 参照先の値が変更されますよね。 そこでメソッドの引数をString型にして、値を変更しても、参照変数が指しているオブジェクトは 変わらないんですが、これは値渡しみたいな事が行われてるんですかね? それともまだ何か勘違いしているんでしょうか static void method( String str ){ str = "java"; } main{ String str = new String("123456789"); method( str ); System.out.println( str );//123....が表示される } 説明下手だったらすいません。
774 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 02:08:03 ] JavaはCと同じくすべて値渡しだ。 参照型であろうとC++のような参照渡しはないので 変数の「指し先」が関数呼び出しで変化することはない。 当然「指し先の内容」が変化することはありえる。
775 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 09:35:53 ] カエレ!
776 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 09:42:26 ] >>774 ネタで言ってるんだよな?
777 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 09:59:07 ] Javaはすべて値渡し。これはもはや常識!
778 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 10:41:15 ] 参照を値渡しする、と言わないと分からない人は一生分かりませんよ。
779 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 10:47:12 ] 参照を値渡しするのとは違うだろ Javaはこの辺りが変
780 名前:デフォルトの名無しさん [2007/03/26(月) 10:53:44 ] コネクションプーリング使うにはネット使わないといけないのね。orz コネクションプールができなくて、3日も鬱になったジャマイカ。
781 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 11:12:57 ] じゃばでぱけっとのもにたりんぐはできますか?
782 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 11:28:53 ] >>779 どう違ってどう変なのか説明plz
783 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 11:34:34 ] C++の参照もあれはあれで参照を狭い意味で使ってるから、 あれしか知らないで参照を語られても困るよな。
784 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 12:05:48 ] >>773 > str = "java"; その例だと参照型の値を変更してるのではなくて、 参照先そのものを変更してる。 // 甲 static void method(Calendar c){ c.add(....); } // 乙 static void method(Calendar c){ c = Calendar.getInstance(); c.add(....); } 甲を呼び出した場合、呼び出し元の c は値が変更されてるが 乙を呼び出した場合、呼び出し元の c は値が変更されない。 乙内で参照される c は新たに別の Calendar オブジェクトを参照してるため、 呼び出し元の c に影響を与えないから。 あなたの例は乙に近い。 なお、String には Calendar の add に相当するような、内部の状態を変更するメソッドはない。 (あると不変オブジェクトではなくなってしまう。) replace も substring も、返り値として String を返す。 元の String を参照しても、replace、substring される前の値と全く変化ない。