【初心者】Java質問・相談スレッド94【大歓迎】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2006/11/21(火) 06:11:54質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/
これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、
wikiからのリンクをおたどりください。
よくある質問
・「コマンドまたはファイル名が違います」
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
「Exception in thread "main" java.lang.NoClassDefFoundError: 」
http://www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
前スレッド
【初心者】Java質問・相談スレッド93【大歓迎】
http://pc8.2ch.net/test/read.cgi/tech/1149349035/
/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */
また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝なく存じます。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作板をご利用ください。http://pc5.2ch.net/hp/
次スレは>>980あたりで。
0446デフォルトの名無しさん
2006/12/02(土) 07:44:37右詰で表示したい文字列の左端 = 右詰で表示したい文字列の右端 - g.getFontMetrics().getStringBounds(右詰で表示したい文字列, g).getWidth()
でも
右詰で表示したい文字列の左端 = 右詰で表示したい文字列の右端 - g.getFontMetrics().stringWidth(右詰で表示したい文字列)
でもどうぞ
パディングなんて無駄なことはいらない
0447デフォルトの名無しさん
2006/12/02(土) 07:50:23ありがとうございます。
こんなところ迄今の自分ではたどり着ける訳が
ありませんでした。
0448デフォルトの名無しさん
2006/12/02(土) 07:56:36って質問すればすぐ回答が得られたと思うよ
0449デフォルトの名無しさん
2006/12/02(土) 08:25:38このg.drawString(kingakuFormat.format(kingaku1), 250, 316+ line2*12);
は、Jetbeeでオーバライドされています。
ですから、同じ長さの文字列を渡したいのです。
g.drawString(kingakuFormat.format(kingaku1), 250, 316+ line2*12);
0450tom
2006/12/02(土) 08:28:17tomcatをインストールしました。localhost:8080をブラウザから指定すると、tomcatの画面
にはなりました。次に、webappsディレクトリの下にentryというディレクトリを自分なりに
つくり、その下にWEB-INFディレクトリを作りました。そして、ブラウザから、localhost:8080/entry/
とやると、HTTPステータス404のエラー画面になってしまいます。どうしてでしょうか?
環境変数はCATALINA_HOMEでPATHは;%CATALINA_HOME%binとしました。
コンソールでもset pahコマンドでpathの確認もしました。
なにか間違ってるのですかね?
>>421
エラー画面は、
Type: ステータスレポート メッセージ:/entry/ 説明 :The requested resource (/entry/) is not available.
と出てきています。
どうすればいいんですかね?
0451デフォルトの名無しさん
2006/12/02(土) 08:34:54なら、オーバーライド後のメソッドの仕様が分からないことには何とも言えんが、
drawString(String,int,int)の第3引数がオーバーライド後も文字列の左端の座標の指定なら
与えるべき座標は計算できるのでは?
0452tom
2006/12/02(土) 08:51:51ちなみに、コマンドプロンプトから、cdコマンドを使いentryディレクトリ
まではいけます。
助けてください・・・・お願いします。
0453デフォルトの名無しさん
2006/12/02(土) 08:59:25今まで経験した言語では例えば12文字の長さの文字列
を左の印刷開始位置を指定すれば文字列に空白やカンマが
含まれていても正確に右詰されて印刷できたもですから、
javaでも同じかと思いました。
また、同じ12文字を渡すのに毎回座標を計算しなければならないのは、
なんとも腑に落ちないものでしたので、私の理解が足らないと思い込んで
いました。必ず同じ長さで文字列を整形できるクラスのメッソドが
あるのではないかと。
0454デフォルトの名無しさん
2006/12/02(土) 09:12:03GraphicsのdrawStringは抽象メソッドだからオーバーライドされているのは当然
>>453
単に等幅のフォントしか使ってなかっただけじゃないのか
0455デフォルトの名無しさん
2006/12/02(土) 09:27:54そのようですね。
javaで等幅のフォントを指定する事はできますでしょうか?
0456デフォルトの名無しさん
2006/12/02(土) 09:43:33javaで等幅のフォントを指定する事はできますでしょうか?
調べました。
Font theFont = new Font("MSP明朝 ", Font.PLAIN, 10)にしてありました。
もう少し調べてみます。
0457デフォルトの名無しさん
2006/12/02(土) 09:50:52Font theFont2 = new Font("Courier", Font.PLAIN, 10);
g.setFont(theFont2);
Courierは等幅のフォントですがだめでした。
0458デフォルトの名無しさん
2006/12/02(土) 10:05:47コンソールでは綺麗に右詰で右に整列しているのですが、
Jetbeeというオープンソースのライブラリの問題なのかな、
そんな事はないとおもいますが。
その他は綺麗に印刷ができているので。
みなさんありがとうございました。
0459デフォルトの名無しさん
2006/12/02(土) 10:10:47このケースでは?
ttp://support.microsoft.com/kb/895959/ja
0460デフォルトの名無しさん
2006/12/02(土) 10:26:02だから、/WEB-INF/web.xmlは置いたのか?って聞いてんだよ。
環境変数はOKだとも言ってんだろ?
同じこと何度も書くな。うざい。
0461デフォルトの名無しさん
2006/12/02(土) 10:27:58if (jw.jetPrintDialog()) {
jw.jetOpenReport();
Graphics2D g = jw.jetGetGraphics2D();
g.drawString("JetBee Sample 1 Report", (int)(400 - g.getFontMetrics().getStringBounds("JetBee Sample 1 Report", g).getWidth()), 150);
g.drawString(" 2,33 , 45t", (int)(400 - g.getFontMetrics().getStringBounds(" 2,33 , 45t", g).getWidth()), 180);
g.drawString("mogmogu a,,,,...", (int)(400 - g.getFontMetrics().getStringBounds("mogmogu a,,,,...", g).getWidth()), 210);
g.drawLine(400, 100, 400, 250);
jw.jetCloseReport();
}
印刷したけど右に揃ってるぜ
ライブラリが悪いんじゃなくてお前の使い方が悪いだけだ
0462デフォルトの名無しさん
2006/12/02(土) 10:28:46に教えてもらった
g.getFontMetrics().stringWidth(s)で長さをしらべてみました。
System.out.println(s +" "+ s.length()+" "+g.getFontMetrics().stringWidth(s));
12,090 11 44
300 11 39
13,460 11 44
9,620 11 41
300 11 39
13,180 11 44
9,425 11 41
300 11 39
20,690 11 44
14,755 11 44
300 11 39
11は文字の長さです。
右がg.getFontMetrics().stringWidth(s)です。
このへんかな。
Font theFont2 = new Font("Courier", Font.PLAIN, 10);
g.setFont(theFont2);
等幅フォントのCourierです。
0463デフォルトの名無しさん
2006/12/02(土) 10:31:06マルチしね
0464デフォルトの名無しさん
2006/12/02(土) 10:35:59ありがとうございます。
そうですか、もう少し落ち着いて良く
調べてみます。
0465デフォルトの名無しさん
2006/12/02(土) 10:50:29そのソース見るとそのライブラリはGraphics2Dの実装返すみたいだから、
drawString(String s, int x, int y)を使うよりも、
drawString(String s, float x, float y)を使った方がさらに正確かも。
0466デフォルトの名無しさん
2006/12/02(土) 11:00:56>>460
WEB-INFディレクトリにweb.xmlはおいていません。
0467デフォルトの名無しさん
2006/12/02(土) 11:10:19置けよ。必須なんだから。動くわけないだろ。
言われたこと全部確認せずに何度も同じことあちこちにコピペするなよ。
うざい。
0468デフォルトの名無しさん
2006/12/02(土) 11:10:240469デフォルトの名無しさん
2006/12/02(土) 11:24:19ありがとうございます。
おかげさまで希望通りいきました。
13,460 11 55
9,620 11 55
300 11 55
13,180 11 55
9,425 11 55
300 11 55
20,690 11 55
14,755 11 55
300 11 55
0470デフォルトの名無しさん
2006/12/02(土) 11:36:42右揃えするためにフォントを替えるなんてありえんだろ
カンマが幅広すぎて格好悪いことこの上ねえ
コンソールに出力するのとはわけが違う
0471デフォルトの名無しさん
2006/12/02(土) 11:37:16ボタンを押下すると色が変わったりフォントが変わったりするはずなのですが、
変化がありません。ボタンの配置はできているようなのですが・・・どこがおかしいのでしょうか?
javacコンパイラは一応通りました。
http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=28846
0472471
2006/12/02(土) 11:39:13以下URLでお願いします。
http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=28847
0473デフォルトの名無しさん
2006/12/02(土) 11:42:01その前の二つは?
0474デフォルトの名無しさん
2006/12/02(土) 11:45:36そうですね。
今回は大変収穫がありました。
細かく位置を調整する方法も教えていただき。
0475デフォルトの名無しさん
2006/12/02(土) 11:50:32俺アプレットってわからないんだけど再起動するとボタンが破綻するのは仕様?笑
俺の環境だと色やフォントが変わる以前にY A M A D Aの一文字すら表示されないぞ?
0476471
2006/12/02(土) 12:08:51それも失敗したやつです。
削除できたらいいのですがここは上げっぱなしのようで…orz
>>475
環境によるのかもしれません。。。
書いた仕様に対してどこがおかしいのか分かりますでしょうか?
下手にコンパイラが通ってしまうためここから進みませんorz
0477デフォルトの名無しさん
2006/12/02(土) 12:16:07とりあえず俺が思ったのはアプレットって大きなCanvasなの?
新しくextends Canvasでクラス作ってみたけどだめだったから
paint(Graphics g)のところが何かおかしいんじゃないかと…。
見えてないのかとsetVisible(true);なりやってみたけど出てこないからやっぱり書けてないんじゃないかな…。
俺携帯の開発しかまともにやったこと無いからJ2MEしかわからなくて力になれなくてすまん。
まぁ暇だから俺も一緒に考えてみるよ笑
0479デフォルトの名無しさん
2006/12/02(土) 12:28:21あと
class MyButtonAdapter implements ActionListener {
の
public void actionPerformed(ActionEvent e){
}
の最後にd.repaint();入れたらボタン押すごとに新しい文字が出るようにはなった。
やりたいのはこういうことじゃなかったらどうしようwwww
力不足ですまんねー。
0480471
2006/12/02(土) 12:35:13>200だから画面外に描画されてるっぽい
すみません、学習が足りずCanvasの意味が分かりませんorz
私の環境ではアプレットは200より十分大きなサイズをhtmlファイル内で記述していました。
>d.repaint();入れたらボタン押すごとに新しい文字が出るようにはなった。
>やりたいのはこういうことじゃなかったらどうしようwwww
いえいえ、ボタンが反応しただけでも進歩しています。
あくまでマウスドラッグ時のmouseDragged()に反応して一定間隔で描画したいのですが、
ボタンが無反応なんですよねorz
0481デフォルトの名無しさん
2006/12/02(土) 12:52:27×Button button1 = new Button("Black");
○button1 = new Button("Black");
0482デフォルトの名無しさん
2006/12/02(土) 13:05:53俺GUIに弱いから曖昧だけどCanvasクラスを利用して描画してるのだと捕らえている。
少なくとも携帯アプリではCanvasを使って描画だったから。
自分はブラウザじゃなくてアプレットビュワーですので画面外なんですねw
ボタンの方は恐らく条件判定が間違っているのだと思う。
if(e.equals(d.button1)) {}とか
if(e.getSource().equals(d.button1)) {}にしても無理だった。
誰かエロい人に聞いてくれ。
ちなみにif節を外したら一定の動作だけどちゃんと動いてくれたからな。
>>481さんの言うように新しいオブジェクトだから受けれて無いだけかも?
もっかい見てこよう。
0483デフォルトの名無しさん
2006/12/02(土) 13:20:32てか今気づいたけどできてるじゃん?wwwww
フォントのサイズを調整するのは一度フォントを変えてからしか適用ができないのな。
あってるかわからないけど初期でも文字サイズ変えれるようにFONTを設定しておいた。
マウスのドラッグについては左ボタンを長押ししながらマウスグリグリしたらちゃんとその位置に描画してくれるよ?
ドラッグの捉え方を間違えてたのか?
SPEED++とSPEED--の仕様が不明なのでどうもしてないけど。
余計かもしれないけど一応うp。
http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=28852
0484ぴゅあ
2006/12/02(土) 14:15:27BitSetの扱うものがbooleanとされているのはなんでだろう…と思うところもありますが、BitSetは置いといて先にビット,ビット操作について理解してみるのがいいように思います
>>400の話で
>byte[] b1 = {0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1};
で扱おうとするとかならBitSetでもいいたろうかとも思うけど(byteはbooleanに置き換えられた方がいいような気もするけど)
続くコードもBitSetのメソッドに置き換わるくらいで(置き換わることを望んでいるかどうかですけど)
>二進数で
>00100111011
とか考えるなら、>>403らが言ってるようなところとかの方がいいような、BitSetではあまり適さないようにも思えたりします
因みに、かつてビット(0/1)と今で言うbooleanがごっちゃに扱われていたのを明確化されたのがbooleanで、それを逆行してもいいならそれでもいいかと思うけど
>それとも考えすぎかな?
そうじゃないかと思います
(byteと比べて…ということでもあるのだろうと思いますけど)true/falseは数値ではないこと,booleanは実装依存ということになっているのでは?
2進数として扱う(扱える)ことを想定していてビット,ビット操作等が理解できているなら、BitSetよりビット操作(ビット演算とかもある)の方がいいような気もするし、BitSetに変えても書くコード量が減るより増えるようなことがあったりしそうな気がしたり・・・
また、BitSetという名前もついているけど(これはこじ付けにもなるのかな?)
java.util.Setは実装されてないけど、Set系とかのような意識として扱うとかなら、ビット操作とかよりBitSetの方がよかったりするのかも?(処理の中でビット数が不定とか2進数として扱うのに非常に多いとか)
0485デフォルトの名無しさん
2006/12/02(土) 14:27:410486ぴゅあ
2006/12/02(土) 15:05:48まとめにしかならないけど
button1フィールドを宣言しているのにinitメソッドでローカル変数button1に格納している(>>481)
(MyButtonAdapter等で見ているのはフィールド)
MyButtonAdapter#actionPerformedでイベントを受け取る(またイベントからの判断)のはやったけど
paint(repaint)が必要であることをAppletに伝えられてない(>>479)
あと、先の話になるのでもあるでしょうけど
(ブラウザだと問題ないのだろうと思うけど)
Applet#initメソッドでaddしたものをApplet#destroyメソッドでremoveしたりするといいのかも
0487ぴゅあ
2006/12/02(土) 15:12:46言うまでもないことだろうけど
>下手にコンパイラが通ってしまう
コンパイラは構文とか足りないものくらいまでは面倒見てくれるけど
書いたロジックまでは見てくれないから仕方ない
ロジックは自分で考えなきゃ
そこ、ぼやいても仕様がない
0488デフォルトの名無しさん
2006/12/02(土) 15:54:40エラーがでてきます。クラスパスをコンソールから調べたところ、
CLASSPATH="C:TOMCAT5_5\common\lib\servlet-api.jar"と表示されました。
何か、クラスパスの設定が間違っているのですかね?
0489デフォルトの名無しさん
2006/12/02(土) 15:59:48C:\
0490デフォルトの名無しさん
2006/12/02(土) 16:06:38>>489
C:¥にしてみてもダメでした・・・。
0491デフォルトの名無しさん
2006/12/02(土) 16:09:250492デフォルトの名無しさん
2006/12/02(土) 16:18:42そうしました。
0493デフォルトの名無しさん
2006/12/02(土) 16:26:09環境変数の値です。
0494ぴゅあ
2006/12/02(土) 16:31:11デフォルトならC:\TOMCAT5_5にインストールされるのではないんじゃないの?
0495デフォルトの名無しさん
2006/12/02(土) 16:33:13\(^o^)/ オワタ
C:\>set (enter)
COMPUTERNAME=C:¥
ComSpec=C:¥
HOMEDRIVE=C:¥
HOMEPATH=C:¥
LOGONSERVER=C:¥
Path=C:¥
PATHEXT=C:¥
...
\(^o^)/ ナンテ コッタイ
0496ぴゅあ
2006/12/02(土) 16:35:54で、>>490の後でもエラーの内容も変わらず?
それらのエラーメッセージ挙げてみてもいいのかも?
>クラスパスをコンソールから調べたところ
のところもレスするには微妙に自信なかったりしますけど…
0498デフォルトの名無しさん
2006/12/02(土) 16:43:08CLASSPATH=C:TOMCAT...
を
CLASSPATH=C:¥TOMCAT...
にしろ、という話だったと思うのだが、まさか
CLASSPATH=C:¥
にしちゃったの?
0499デフォルトの名無しさん
2006/12/02(土) 16:48:26エラーメッセージは、シンボルが解決できませんと表示されています。エラーは全部で6個です。
HttpServletRequestやHttpServletResponseのところに^がでています。
インストール先はC:\Program Files\Apache Software Foundation\Tomcat 5.5になっていたので
インストールするときにProgram Files\Apache Software Foundation\をけしました。
0500デフォルトの名無しさん
2006/12/02(土) 16:52:24CLASSPATH=C:\TOMCAT にちゃんとしましたよ。さすがにC:\だけにはしていません。
私の書き方が悪かったです。すみません。
0501ぴゅあ
2006/12/02(土) 16:53:01(ここんとこ触ってないのでCLASSPATHに必要だったかどうかとか定かではないですが)
その消したのを消さないままで書けばたぶん解決するんだろうと思いますよ
0502デフォルトの名無しさん
2006/12/02(土) 16:59:46いつも凄く為になる解説をしていただけるので気になっていました。
0503ぴゅあ
2006/12/02(土) 17:43:09ここ1,2ヶ月はずっと断り続けていたSE業を押しに負けて引き受けてしまったので
今のところプログラマではないですが(春には戻ってるだろうけど)
なので当面はたまに遊びだけ
どうでもいい質問とかいうのに引っ掛けて(?)どうでもいいような話も加えておけば
プログラマだからというわけでもないと思うけど
ただ、プログラマ(仕事)という意味合いでも解る人が増えてくれれば
仕事としての面では、会社も売上率が上がるだろうし
それに伴ってプログラマとかの給料とかももっと上がったりすることもあるんだろうし
それより、解る人がもっと増えてくれれば
自分自身にとっても仕事も楽になるし
更にもっと色んな仕事(プログラムを書くとか)にも触れることができるようになるだろうなぁ
ってとこ?
別に「凄く為になる解説」と言ってもその僅かな部分しか伝えられないし
仮にそれによってその相手が伸びてきたとしても
そうそう追いつけるものでもないだろうし(追いつかれるかどうかとかはどうでもいいことだけど)
もし追いつかれてしまうようなら、自分がもっと勉強すればいいだけのことですしね
それより、質問に答えようと(課題を消化しようとするようなもの?)考えることが
質問者側には単に答えているだけのように見えてそうで、自身の知り得ていないことを知る機会になるかも
と思っているのかも
0504デフォルトの名無しさん
2006/12/02(土) 17:54:50どうでもいい質問は通りすがりの俺が答えましょう
ぴゅあさんは風水師です。
鬼門の方角にJAVA_HOMEを設定すると運気があがります。
0505ぴゅあ
2006/12/02(土) 17:57:26>ぴゅあさんは風水師です。
>鬼門の方角にJAVA_HOMEを設定すると運気があがります。
意味解らんし。。。(−−;
てか、マジでそんな話あったら
あちしには難し過ぎて理解できんかも
(かも…じゃなくて、できん(汗))
0506デフォルトの名無しさん
2006/12/02(土) 18:04:420507デフォルトの名無しさん
2006/12/02(土) 18:19:50文章を書く能力はそんなに無いよね
全体的に読みにくい
0508デフォルトの名無しさん
2006/12/02(土) 18:21:59classpath解決できましたよ!!ありがとうございました!!コンパイルも無事できました!!
本当にありがとうございました!!
0509デフォルトの名無しさん
2006/12/02(土) 19:24:05私の場合、ディレクトリはwebappsの下にchapter03-3というディレクトリ
を作り、その下にWEB-INFを作り、そしてweb.xmlをおきました。そして
WEB-INFのしたにclassesディレクトリを作りました。
ブラウザからlocalhost:8080/chapter03-3/Helloと指定すると、エラー画面
になってしまいます。説明 The requested resource (/chapter03-3/Hello) is not available.
というものも表示されています。なぜでしょう?
web.xmlはこんな感じです。
- <servlet>
<servlet-name>mySample</servlet-name>
<servlet-class>Sample</servlet-class>
</servlet>
- <servlet-mapping>
<servlet-name>mySample</servlet-name>
<url-pattern>/Hello</url-pattern>
</servlet-mapping>
</web-app>
0510デフォルトの名無しさん
2006/12/02(土) 19:41:14Servletはデフォルトパッケージで作るな。
0511デフォルトの名無しさん
2006/12/02(土) 20:22:45>>510
509です。どういうことでしょう?ちょっと分かりません。テキストを写して
書いただけなんで・・・。
そもそもweb.xmlは、自分でメモ帳などで書くのですか?どうやって作るもの
なのでしょうか?
0512デフォルトの名無しさん
2006/12/02(土) 20:26:26釣られてあげようではないか。
classesフォルダの直下にSample.classを置くと幸せになれるよ
Sample.classはいわゆるサーブレットってやつでつよ。
「サーブレット」がなんなのかびみょーなら
ぐぐると易しく解説してくれてるサイトがいぱーい引っかかりますよ。
0513デフォルトの名無しさん
2006/12/02(土) 20:33:16一応classesフォルダの直下においてあるんですけど。それでもダメです・・
0514デフォルトの名無しさん
2006/12/02(土) 20:34:32だから、デフォルトパッケージで作るなって。
パッケージを知らないのなら、
Servlet以前に入門書でJavaの基礎から勉強し直した方がよい。
0515デフォルトの名無しさん
2006/12/02(土) 20:58:45パケージ作りました。パッケージ文も追加してコンパイルいたのですが、やはり
ダメでした。
classes以下では、javaのパッケージの考え方が使われているのは知っていたのですが、
テキストなどには、すべて、デフォルトパッケージでサンプルなどがあるもので・・・。
0516デフォルトの名無しさん
2006/12/02(土) 21:11:35で、コンパイルされたclassファイルは
パッケージ階層と同じディレクトリ階層を作って、そこに入れた?
それから、web.xmlのクラス名の指定も完全限定名にしたの?
0517デフォルトの名無しさん
2006/12/02(土) 21:37:48別にデフォルトパッケージでも大丈夫だろ?なんでパッケージにこだわってんの?
第一、ここは初心者が質問しに来るところだぜ。第一、サーブレットの最初の方から
パッケージなんてそんなにでてこない。本によっては全部デフォルトパッケージで
サンプル作ってるやつだってある訳だし。質問見ると、とにかくブラウザに表示したい
訳だろし。パッケージパッケージ言ってないで質問の意図分かってやれよ。
0518デフォルトの名無しさん
2006/12/02(土) 21:54:36アプレットみたいなやつで最近はやりのやり方があったら教えてください。
0519デフォルトの名無しさん
2006/12/02(土) 21:57:08そのままだと、コンテキストのデプロイに失敗しているのかそれ以外か判断付かないね。
webapps/chapter03-3/hoge.html を作成し、適当なHTMLを記述してみて。
http://localhost:8080/chapter03-3/hoge.html をブラウザで表示できないなら、
コンテキストのデプロイに失敗している。logs フォルダに何かログがあるはずなので、そこを見てみよう。
hoge.htmlが見えたなら、他の原因かな。ちょっと思いつかない。
とりあえずログ見てみよう。
0520デフォルトの名無しさん
2006/12/02(土) 21:57:39俺から見ると別に問題はなさそうなんだが・・・。単純にブラウザから
の指定の仕方、例えば、スペルミスとかじゃないのかな?
>>516
あんまり初心者いじめんなよ。あなたも最初からすぐに理解してできたわけじゃないでしょ?
自分が分からない立場だったらどうよ?混乱するだけだろ?
0521デフォルトの名無しさん
2006/12/02(土) 21:58:28またまた釣られてみました。
509で書かれたweb.xmlを見る限り、先頭に<web-app>が抜けてるよぉ。
できればSample.classのソースコードとweb.xmlの詳細を載せてもらえると、なんかわかるかも
0522デフォルトの名無しさん
2006/12/02(土) 22:00:47特にJSPでは、Javaの仕様の関係で無名パッケージのクラスが使えないからね。
ま、サーブレット単体では動かなくなることはないんだけど。
実際Tomcat5.5付属のサンプルなんか無名パッケージに属してる。
0523デフォルトの名無しさん
2006/12/02(土) 22:00:56デフォルトパッケージで動かしてみてから言えよ。
0524デフォルトの名無しさん
2006/12/02(土) 22:15:140525デフォルトの名無しさん
2006/12/02(土) 22:29:53import javax.servlet.http.*;
import javax.servlet.*;
import java.io.IOException;
import java.io.PrintWriter;
public class Sample extends HttpServlet {
public void doGet( HttpServletRequest req,
HttpServletResponse res )
throws ServletException, IOException {
res.setContentType( "text/html; charset=Shift_JIS" );
PrintWriter out = res.getWriter();
out.println( "<html>" );
out.println( "<head>" );
out.println( "<title>Sample</title>" );
out.println( "</head>" );
out.println( "<body>" );
out.println( "HelloWorld!" );
out.println( "</body>" );
out.println( "</html>" );
}
}
0526デフォルトの名無しさん
2006/12/02(土) 22:30:42<?xml version="1.0" encoding="ISO-8859-1" ?>
- <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
- <servlet>
<servlet-name>mySample</servlet-name>
<servlet-class>Sample</servlet-class>
</servlet>
- <servlet-mapping>
<servlet-name>mySample</servlet-name>
<url-pattern>/Hello</url-pattern>
</servlet-mapping>
</web-app>
0527デフォルトの名無しさん
2006/12/02(土) 22:39:45- <servlet> とか
- <servlet-mapping> とか。
先頭に"-"がなぜ付いている?
コンテナ起動時に何かエラーが出てないかい?
> res.setContentType( "text/html; charset=Shift_JIS" );
相当古い本を使っているか、サンプルがマズい本を使っているね。
Windows環境なら
res.setContentType( "text/html; charset=Windows-31J" );
がおすすめ。
0528デフォルトの名無しさん
2006/12/02(土) 22:48:02サンプルがまずいんですか・・・
-<web-app よくわかりませんが"-"がついています。
コンテナ起動時にはとくに何もおきていないです。
コンテナ起動時に起きるエラーといとどういうものが考えられますか?
0529デフォルトの名無しさん
2006/12/02(土) 22:58:42IE6で開いたのをコピペしたんじゃないか?
0530デフォルトの名無しさん
2006/12/02(土) 22:59:44要素の前に付いている"-"は全部取ろう。
>コンテナ起動時に起きるエラーといとどういうものが考えられますか?
parse error とか出てない?
"-"なんて付いているから、web.xmlの読み込みに失敗しそう。
0531デフォルトの名無しさん
2006/12/02(土) 23:26:52parse error というものは出ていないです。"-"は消します。
web.xmlというのはメモ帳で自分で作成するのですか?
それとも、どっかからコピーしてきて少しだけ直すもんなんですか?
とりあえず、今日はもうテキスト読んで考えてみます。
色々とアドバイスありがとうございました。またよろしくお願いします。
0532デフォルトの名無しさん
2006/12/03(日) 00:19:47String型やint型をInteger型に変換したいのですが、
new Integer(String a)などとインスタンス生成すればできますよね。
しかし、ループのなかで変換をを行いたい場合、
インスタンス生成以外の方法で変換をかけることはできないでしょうか?
0533デフォルトの名無しさん
2006/12/03(日) 00:23:17基本的に無理。
ループまわす回数や数値の範囲によっては、
インスタンスプール使うって手もあるけど。
0534532
2006/12/03(日) 01:05:46回答ありがとうございます。
たとえば無茶ですが、以下のように生成したとしても
制御する方法があるということですか。
for(int i=0 : i<100 ; i++){
new Integer(a[i]);
}
インスタンスループについて調べてみましたが
なかなか難しい・・。
0535デフォルトの名無しさん
2006/12/03(日) 01:10:04Javaのバージョン何使ってる?
5.0使ってるならInteger#valueOf使いなさいな
内部で配列にキャッシュしてるから。
Stringの場合、Mapでキャッシュするのが一般的だが
生成される相手がIntegerならMap#getのコストやString#equalのコストのが高くつくかもね
0536デフォルトの名無しさん
2006/12/03(日) 01:38:390537デフォルトの名無しさん
2006/12/03(日) 01:48:250538ぴゅあ
2006/12/03(日) 04:37:34何故そうしたいと思ったのかが判らないところですけど
書くコードとしてはnew Integer(...)としたくないというところなんでしょうか
Integerが内部に持つ値を直接置き換える手段はなく
例えdecode,valueOfメソッドを使って見た目はnewしてないように見えるコードにしても結局内部でnewしてます
(5.0のvalueOf(int)でキャッシュを持っていると言っても高々-127〜+128程度の範囲で予めnew Integer()してるだけだし)
intについては1.4までだとnew Integer(int)しか手段がないみたいです
そんなことやってくれるものが他にあるか?と言っても、Integerと決めた時点で内部では毎回newするしかないし
素直にnewするコードを書くのがいいんじゃないかと思いますけど
どうしても見た目にnewしたくないのなら、そういうクラスを作るのが早いんじゃないでしょうか(1.4までの場合)
見た目だけにしかならないと思うし、Integerとしては見えなくなるのは嫌だったりしないのか?とか思ったりもするけど
無駄な努力をしようとしているようにも思えてしまったりですけど
もっと違うことを求めていたりするんでしょうか
0539デフォルトの名無しさん
2006/12/03(日) 10:29:27今、web.xmlのことで悩んでいるのですが、メモ帳で中身を書いたら、中身が消えていました。
そもそもweb.xmlというものは0から自分で書くものなのですか?それとも、コピーして書き換える
程度なのですか?書き換える(編集)する場合は、どうすればよいのでしょう?
0540デフォルトの名無しさん
2006/12/03(日) 10:31:53web.xmlの中身はこんな感じになっちゃっていました。どうしてでしょうか?
The XML page cannot be displayed
Cannot view XML input using XSL style sheet. Please correct the error and then click the Refresh button, or try again later.
--------------------------------------------------------------------------------
End tag 'servlet-name' does not match the start tag 'url-pattern'. Error processing resource 'file:///C:/Tomcat 5.5/webapps...
<url-pattern>/HellohtmlServlet</servlet-name>
----------------------------------^
0541デフォルトの名無しさん
2006/12/03(日) 11:04:33>そもそもweb.xmlというものは0から自分で書くものなのですか?それとも、コピーして書き換える程度なのですか?
どちらでもお好きなように。最終的に正しい書式になっていればOKです。
メモ帳でも、他のテキストエディタでもお好きなのを使ってください。
で、消えちゃったと言っているのは、消えたのではなく
内容が間違っているのでIEで表示できていないだけでしょう。
「<url-pattern>/HellohtmlServlet</servlet-name>」
じゃなくて
「<url-pattern>/HellohtmlServlet</url-pattern>」
じゃないの?
XMLの書式は(HTMLも基本的に同じ)開始と終了の要素名が一致していないとダメ。
0542デフォルトの名無しさん
2006/12/03(日) 11:12:40ありがとうございます。もう一度書いてみます。
0543デフォルトの名無しさん
2006/12/03(日) 11:19:49- <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
<web-app>
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/HelloServlet</url-pattern>
</servlet-mapping>
</web-app>
こんなふうに書いたのですが、また、ダメでした・・・。どうしてですかね?
0544デフォルトの名無しさん
2006/12/03(日) 11:36:090545デフォルトの名無しさん
2006/12/03(日) 11:41:35もしかして”-”ですか?なんかいつもついているんですよね?
■ このスレッドは過去ログ倉庫に格納されています