- 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あたりで。
- 596 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 09:22:24 ]
- >>595
\bとはマニアックな・・・。 けどこうしてみるとifもないしスマートに見えるな。 機会があれば使ってみよう。
- 597 名前:デフォルトの名無しさん [2007/03/19(月) 14:01:53 ]
- 開発はユニクソ?リヌクス?の方が多い?
- 598 名前:572 mailto:sage [2007/03/19(月) 15:25:20 ]
- >>588
フォロー、ありがとうございます。これでinit.dの下で管理できそうですね。 大変参考になりました。重ねて御礼申し上げます。
- 599 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 21:11:24 ]
- 新人教育でJavaを教えることになりました
知らないやつを基準に変数からクラス、オブジェクトまで教えるのですが これだとすでにJavaやプログラミングを知っている人が退屈してしまうので そいつらむけの適当な自習課題を用意しようと思います。 (簡単なゲームとかメモ帳作成とか) 参考になりそうなページはないですか?
- 600 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 21:40:06 ]
- お前が作れよ
- 601 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 22:01:06 ]
- ゲームとかメモ帳ってGUI方面だろ。
Webアプリ作らせたほうが実用的かと。
- 602 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 22:24:57 ]
- Java知ってるやつにはDB使ったアプリを教えろ
- 603 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 22:29:40 ]
- >>601
知らないやつ基準ということなのでそういう人が大多数という前提だと、 新人研修の自習でWebアプリ作るほどの力があるならそのまま現場投入で たたき上げた方がよほど本人及び会社の為ではないかと
- 604 名前:603 mailto:sage [2007/03/19(月) 22:50:47 ]
- あ、現場投入云々はあくまで技術者として、ね。
社会人としてどうとかはまた別の話。
- 605 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 22:59:07 ]
- >>599
java.cs.vt.edu/dev/javasound/api/javax/media/sound/sampled/package-tree.html の javax.media.sound.sampled 使った何か
- 606 名前:1/2 mailto:sage [2007/03/20(火) 00:17:04 ]
- import java.awt.*;
import java.awt.event.*; class Awt10{ Frame frame; Button button; TextField text; public Awt10(){ frame = new Frame( "フレーム" ); button = new Button( "クリックするとダイアログ表示" ); text = new TextField(); button.addActionListener( new ActionListener() { public void actionPeformed(ActionEvent e){ new Dialog01( frame ); } } ); frame.add( button, BorderLayout.NORTH ); frame.add( text, BorderLayout.SOUTH ); frame.pack(); frame.setVisible( true ); } public static void main( String[] args ){ Awt10 awt10 = new Awt10(); } }
- 607 名前:1/2 mailto:sage [2007/03/20(火) 00:21:12 ]
- class Dialog01{
Dialog dialog; public Dialog01( Frame frame ){ dialog = new Dialog( frame, "ダイアログ", true ); Label label = new Label( "ラベル" ); dialog.add( label ); dialog.pack(); dialog.setVisible( true ); } } これでコンパイルすると、 Awt10.java:15: <anonymous Awt10$1> は abstract でなく、java.awt.event.ActionList ener 内の abstract メソッド actionPerformed(java.awt.event.ActionEvent) をオーバ ーライドしません。 public void actionPeformed(ActionEvent e){ こういうエラーが出てきてしまいます。 javaの入門本のコードそのまま打ち込んでいるんですが、どうしたらいいんですか?
- 608 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 00:26:22 ]
- > actionPeformed
performed?
- 609 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 00:36:55 ]
- >>607
>class Awt10{ これ本当?コピペ間違ってない? このソースであのエラーが出るとは思えんが…
- 610 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 00:40:10 ]
- うわーありがとうございました。
performedのスペルが間違ってました。恥ずかしい。 >>609さん コピペは間違いはないと思います。。。 こういうエラー見たことなかったのでスペルちゃんと見てませんでした
- 611 名前:609 mailto:sage [2007/03/20(火) 00:49:21 ]
- すまん。勘違いだった(汗)
普段の自分のコーディングスタイルと違うので(と言い訳してみる)
- 612 名前:デフォルトの名無しさん [2007/03/20(火) 10:26:06 ]
- *=ってどういう意味?
- 613 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 10:27:42 ]
- a = a * b; と a *= b; が同じ
- 614 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 10:38:18 ]
- さんくす。
- 615 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 11:38:00 ]
- a *= bってスタックに積む数が少ないから実行速度a = a * bより早いのかな?
- 616 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 11:44:40 ]
- >>615
> スタックに積む数が少ない そもそも、この違いがない、はず。
- 617 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 12:44:50 ]
- 単なる表記法の違いだよね…?
- 618 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 13:04:47 ]
- a #= b と a = a # b の違いは、aが評価される回数。
x[func()] += y; と x[func()] = x[func()] + y; だとfunc()の性能によっては大きな速度差が出ることがあるし、 func()が副作用を持つ場合は動き自体が違う可能性もある。
- 619 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 13:18:13 ]
- a, b をメタ変数と考えるなw
- 620 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 14:37:53 ]
- 完全なインタープリタならいざ知らず、バイトコードまではコンパイルしてるのだから
式の評価順の解析(スタックや逆ポーランドといった)はコンパイル時におわってる。 より短くコードを書くことを良しとしていたCの文法を受け継いでるだけだ。
- 621 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 16:16:30 ]
- >>620
要するにコンパイラが勝手に最適化するから気にするなでおk?
- 622 名前:デフォルトの名無しさん [2007/03/20(火) 19:12:20 ]
- WebappClassLoaderをサーブレット側から手動で動かすにはどうしたらいいですか?
- 623 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 20:48:28 ]
- eclipseでワークスペース使ってコンソールから窓を開いて3DCGを表示するアプリ作ったのですが
それをアプレットに落とし込むにはどうしたらいいでしょか。 やり方教えて下しア
- 624 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 20:52:01 ]
- C/C++ だと _ で始まる名前や場所を問わず __ を含む名前はシステムで予約されてるけど、Javaではどうなん?
- 625 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 21:09:19 ]
- _については制限なし。
$も使えるが、機械生成されたものなど、用途を制限されている。 ただし、「それが望ましい」程度の縛り。
- 626 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 21:09:25 ]
- >>624
Character#isJavaIdentifierStart も Character#isJavaIdentifierPart も true を返すから '_' 自体は使える。 _ で始まる名前とか __ で始まる名前とかで、予約はされてないはず。 コーディング規約で使わないのを推奨してたか、は忘れた。
- 627 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 21:16:04 ]
- >>625-626
サンクス。自分でそんな名前を進んで使うつもりはないけど、 いま弄ってるソースでバンバンそんな名前が使われてたから気になってた。
- 628 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 21:41:28 ]
- >>617
どこにレスを付けるのか迷ったけど、ここにレス付けるわ。 例A short x = 0; int i = 123456; x += i; // エラーなし x = x+ i; // エラー 精度が落ちている可能性 例B Object o = "Hoge"; String s = "Test"; o = o + s;// エラーなし o += s; // エラー 互換性のない型 元ネタ 書籍「Java Puzzlers」
- 629 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 22:06:08 ]
- >x += i; // エラーなし
なんで?
- 630 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 22:18:46 ]
- JLS15.26.2を読んでみた。
前者は、複合代入演算 E1 op= E2 の意味するところは E1 = E1 op E2 ではなく、 E1 = (T)(E1 op E2) // TはE1の型 すなわち、複合代入演算子は暗黙のうちに代入される側の方へのキャストを 行うというのがポイント。 後者は、複合代入演算子が使えるのはプリミティブ型/そのラッパー型、そして +=については左辺がStringの場合のみ、文字列連結が行われる。 (右辺はどんな型でもよい)
- 631 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 22:22:58 ]
- >>629
例えば byte b = 0; b += 2; // 2 は int型 とかがコンパイルエラーになったらウザいでしょ。
- 632 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 23:34:47 ]
- JPanelにCanvasをはりつけてCanvasにイメージを描画しようと思ってます。
JPanel内に↓のようなMyCanvasクラスを定義してpaint()を実装しました。 private class MyCanvas extends Canvas { public void paint(Graphics g) { g.drawImage(resultImage, 0, 0, null); // resultImageはJPanelのインスタンス変数 } } JPanelでresultImageが変更されたときにmyCanvas.repaint()を呼んでいるのですが Canvasのイメージが更新されません(一度、最小化して戻すと表示されてます) 再描画がうまくいってないようなのですがどのようにすればよいでしょうか。
- 633 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 23:39:03 ]
- - MyCanvasはCanvas(AWTコンポネント)を継承せず、代わりにJPanelを継承
- paintではなくpaintComponentをオーバーライド でどうか?
- 634 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 23:51:18 ]
- アドバイスありがとうございます。
ただそれでもだめでした。 paintComponent()でSystem.out.println()やるとちゃんと表示されてるのでrepaint()で メソッドは呼び出されてはいるようです。 ただはりつけたJPanelに表示はされません・・・ もとのパネル(MainPanel)では setLayout(new BorderLayout()); imagePanel= new MyPanel(); add(imageCanvas, BorderLayout.CENTER); ではりつけてます。
- 635 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 23:52:10 ]
- add(imagePanel, BorderLayout.CENTER)
の間違いでした
- 636 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 23:58:52 ]
- 自己レスです
はりつけたMyPanelのpaintComponent()にsuper.repaint()を入れたらすぐ再描画されました。 貼り付け元のJPanelも再描画する必要があるってことでしょうか・・・
- 637 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 00:02:58 ]
- 関係ないかもしれないけど、
paintComponentでsuper.paintComponentは呼んでる?
- 638 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 00:19:55 ]
- 呼んでます・・・
JFrameの上にJPanelを貼り付けた場合は、paintComponent()ですぐ再描画されてたんですが、今度はJPanelの上にJPanelを貼り付けたからかと疑ってるんですが、関係ないかな。
- 639 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 00:25:58 ]
- 超初心者です。
本を見ると 「swingはAWTと異なり、コンテンペインを取得し、そこにコンテンツを配置する。」 というように書いております。 で、そのとおりgetContentPane()してaddしたらもちろん上手くいきました。 流れとしてはこんな感じで。→new JFrame().getContentPane().add(new JPanel()); その後もしかしてと思って、 new JFrame.add(new JPanel()) ってやっても普通にうまくいきました。 コンテンツペインを取得する必要ってあるんでしょうか?
- 640 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 00:35:17 ]
- >>638
自己レスですが g.drawImage(resultImage, 0, 0, this); で解決したようです。null->thisにしました。
- 641 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 00:37:44 ]
- >>639
最近のJFrameでは不要。必要に応じて内部でgetContentPane()した先に 要求をたらい回ししてくれる。
- 642 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 00:41:07 ]
- java.sun.com/j2se/1.5.0/ja/docs/ja/guide/swing/1.5/index.html#swingMajor
bugs.sun.com/bugdatabase/view_bug.do?bug_id=4753342 だな。
- 643 名前:639 mailto:sage [2007/03/21(水) 00:48:04 ]
- おお、、ありがとうございます。
getContentPane()は面倒だけどswingの構造を理解するのに役立ってたので ちょっと複雑な気分です。
- 644 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 13:28:38 ]
- jarファイルからカレントディレクトリにある任意のJDBCドライバを読み込ませるようにしたいのですが、
MANIFESTのクラスパスには何と記述すればよいのでしょうか? .や*.jarでは認識しませんでした。 直接名前指定 or jre/lib/extにドライバを格納するしかないのでしょうか?
- 645 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 13:39:51 ]
- 記述部さらしてみ
- 646 名前:644 mailto:sage [2007/03/21(水) 13:49:58 ]
- Manifest-Version: 1.0
省略 Class-Path: *.jar xxxx.jar xxxx.jar Manifest-Version: 1.0 省略 Class-Path: . xxxx.jar xxxx.jar という感じです。記述の仕方に問題ありますか?
- 647 名前:ひょこたんだお(^ω^ ◆E9k1wjKgHI mailto:age [2007/03/21(水) 16:21:36 ]
- ごめんなすm(^ω^#)m
static Class forName(String className) の使い方がわかんなひ(;ω;)おっおっお 簡単なソースをいくつかキボンヌッ (#^ω^)ノたのんだうお
- 648 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 16:43:35 ]
- >>644
必要なものを明示的に指定するという観点から、 ワイルドカードは使えないんじゃないのかねぇ。 java.sun.com/javase/ja/6/docs/ja/technotes/guides/jar/jar.html#Main%20Attributes 使えるとは書いてない。使えないとも書いてない。
- 649 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 03:33:29 ]
- >>647
ここの ttp://blog.goo.ne.jp/akubi_2005/m/200601 Mainクラスがいっぱいの時 にソースがあった。
- 650 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 10:34:01 ]
- 独学で苦戦している超初心者です。
自分でもいろいろ調べてみたのですが、困り果てて皆さんのお力に頼ることになりました。 今、コマンドラインに数字を一行で 10,24,35,40 のような形で入力させてそれぞれの数字を表示させるものを作っているのですが、コンパイルをして実行までは出来るのですが、数字を入力したあとにエラーが出ます。 エラーメッセージをググってみたのですが、検索には引っかかるものの「これだ!」というものが見つからなかったのでココに質問させていただきました。 以下にコードの一部とエラーメッセージを記載します。 public static void main(String[] args) throws IOException { int input[]; System.out.println("数列はカンマ区切りの文字列で入力してください。"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); String numbers[] = str.split(","); int i=0; input = new int[i]; while(i < numbers.length){ input[i] = Integer.parseInt(numbers[i]); System.out.println(i + "つめは" + input[i]+ "です。"); i++; } } 以下エラーです。 java.lang.ArrayIndexOutOfBoundsException: 0 at Test.main(Test.java:28) Exception in thread "main" *ココでいう28というのがコードの28行目であれば input[i] = Integer.parseInt(numbers[i]);が28行目にあたります。 どなたか、お助けください。
- 651 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 10:39:17 ]
- > int i=0;
> input = new int[i]; だれが見てもここだ
- 652 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 10:40:31 ]
- >650
右辺の numbers[i] ではなく、恐らく input[i] から出ている例外かと。 int i=0; input = new int[i]; この時点で input[] の要素数はゼロになっているが それ以降 input[] の要素数を増やしていない以上 input[] の要素数はゼロのままだ。 input = new int[i]; を input = new int[numbers.length]; にしてみたら?
- 653 名前:650 mailto:sage [2007/03/22(木) 11:07:57 ]
- >>652
どうもありがとうございます!解決しました! 答えだけでなく、どこがどのように間違っているかまで答えていただいて 大変勉強になりました。
- 654 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 13:47:44 ]
- これってどうよ?
ja.wikibooks.org/wiki/Java
- 655 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 14:13:36 ]
- >>654
個人的には、「Javaをはじめよう」以下は要らないような気もする。 char が -32768〜32767になってたり、 「リファレンス型というのは、クラスのことです」とか、間違いもちらほらあるし。 文法とかは、JLS へのリンク貼って終わりで良いとか、 入門者用のコンパイル手順を示すんなら、テキストでやるより flash movie とかでやった方が親切なんじゃないか、と思ったり思わなかったり。 wikibook に flash 置けるのか知らんけど。
- 656 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 15:35:54 ]
- >>514
おやおや? Java家電時代の到来か? 将来は、Javaで家電制御を企んでいるのかねー? Jiniかねー?
- 657 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 17:43:49 ]
- まずはおいしいご飯からお願いします
- 658 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 17:45:39 ]
- すみませんが、質問です。
HttpServlet のソースコードは、どのソフトに含まれているのでしょうか? たぶんTomcatにあるのだろうと思っていたのですが、うまく見つけられません。 利用中のTomcat は4.1です。
- 659 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 17:59:27 ]
- 質問です。
HTTP Get のクエリ文字列から、パラメータ名とその値の組み合わせの集合を取 得するには、どうしたらいいでしょう?
- 660 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 18:18:15 ]
- >>658
classならcommon/lib/servlet-api.jarの中。ソースは入ってないよ。
- 661 名前:658 mailto:sage [2007/03/22(木) 18:37:21 ]
- >>660
> classならcommon/lib/servlet-api.jarの中。ソースは入ってないよ。 ありがとうございます。ソースはどこで手に入るのでしょうか? オープンソースですから、どこかで配布はしているはずなのですが。 実は>>659も私なのですが、以下の処理の参考にしたかったのです。 目的:URL文字列からクエリパラメータを手動で取り出す URL文字列を与えられて、 String url = "www.youtube.com/watch?v=pd74BKx0x-w"; ここからクエリ文字列を取り出し、 String qstring = new URL(url).getQuery(); //qstring = "v=pd74BKx0x-w" ここまではできるのですが、それをパラメータと値に分解する方法が分かりません。 正規表現などで愚直に分けるしかないのでしょうか? 何か既存のAPIがあるのではないかと思うのですが。
- 662 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 18:50:24 ]
- >何か既存のAPIがあるのではないかと思うのですが。
request.getParameter( "v" )で一発だ。 ソースではなくAPIドキュメントを利用するのがJavaでは普通。 sdc.sun.co.jp/java/docs/j2ee/sdk_1.3/ja/techdocs/api/javax/servlet/ServletRequest.html sdc.sun.co.jp/java/docs/j2ee/sdk_1.3/ja/techdocs/api/javax/servlet/http/HttpServletRequest.html
- 663 名前:658 mailto:sage [2007/03/22(木) 19:06:03 ]
- >>662
ありがとうございます。 HttpServletRequestは与えられていなくて、ただURL文字列だけがあるのです。 だから「手動で」取り出す必要があります。 説明不足ですみません。
- 664 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 19:16:22 ]
- >>663
ほいっwww.google.com/codesearch ?hl=ja&q=show:WeBMAMCdhTg:T67KRquB4ao:axPaDrtTH9s&sa=N &ct=rd&cs_p=download.nextag.com/apache/ tomcat/tomcat-5/v5.5.17/src/apache-tomcat-5.5.17-src.tar.gz &cs_f=apache-tomcat-5.5.17-src/container/catalina/src/share/ org/apache/catalina/core/ApplicationHttpRequest.java このvoid parseParameters()あたりから辿ってけばいんじゃね?
- 665 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 19:17:47 ]
- ソース tarballには入ってないの?
svnならsvn.apache.org/repos/asf/tomcat/tc6.0.x/trunk/ 中は見てない。
- 666 名前:658 mailto:sage [2007/03/22(木) 20:20:55 ]
- >>664
ありがとうございます。どうやら↓のparseParameters()のようです。 これはどのjarファイルにあるのかなあ。 どうも探し方が分かりません。 src.opensolaris.org/source/xref/sfw/usr/src/cmd/tomcat/ apache-tomcat-5.5.17-src/container/catalina/src/share/org/apache/ catalina/util/RequestUtil.java >>665 > ソース tarballには入ってないの? 実装クラスは入っていますが、HttpServletRequest自体のソースは無いようです。
- 667 名前:デフォルトの名無しさん [2007/03/22(木) 20:26:32 ]
- 質問です。
server.xmlの<context>のreloadable属性が falseかtrueかの情報を クラスから取得する方法はありますか?
- 668 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 20:26:38 ]
- javax.servlet.http.HttpServletRequestはinterfaceだから、
ソース見ても実装情報はないよ。
- 669 名前:658 mailto:sage [2007/03/22(木) 20:36:56 ]
- >>668
> ソース見ても実装情報はないよ。 それはそうなのですが、ソースが無いと、Eclipseで追いづらいと思います。 なお、RequestUtil.class は catalina.jar に含まれていました。 publicクラスですが、一般ユーザが利用することが適切なのか、よく分かりません。 ところで、どのクラスがどのjarに含まれるのかを簡便に知るにはどうしたらい いでしょう? ・1つ1つJarコマンドで表示 ・拡張子をzipに変えて検索 ・片端からEclipseのプロジェクトに組み込んでみる これらよりもっといい方法はあるでしょうか?
- 670 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 20:45:49 ]
- >>669
Eclipseで追うだけなら、jadclipseを入れておくとソースがないものは jadで逆コンパイルしたものを表示してくれたりする。 jar探しは、コマンドラインに苦痛を感じないヒトなので、 jar tfで探すかなー。Eclipseに組み込むのはいい方法だと思います。
- 671 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 21:42:42 ]
- String url = "foo.bar.com/hoge.cgi?a=b&x=y&foo=bar";
String[] params = url.substring(url.lastIndexOf('?')+1).split("[&=]"); これで{"a","b","x","y","foo","bar"}っていう配列ができる。 後は、配列の偶数と奇数で分けて適当に処理すればいけるだろ。
- 672 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 21:53:10 ]
- >>671
フラグメントがあったら最後の要素が "bar#hoge" みたいにならんか?
- 673 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 22:06:09 ]
- >>672
なるほど。じゃあこれでどだ。無理矢理1行。 String[] params = url.substring(url.lastIndexOf('?')+1, url.indexOf('#') > 0 ? url.indexOf('#') : url.length()).split("[&=]");
- 674 名前:658 mailto:sage [2007/03/22(木) 22:50:29 ]
- >>670
ありがとうございます。参考になります。 できたら配布元のサイトでドキュメント化してくれていたら楽なのですが。 >>671-673 標準のAPIには存在しないらしいので、自分もそれなりに書いてみました。 String url = "www.youtube.com/watch?v=pd74BKx0x-w"; String q = new URL(url).getQuery(); Map<String, String> map = new HashMap<String, String>(); for (String pv : q.split("&")) { String[] p = pv.split("="); map.put(p[0], p[1]); }
- 675 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 22:53:43 ]
- a=&x=yみたいに値がないパラメタがあったらうまくいかない気がする。
- 676 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 22:55:13 ]
- 675は>>673ね。
>>674 たいていはそれでいいけど同じキーの値が複数あったらうまくいかないので注意。
- 677 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 22:58:46 ]
- パラメータ間の区切りに最近は;も使うので、汎用性から言ったらこれも認識する
とよい。 >>675のケースを回避するために、まず &(および; )だけで区切り、そののち=で 分解するといいだろう。 >>676を考慮するならmapの値側をコレクションクラスにする必要がある。
- 678 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 23:26:33 ]
- 書式指定子について教えてください。
ある本で↓みたいなのがでてきたんですが、%が多くて何やってんのかよくわかりません。 System.out.printf(String.format("%%2d | %%%dd\n", n), r, x); %dで10進数に変換。2は2桁の長さを表す。ということはわかったのですが、 引数に対して書式指定子がやたら多いような気が・・・ メソッドが入り子になってるからややこしいんでしょうか? そもそもformat()の第2引数 n は何に変換されるんでしょう?
- 679 名前:658 mailto:sage [2007/03/22(木) 23:27:54 ]
- >>675氏のケースに対応
String[] p = pv.split("="); ↓ String[] p = pv.split("=", 2); 自分の用途には>>676氏のケースはなさそうなので、これで何とかなりそうです。 ありがとうございました。
- 680 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 23:35:52 ]
- %%が%そのものになるというのは理解してる?
順番に書くと、 String format = String.format("%%2d | %%%dd¥n", n); System.out.printf(format, r, x); たとえばnが5だと最終的には System.printf("%2d | %5d¥n", r, x) を行う。 # 一つ指摘しておくと、フォーマット指定として改行を記述するには¥n # ではなく%nを使うべき。
- 681 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 01:30:23 ]
- すみません、XPathAPIを使って、以下のXMLから<media:thumbnail> のurl属性
を取得するには、どのようにXPathを記述したらいいでしょうか? video.google.com/videofeed?fgvns=1&fai=1&docid=507732229697832036&hl=en (以下、抜粋) <rss> <channel> <item> <media:group> <media:thumbnail url="video.google.com/ThumbnailServer2?app=vss&contentid= c5ed681df175c4b0&offsetms=5000&itag=w320&lang=en&sigh=8GjvM1prox25GC-jte15jydXiAA" width="320" height="214" /> </media:group> </item> </channel> </rss> 以下のページなどを参考にしているのですが、具体的な記述が無くて困っています。 msugai.fc2web.com/java/XML/XPath.html
- 682 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 02:18:50 ]
- java関係ないね。と言っても該当スレがここしか見当たらない。
ttp://pc11.2ch.net/test/read.cgi/tech/1133280488/l50
- 683 名前:681 mailto:sage [2007/03/23(金) 02:31:04 ]
- >>682
すみません、XPathAPIに固有の問題もあるかと思い、こちらで質問しました。 例えば、.NETならこんなページがありますが、 www.atmarkit.co.jp/fdotnet/easyxml/easyxml05/easyxml05_03.html この内容(addNameSpace)はJavaでは使えないようです。
- 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() する前に、作ろうとするディレクトリが既に存在しても失敗するし、 同名ファイルがあってディレクトリ作れなくても失敗するし、 ディレクトリの名前が不正な場合 名前が長すぎたり名前に使えない文字が含まれたり でも失敗するし、 ファイルシステム上の権限がなくてディレクトリを作れなくても失敗する。
|

|