1 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 05:58:30 ] プログラミング言語Javaに関する質問スレです。 JavaScript, Ajaxの質問は、ここでは受け付けていません。 Web製作管理 pc11.2ch.net/hp/ Webプログラミング pc11.2ch.net/php/ をご利用下さい。 よくある質問 ・「コマンドまたはファイル名が違います」 「'javac' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 「Exception in thread "main" java.lang.NoClassDefFoundError: 」 www.wikiroom.com/java/?path,classpath ・String に == は使うな。equals() を使え。 ・「\12288 は不正な文字です。」 文字リテラル以外で全角スペースは使えません。半角スペースに。 ・その他の質問→「APIのjavadoc見ろ」 前スレッド 【初心者】Java質問・相談スレッド130【歓迎】 pc12.2ch.net/test/read.cgi/tech/1249224435/ 次スレは>>990 あたりで。 過去ログ、関連スレッド、よくある質問とその回答など、 質問をする前に、貴方が見なければならないサイトについての情報は、 下のwikiのページにまとめてあります。 www.wikiroom.com/java/
218 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 18:45:17 ] instanceof の引数に raw typeを指定しろと Effective Javaに書いてあったのに、 Eclipse を Galileo にしたらワーニングが出てきて、 Eclipse側の設定ではraw typeのワーニング丸ごとを消すしかないっぽい? ググったけど、どうして敢えてEffective Javaに対抗するように変更したのか分からず。 どうすればいい?
219 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 18:58:39 ] >>218 コードを書かないと良くわからんが、 if (object instanceof List<?>) // 警告無し if (object instanceof List) // 警告 ってことか?
220 名前:218 mailto:sage [2009/08/19(水) 19:18:03 ] >>219 そう。分かりやすい説明ありがとう。
221 名前:219 mailto:sage [2009/08/19(水) 19:24:28 ] >>218 ちょいと調べてみたが「すべての状況においてraw type(原型)は使用すべきじゃない」というのが今の考え方みたいだね Effective Javaだとこのケースはノイズだからraw typeを使えと書いてあるけど、時代の流れで代わってきたのかもしれない。 使用すべきじゃないの根拠はJLSのこのあたり java.sun.com/docs/books/jls/third_edition/html/typesValues.html#4.8 -- It is possible that future versions of the Java programming language will disallow the use of raw types.
222 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 19:33:21 ] Eclipseの普及率を考えれば、出来る限りEclipseのデフォルトのコーディングスタイルに沿うのが良いと思う。 世界中の開発者からの莫大なフィードバックが反映されてるわけだし信頼もできる。
223 名前:デフォルトの名無しさん [2009/08/19(水) 21:07:52 ] >>217 jarファイルと同じディレクトリにiniファイルを おかなければない理由を。
224 名前:190 mailto:sage [2009/08/19(水) 21:17:43 ] >>223 そこ以外に適当な場所を思いつかないのです。
225 名前:190 mailto:sage [2009/08/19(水) 21:22:58 ] 言葉足らずなので jarファイルの場所というのは、 普通のフリーソフトだとexeファイルの場所といった感じです。 Cで作ったHogeというソフトを、C:\tool\Hogeに解凍した、 C:\tool\Hoge\Hoge.exeを実行したら、 C:\tool\Hoge\Hoge.iniが作成された。 こんなイメージです。 C:\tool\Hoge\Hoge.jarを実行したら、 C:\tool\Hoge\Hoge.iniを作成したいなと。
226 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 21:36:53 ] >>225 exewrapを使っているならjava.application.pathを見ればいいんじゃないの? jarならカレントディレクトリを取得して後ろを削ってやるとか。
227 名前:190 mailto:sage [2009/08/19(水) 21:42:08 ] >>226 exewrap依存のは使う気にならないなぁと カレントディレクトリは関連付け実行するとえらい事になったので、 BATファイルで>>214 な事をして無理やり解決… これも環境依存なんですけどね。
228 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 21:51:25 ] ホームディレクトリに置けばいいだろ
229 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 21:56:32 ] ホームディレクトリ?
230 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 21:56:35 ] exewrap依存のがnullならカレントディレクトリ、とか いろいろやりようはあると思う
231 名前:190 mailto:sage [2009/08/19(水) 22:02:36 ] >>228 >>230 アイディアありがとうございます。 exewrapで簡単にexe化できるのも体験できたので、java.application.pathを使って なければカレントもよさそうです。 ホームディレクトリも検討してみます。
232 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 22:36:39 ] exeって拡張子見るとドキっとする
233 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 22:38:38 ] どういう環境に身をおいているんだ
234 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 02:24:33 ] Java厨ってEclipseが無いと何もできないよね
235 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 03:06:42 ] 開発環境が無いのに開発しちゃってる風の子って B中しかしらない
236 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 06:56:28 ] まーたテキストエディタで開発してるJava仙人の登場か
237 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 08:09:45 ] Executors.newSingleThreadExecutor();をしたのはいいけど、 スレッドを終了させる前に、mainルーチン戻っちゃった どうやっったら、同期させる事ができるの?
238 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 08:57:15 ] >>237 なにを同期させておくのかはしらんけど、普通のタスクだったらFutureのgetでブロックしてりゃいいと思う。 Future<Object> f = service.submit(new Runnabele(){}}; f.get(); // blocking until end. System.out.println("End"); こんな感じ。 タスクがいっぱいあるならリストにつめてまわせばいい
239 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 09:00:13 ] OpenSSOってWebサーバーが分かれたら使えないの?
240 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 09:02:54 ] >>238 わかった、どうも
241 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 09:16:52 ] 完全に独立したWebアプリケーションでシングルサインオンを する方法ってあるんでしょうか? クライアント側(webブラウザ?)がログインユーザー情報を 持っていて別のアプリケーションにそれを渡せないと 不可能だと思うのですがこの認識はあっていますか?
242 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 09:22:23 ] シングルサインオンて排他的なサインオンて感じの意味合いかな インスタンス作るのを制限すれば良いんじゃないの?
243 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 09:33:55 ] クッキーはドメインが同じならホストが違っても渡せるのかー そうするとクッキーにログイン情報を書いておけば 同一ドメイン上ではシングルサインオンが実現できますね。 なんだOpenSSOなんていらないじゃん
244 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 12:24:27 ] catch (InterruptedException e) {} このようなコードをよく見ます どうして、例外を捕まえるだけで処理しないのですか?
245 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 12:32:40 ] 何もしたくないからでしょ
246 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 12:34:39 ] >>244 それ書いた人に↓の記事でも読ませてあげるといいよ www.ibm.com/developerworks/jp/java/library/j-jtp05236/index.html
247 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 12:45:22 ] >>244 InterruptedExceptionは握り潰しちゃだめだからまねするなよ。
248 名前:デフォルトの名無しさん [2009/08/20(木) 15:31:37 ] なにがジェネリックだ! xxx(List<クラス> list); と xxx(List<別のクラス> list); を同じシグニチャのメソッドだと思いやがって! ゴメソ、どこでJavaのぐちを言うかわからなかったもので。
249 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 15:53:03 ] >>248 <クラス>と<別のクラス>に継承関係にあるとかって落ちですか?
250 名前:デフォルトの名無しさん [2009/08/20(木) 16:38:48 ] ttp://www.ndr114.com/appli/az-watch/ javaの限界
251 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 17:08:00 ] >>248 xxxクラス(List<クラス> list) xxx別のクラス(List<別のクラス> list) 色々詰め込み杉なだけ、というオチもあるが。
252 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 17:42:48 ] 入門書で、キーボードから入力するときに、BufferedReaderを使ってる本とScannerを使ってる本があるんですけど、 Scannerのほうが新しいということでしょうか?
253 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 18:02:59 ] >>252 その方法では入門書の古さを比較できない。 本の後ろの方にある、発行年を比較した方がいい。
254 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 18:24:10 ] >>253 ピントずれまくりだろう。もう書き込みするなよ
255 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 19:42:13 ] 文字列の中からURLを抽出して、<a href = URL>URL</a>に置換しようと考えています しかし、URLは文字列の中に0〜10個くらいあります 速度的な事を考えてStringではなく、StringBuilderでやろうかな〜と考えましたがとても面倒くさいです 楽にURLにアンカーをつけられる方法を知っていたら教えてください
256 名前:190 [2009/08/20(木) 19:54:41 ] フォーマット使ったらどうかに String.format("<a href = %s>%s</a>", url, url); こんな感じでできた気がするが、詳しくは自分で調べてやってちょ
257 名前:190 mailto:sage [2009/08/20(木) 19:56:13 ] 名前消してないわ、sagaってないわ、どうかにとかやってちょとかなんて恥ずかしい
258 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 20:38:27 ] >>256 なるほど、トンクス
259 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 20:39:19 ] String#replaceAll()じゃだめなん?
260 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 20:44:46 ] Java厨ってEclipse無いと何も出来ないよな
261 名前:255 mailto:sage [2009/08/20(木) 20:58:12 ] >>259 1つの文字列に最大10個しかURLがないけど 500回位ループしたいと思うからStringじゃ遅くないかな〜と思って stringをそのまま使うのを諦めた
262 名前:デフォルトの名無しさん [2009/08/20(木) 21:22:35 ] パス設定といえば助けてほしい事が。
263 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 21:31:03 ] この流れ最近どこかでみたな
264 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 21:32:05 ] >>261 比べればんでね?
265 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 21:51:06 ] >>256 String.format("<a href=\"%1$s\">%1$s</a>", url); とか言う方法もある
266 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 22:19:41 ] すみません。質問です。 IIS6.0 + Tomcat5.5 を利用して自作のサーブレットを動かしているのですが、 ★まず、以下の設定でうまく動いてくれる状態にあります。 ================================================================================================= (1-1)$TOMCAT_HOME/webapps/myApp 以下に動かしたいものを置く (Tomcat の appBase は webapps のまま) (1-2)$TOMCAT_HOME/webapps/myApp/META-INF/context.xml には以下の様に記述 (※自動生成可ですが後の変更のため) <Context path="/myApp" docBase="myApp"/> (1-3)$TOMCAT_HOME/conf/uriworkermap.properties に以下の行を追加 /myapp/*=ajp13 → IIS を通じて、example.com/myApp/some_end_point にリクエスト可能(期待通り) =================================================================================================
267 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 22:20:48 ] しかし、ここで、事情からパスを /myApp/sub にする必要が発生しました。 このため、以下のように変更しました。 ================================================================================================= (2-1) 上述 (1-2) の中身を以下の様に変更しました。 <Context path="/myApp/sub" docBase="myApp"/> (2-2) 続けて、(1-3) も以下のように変更しました。 /myapp/sub/*=ajp13 ================================================================================================= ここで詰まってしまいました。 この状態で example.com/myApp/sub/some_end_point アクセスしても、何も返ってきてくれません。 404 ではなく、IIS が 400 を吐いているようです。 なお、試しに、この状態で myApp に Servlet リスナを仕込んで適当な文字列を contextInitialized で吐かせてみると、起動時に文字列が流れていました。なので、私は、Tomcat からサーブレットは認識 できているのではないかと考えていますが... uriworkermap.properties の設定がまずいのでしょうか? Tomcat ではなく IIS が返すことから、 そうかと思うのですが、/myapp/*=ajp13 ではダメでした。
268 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 22:22:20 ] ああ、(2-2) で my'a'pp になっていますが、myApp の記述ミスです。 実際には合っています。すみません。
269 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 22:24:59 ] >>256 固定埋め込みなんだから力技で void editHREF(StringBuilder sb, URL url) { String urlstr = url.toString(); sb.append("<a href=\""); sb.append(urlstr); sb.append("\">"); sb.append(urlstr); sb.append("</a>"); } と書式解析時間をパスするのはどうだろう。
270 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 22:25:26 ] example.com/myApp/some_end_point ここにアクセスしたらどうなる?
271 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 22:26:35 ] KAVA
272 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 22:28:08 ] iis側のロケーション変えたの?
273 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 22:29:55 ] >>266 docBaseがそのままだからじゃないの?
274 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 22:37:21 ] >>267 path="/myApp" が xxxx/myApp を示し、docBase="myApp" が $TOMCAT_HOME/webapps/myApp を示していたきがす・・・ <Context path="/myApp/sub" docBase="myApp"/> だと、xxxx/myApp/sub になって置き場所変わらず。にならない?
275 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 22:43:44 ] そういえばネットワーク over なアプリケーションの適切なネットワーク量の設計ってどうやるんだ? サービス提供のQoEとネットワーク帯域(とかネットワークのRTTとジッター)が強く関連付けられているとき, 調整ってどうやるの? 具体的には「クリック一回で100万枚の画像をインターネットからロードします.ロードし終えるまでユーザはまたされます.」ってサービスは 「10枚だけ特選の画像を見たい」ユーザにとってはQoEが非常に悪くて, 「1000万枚の画像をダウンロードしたい」ユーザにとってもQoEが非常に悪い. ユーザの要求とサービス品質とネットワーク状況を数式にして管理してるの?どうなの?
276 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 22:47:37 ] そんなもんユーザの要求がどこなのか、要求仕様定義の段階ではっきりしな きゃ決められるわけないだろ。
277 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 22:50:46 ] >>275 銭をかければ何でも出来る。銭を出せ。
278 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 23:02:01 ] えっ じゃあIPネットワークもユーザの要求がどこなのか,要求定義書を見ればわかる・・・の?
279 名前:デフォルトの名無しさん [2009/08/20(木) 23:16:40 BE:1530455647-2BP(0)] ファイル配置が以下の状態のとき、 A.classからsettings.xmlを読み込むにはどうすればよいのでしょうか? ちなみにLocalDirectoryの絶対パスは不明です。 LocalDirectory { application.jar { package1 { A.class } } settings.xml }
280 名前:デフォルトの名無しさん [2009/08/20(木) 23:18:01 BE:1147842037-2BP(0)] zureta..こうです。 LocalDirectory { application.jar { package1 { A.class } } settings.xml }
281 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 23:27:04 ] 絶対的な方法はない
282 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 23:29:52 ] >>255 やりたい事ってこういう事か? final Pattern p = Pattern.compile("[\\p{Alnum}:/?#\\[\\]@!$& '()*+,;=-\\\\._~]+"); String hoge(String str) { StringBuffer sb = new StringBuffer(); Matcher m = p.matcher(str); while(m.find()) { m.appendReplacement(sb, String.format("<a href=\"%1$s\">%1$s</a>", m.group())); } m.appendTail(sb); return sb.toString(); }
283 名前:190 mailto:sage [2009/08/20(木) 23:41:32 ] >>280 jar ファイルの場所を見つける方法 でググると自分が参考にしたソースが出てきます。 これを使えばアクセスできるんじゃないかと。
284 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 23:45:41 ] >>282 String replaced = str.replaceAll("([\\p{Alnum}:/?#\\[\\]@!$& '()*+,;=-\\\\._~]+)", "<a href=\"$1\">$1</a>"); なんか、こんな感じで楽しめました。
285 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 23:47:44 ] >>284 282だけど、書き込んだ後に%が抜けてることに気が付いたんだw
286 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 23:49:15 ] >>278 当たり前だ。
287 名前:280 mailto:sage [2009/08/21(金) 00:05:51 BE:4427387699-2BP(0)] >>283 ありがとうございます。class.getResource()でいけるんですね。
288 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 00:12:51 ] jarならjar!あたりで見つけられるけど fileだとそうでもなかったよーな
289 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 00:15:21 ] file!