[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 04/11 16:27 / Filesize : 251 KB / Number-of Response : 860
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【初心者】Java質問・相談スレッド99【大歓迎】



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あたりで。

445 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 12:27:25 ]
以下のようなソースがあった場合、
readerでIOExceptionを発生させるには読み取り権限がないファイルを渡すことでテスト
FileNotFoundExceptionを発生させるには存在しないファイルを渡すことでテストしようと思いますが
writerでIOExceptionやclose()メソッドでIOExceptionが発生した場合、
JUnitでどんなコードを書いたらよいのかがわかりません
よろしくお願いします
public String read(String name) {
  Reader reader = null; StringWriter writer = null;
  File file = new File(name);
  try {
    reader = new InputStreamReader((new FileInputStream(file)));
    writer = new StringWriter();
    int c;
    while ((c = reader.read()) != -1)
      writer.write(c);
    return new String(writer.toString());
  } catch (FileNotFoundException e) { System.out.println(e.getMessage());
  } catch (IOException e) { System.out.println(e.getMessage());
  } finally {
    try {
      if (writer != null)
        writer.close();
    } catch (IOException e) { System.out.println(e.getMessage()); }
    try {
      if (reader != null)
        reader.close();
    } catch (IOException e) { System.out.println(e.getMessage()); }
  }
  return null;
}

446 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 12:29:56 ]
>>444
tryブロックの外で、closeすべき変数を null を初期値とし、まとめて宣言する。
finally で、null チェックして逆順に close を呼び出す。というのはどうでしょう

ラップしてる変数の close 処理がうまくいくことを前提にするなら、
if文をネストして、null ではない一番外側の変数だけでcloseを呼び出す。
と言うのもありかも?

447 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 12:33:56 ]
>>444
1.5 以降なら、
www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=36027&forum=12&start=15
の、かつのり氏の StreamUtils#close みたいなユーティリティメソッド作って、

FileInputStream file = null;
BufferedReader reader = null;
IOException e = null;
try {
 file = new FileInputStream(name);
 reader = new BufferedReader(new InputStreamReader(file));
 //....
}catch(IOException ex){
 e = ex;
}finally{
 StreamUtils.close(e, reader, file);
}
みたいにするとか。

1.4までだと java.io.Closeable がないから この方法は使えないんだけどね。

448 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 12:45:55 ]
>>445
InputStream を渡すメソッドだったら簡単だけど。
djUnit の Virtual Mock Objects 使ってみるとか?

449 名前:デフォルトの名無しさん [2007/03/15(木) 14:13:34 ]
質問です

画面に文字列を出力させるときに、その表示を一文字ずつ
順番に表示させるのって可能ですか?

例:ありがとう
と出力させるとしたら、「あ」が表示されて、少し待って「い」
みたいな感じです

450 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 14:21:45 ]
可能不可能でいえば可能。

画面てのがコマンドプロンプトなどのキャラクタ表示装置なのか
ウィンドウなのか、ウィンドウの中のテキストフィールドなのか
などによってやり方は違う。


451 名前:デフォルトの名無しさん [2007/03/15(木) 14:43:08 ]
アプレット上にパネルを置いて、そのパネルでmouseWheelMovedイベントを拾うプログラムを作っているのですが
アプレットの外の部分(HTMLで文字などを表示してるところ)をマウスクリックすると
パネル上でマウスホイールを回してもmouseWheelMovedイベントが来ません。
何が問題なのでしょうか?


452 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 17:20:00 ]
Java 1.6.0のソースのStringの部分を眺めていたら、public String toUpperCase(Locale locale)の部分(2556行)に

/* Now check if there are any characters that need to be changed. */
scan: {
for (firstLower = 0 ; firstLower < count; ) {
(ry
}

という部分があったのですが、このscan: {}はどういう意味ですか?

453 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 17:38:36 ]
>>451
自分のウインドウの外の出来事を、しかもアプレットが知ることが出来たらやばくね?

>>452
ラベル:
ループの中でbreakやcontinueしてたりしない?





454 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 17:53:03 ]
>>453
そうでなくて
パネル上にカーソル移動→マウスホイール動かす→イベント上がる
のに
パネルの外をクリック→パネル上にカーソル移動→マウスホイール動かす→イベント上がらず
ってことです。


455 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 18:14:23 ]
マウスホイールって入力フォーカスのあるコントロールに通知されるんじゃなかったっけ?
なんかそれを変更するツールがあったよーな。

456 名前:デフォルトの名無しさん [2007/03/15(木) 19:29:56 ]
すみません、質問なのですが。自分、去年末あたりからプログラミング(java)
を学び始めたのですが、DBをjavaのプログラミングで弄る技術は必須でしょうか?


457 名前:デフォルトの名無しさん [2007/03/15(木) 19:37:35 ]
>>456 使わないなら不要、使うなら必要。

458 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 19:50:43 ]
何故こんな質問が出るか想像してみた。
 1.誰かからできないといけないと言われた
 2.その手の本を読んで、「javaでDBを使ってみよう」という所で詰まっている
 3.ネットでDBを使う例をよく見かけるので必要かと思った
 4.面接で「javaはひととおりできます」と言ってしまったので入社前に「ひととおり」というのはどの程度か知りたい

で、>>456が聞きたいのは「javaでDBを弄る技術がないと役立たずなのか」って事ではないだろうか。

459 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 19:58:17 ]
>>456
ヒント:いまどきRDB使わない業務アプリはほとんどない。

460 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 20:02:45 ]
>>456
その質問はこんな感じ。
「すみません、質問なのですが。自分、駅前商店街のあたりで料理屋を探していて、さて
これから適当な店に入ろうというところなのですが、食前にワインを注文すべきでしょうか」

吉野家でワインを注文するひとは少ないと思われ。

461 名前:デフォルトの名無しさん [2007/03/15(木) 20:04:50 ]
>>458ええ、最近とうとうeclipseを導入したのですがHSQLDBを起動するためのソースが
eclipse上で上手く動かないのです。んで考えた末に出た結論がHSQLDBplugin
テキストエディタの時は上手く動いたのに何でだろorz クラスパス等の考慮は
完璧なんですが・・・

462 名前:デフォルトの名無しさん [2007/03/15(木) 20:12:45 ]
やっぱり、eclipse破棄してテキストエディタでソース組むようにします。
eclipse使ってると技術が退化する。

463 名前:デフォルトの名無しさん [2007/03/15(木) 20:18:42 ]
>>462
作業効率が落ちると消化できる量も当然減るわけで一概に技術が退化するとは思えない。
要するに
「コアな部分を解釈するか」
「作業効率を上げて色々な技術に触れるか」
方向性の違いじゃない?



464 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 20:23:53 ]
eclipseもプログラム言語もプログラマーにとっては道具
どのような道具を使えば望んだ結果が得られやすいのかが一番重要

465 名前:デフォルトの名無しさん [2007/03/15(木) 20:30:16 ]
そうですね。eclipseは構文エラーなどをした時、その場で教えてくれるので
とても便利ですよね。じゃあ、どういった種類のソースを組むのかによって
使い分けることにします。

466 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 20:51:53 ]
経験の浅いプログラマは、たまにはテキストエディタで書いて
いろいろ振り返ってみるのも良いと思う。
「退化する」ってのは、本当は退化じゃなくて基礎があやふやになるということ。
ある程度の経験があって基礎がしっかり固まっている人はIDEを使ったところで
「退化」なんてしないし作業効率が上がるので、どんどん使えばいい。
そういう人は仮にIDEが使えない環境下で作業しなければいけない場面でも
問題なく普通に対応できる。


467 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 20:54:21 ]
要するに何が言いたいかっていうと
>>462は半年ROMってろってことですね

468 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 20:56:02 ]
IDE使うと楽にコーディングできるからテキストエディタには戻れなくなる。
覚えていなくてもいいことは人は忘れるものだ。

469 名前:461 [2007/03/15(木) 21:06:35 ]
すみません、続報ですが、テキストエディタで組んだ奴は上手くDBに接続できたので、
そのソースをeclipseにコピーして実行したら上手く接続できました。
どうやら原因は私がeclipseに甘えていたことのようです。orz

470 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 21:07:47 ]
>>466
文法をしっかり覚えている=プログラマとしての経験が豊富
みたいな口ぶりだな。

471 名前:461 [2007/03/15(木) 21:16:25 ]
下らない審問ばかりで申し訳ないのですが、私まだjavaしか使えないので
これからc,c++学ぶ予定なのですが、もしそれらの言語でGUIプログラムを組むとき
流れは( ContentPaneを拾得したり、JButtonなどを宣言する流れは同じなのでしょうか?

472 名前:461 [2007/03/15(木) 21:33:22 ]
c,c++学ぶときのお楽しみって事で。Σ(´∀`;)

さっきの原因が分かりました。hsqldb/libにあるjarファイルを2つとも
importしてたのが原因だったようです。盲点でした・・・

473 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 21:36:28 ]
>>470

いや、>>466の言いたいことは文法だけじゃなく開発全般にわたっての事ではないかと。
IDEでやっていることをIDEなしでもちゃんとできるようになろうよ、と。
それができれば自ずとプログラマとしての力もつくんでないの?
IDEなしで開発していると思いがけずいろんなものが見えてくることもあるし…



474 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 22:30:44 ]
C++でGUIプログラム組む時は基本的にMFCまたはWTL/ATLを使う。
詳細はググるように。
.NETの場合はFormsとWPFがあります。
FormsはVBの流れをくんだ開発手法でWPFはJSPやASPの流れを組んだ開発手法と思えば良いと思う。

475 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 22:34:04 ]
俺C++がメインでJavaは素人だからトンチンカンなこと言ってるかもしれないけど……
例えばある変数がintだったかlongだったかで手が止まるとか、
20文字の変数名を手入力して間違えてコンパイルエラーとか、
ある関数の内容を確認するときにいちいち検索が必要になるとか、
もうナンセンス極まりない話だと思う。
それじゃ自分が常に全体を把握できる程度の規模のプログラムしか書けないよ。
断言できる、統合環境と技術力とは一切関係がない。

476 名前:461 [2007/03/15(木) 22:38:01 ]
さっきのHSQLDBのことですが、pc再起動してもう一度実行してみたら
IllegalStateExceptionと出てまた失敗しました。
成功してたのに・・・バグ?(´・ω・`)

477 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 22:44:00 ]
>>476
APIでは、
public class IllegalStateException
extends RuntimeException
不正または不適切なときにメソッドが呼び出されたことを示します。
すなわち、Java 環境または Java アプリケーションは、要求されたオペレーションに適した状態ではありません。

設定ファイルやOSセキュリティなどで
サーバ・データベースの連携がうまくいってないのでは?


478 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 22:56:05 ]
全自動洗濯機があるんだから洗濯板の使い方なんてどうでもいいよ

479 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 23:02:05 ]
そういう奴は全自動洗濯機の性能評価・製品評価もできず、
自分が何をやっているのかも理解できない
いわれるがままに作業する全自動ロボットでしかないわけだが。

480 名前:475 mailto:sage [2007/03/15(木) 23:11:34 ]
>>479
比喩を比喩で返すのは別にいいんだけどさ、
それは一体何を言わんとした比喩なの?
ある変数にカーソルを合わせたら「int」と出た、
じゃあこれはintなんだなと理解し、それに応じたコードを書き進めることが、
あるいはある関数で右クリックしてメニュー出して左クリックして
その関数の宣言されている場所に一気にジャンプして編集することが、
果たして「言われるまま作業する全自動ロボット」とまで
蔑まれるほど程度の低い行為だとはどうしても思えないんだけど。
君の言う「本当の」プログラミングって何よ?

481 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 23:18:55 ]
>>444
>InputStreamReader や BufferedReader のコンストラクタで例外が発生したら
ドキュメントには何も書いてないけど、
チェックされない例外やエラーが発生するかもしれないん?

closeは一番外側を閉じると、元まで伝播するんじゃなかったけ。

482 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 23:21:56 ]
>>480はコードアシストやジャンプ機能だけがIDEの機能だと思っているバカ。

483 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 23:23:40 ]
そんな基本的な機能まで放棄してテキストエディタかよって話だろ



484 名前:475 mailto:sage [2007/03/15(木) 23:28:41 ]
>>482
VS様は(少なくとも個人で買える範囲では)最高の統合環境だと思います
それで何の話でしたっけ

485 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 23:29:03 ]
まあ、NetBeansあたりを使ってWebアプリ開発やっていると
・Servletコンテナのインストール方法を知らなくて良い
・それどころか、Servletコンテナの存在すら意識しなくて良い
・Servletをweb.xmlへ設定する方法を知らなくて良い
・それどころか、web.xmlの存在すら意識しなくて良い
・webアプリケーションのデプロイ場所・ディレクトリ構成を知らなくて良い。意識しなくて良い
・実行時クラスパス・ビルド時クラスパスを意識しなくて良い
・ソースディレクトリとデプロイ先ディレクトリが違うことを意識しなくて良い
等々のメリットだかデメリットだかが得られるわけだが、
どうなっているのか知らずに作業できる全自動ロボットという見方も出来るかもね。

486 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 23:30:21 ]
自分の目的に合ったものを探せばいいと思うよ

487 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 23:30:32 ]
>君の言う「本当の」プログラミングって何よ?

誰か「本当の」プログラミング なんて話してるのか?

488 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 23:33:23 ]
俺、真のスーパープログラマーになるんだ!!!11

489 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 23:34:35 ]
本当のプログラミング(笑)ってなんだよ

490 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 23:37:15 ]
>>488
Shiftキー離してるぞw

491 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 23:44:13 ]
自動的にエンコード・デコードしてくれるテキストエディタなんて使ってると、
技術が退化するぞ。

バイナリエディタを使うんだ。

492 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 23:46:42 ]
高級言語なんて使ってると、
技術が退化するぞ。

機械言語を使うんだ。

493 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 23:47:17 ]
>>447
外側が閉じれないのに、内側を閉じちゃっていいん?



494 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 23:53:49 ]
ソフトウェアなんて組んでいると、
技術が退化するぞ。

チップセットを自作するんだ。

495 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 23:54:37 ]
それが>>480の言うところの「本当の」プログラミングかwww

496 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 23:55:19 ]
いま洗濯物を干したところ。
そうなんだ。乾燥機がないんだよ。。。

497 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 00:00:07 ]
PCのスペックにうるさいやつがいるのはわかるけど
全自動洗濯機の性能評価とかいちいちするやついるんだな
JBuilderほどひどくなければ何でもいいだろ

498 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 00:01:39 ]
全自動洗濯機しか使えない奴は、洗濯物の干し方を知らないからな。
壊れたときに途方に暮れる。

ちゃんとシワ伸ばしたか?
色物は裏返したか?
型くずれする物をハンガーに掛けたりしてないか?

499 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 00:02:12 ]
JBuilderのどこがひどい?
eclipseとかNetBeansよりよっぽど使いやすいけど。
ああ、eclipseベースにした新しいやつのこと?

500 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 00:02:34 ]
>>497
価格.com あたりに行ってみ。
家電マニアという人種は意外と多い。

501 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 00:05:05 ]
>>497
bbs.kakaku.com/bbs/21105010440/
 bbs.kakaku.com/bbs/21103010412/
 bbs.kakaku.com/bbs/21103010450/

502 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 00:06:39 ]
>>498
それはない。自動でやってくれない部分については人はおぼえるよ。

IDEがお客さんとメールのやりとりまで勝手にやってくれるようになったら
メールも打てなくなるかもねw

503 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 00:08:26 ]
洗濯の初心者は、たまには洗濯板で洗ってみるのがいい。



504 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 00:10:17 ]
kakaku.comのリンクを貼るのはロングテールを利用してるだけ。
実際は性能評価なんてしてるやつはゼロに近いだろ。
まわりの人間からトシちゃんのファンをみつけるのはほぼ不可能だけど
トシちゃんのディナーショーにいけばトシちゃんのファンばっかだぞ。

505 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 00:11:08 ]
>>503
うおっ。洗濯板か。さすが2chだ。何でもありだな。
できれば板アド教えてプリーズ。

506 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 00:11:36 ]
>>493
閉じていいかどうかは、内側による。

FileInputStream の場合は開きっぱなしだと、
他のファイル開く時に OS で開けるファイルの上限にひっかかったりとか、
後で FileOutputStream で同じファイルを開けなかったりする可能性もあるので放置しない方が良いかも。

今回のは InputStream だったけど、
例えば OutputStream とかで close() 呼んだら DB に commit する、
とか、そーゆー実装になってる場合は閉じたら拙いだろうし。

507 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 00:23:44 ]
本当のプログラミングはこれからだ!

508 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 00:24:17 ]
まわりの人間から家電マニアを見つけるのは
トシちゃんファンを見つけるよりもたやすい。

509 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 00:25:18 ]
「ロングテール」言いたいだけちゃうかと

510 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 00:25:26 ]
javaでjcomboboxで選択したものを表示させるにはどうしたらいいですか?

511 名前:デフォルトの名無しさん [2007/03/16(金) 01:13:51 ]
つ【やさしいJava本】

512 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 02:18:23 ]
>>508
やっぱりモーターは日立だよな。

513 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 02:41:10 ]
↓マブチとタミヤの争い



514 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 02:54:32 ]
>>513
模型オタの俺がマジレスするとタミヤはモーターは作ってないよ。あくまでも模型の会社だから。
タミヤの強みは金型とかでしょ。逆に、マブチは小型モーターに強み。
家電のことは詳しくないけど、マブチやタミヤって家電に絡んでるのか?

515 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 02:57:11 ]
クソスレであってもこーゆー>>514みたいなレスがあるのが2chの醍醐味だと思う。

516 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 03:05:10 ]
クソなのはこのスレじゃなくてこの流れなんだが、
その点を除けば同意

517 名前:デフォルトの名無しさん [2007/03/16(金) 06:36:34 ]
つ【同意】(:D)| ̄|_ =3=3

518 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 10:05:20 ]
>>512
日立は「モートル」だろ。


519 名前:デフォルトの名無しさん [2007/03/16(金) 16:32:25 ]
昨日の>461ですが皆様のお陰で解決しました。
どうもありがとうございました。

520 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 19:02:48 ]
エラー:パッケージ javax.servlet.http は存在しません。
どうしたらいいですか?
Tomcat 6.0
java1.6.0


521 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 19:09:53 ]
ググれ

522 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 19:24:13 ]
>>519
結局、原因はなんだったんだ?

523 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 19:30:11 ]
>>520
クラスパス確認すれ



524 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 19:31:20 ]
>>520
コンパイル時なのか実行時なのかくらい書け。
環境もなるべく詳しく書け。

525 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 20:35:13 ]
>>524
コンパイル時です
>>523
通ってませんでした

servlet.jarが入ってなかったので名前が似ているservlet-api.jarをJAVA_HOME/jre/lib/extに入れたのが原因でしょうか?

526 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 20:48:54 ]
>>525
よほどのことが無い限り ext とかはいじらん方が良かれ。

開発環境は何使ってます?
Eclipse や NetBeans なら
ターゲットの実行環境(tomcat6)から適切な jar を参照するんで
その辺りの煩わしさは皆無ですよ。
(tomcat6 に対応してたかはちと自信なし。)

テキストエディタだけでガリガリやってるなら
javac する時のクラスパスに、
実行環境のライブラリをまとめて指定したら
コンパイルは通ると思う。

527 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 21:50:19 ]
>>526
jcpad231を使ってプログラムを書いています

528 名前:デフォルトの名無しさん [2007/03/16(金) 22:10:22 ]
>>522 結局原因はHSQLDB側のコマンドライン?を2つ起動してなかった事が原因
です。Σ(´∀`;)ちんけな原因orz

529 名前:デフォルトの名無しさん [2007/03/16(金) 22:13:37 ]
>>526 ベータ版だけど最新のtomcatpluginならtomcat6使えますよ。
個人的にはtomcat5.5の方が良いです。

530 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 23:12:15 ]
CSVファイルって空白のデータもありえますよね?
最終列が空白の場合、splitでできるString配列のlengthが
異なってしまい処理が煩雑になります。みなさんどうしてますか?
自分は下記のようなデータがあったとき、

1,音原田九郎,
2,渋井丸拓男,事故死
3,LIND L TAILOR,

//いったん最終列に空白を追加して最終列を認識させる
text = text+" ";
String[] splitArray = text.split( "," );
処理1( splitArray[0] );
処理2( splitArray[1] );
//追加した空白はtrimで消去してから処理する
処理3( splitArray[2].trim() );

こうしているのですが、もうちょっとスマートなやり方ないですか?

531 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 23:30:29 ]
","つけるといいよ

532 名前:じゅん mailto:tabiwayogisya.breakoneslegman@ezweb.ne.jp [2007/03/17(土) 02:22:13 ]
ネットを開いてお気に入りを開くとフォルダがあるのですが、隠しファイルにしてしまい消えてしまいました。もう一度表示させるにはどうすればよいのでしょうか(>_<)

533 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 02:44:52 ]
コントロールパネル→ツール→フォルダオプション
で隠しファイルを表示する設定にできます。

その状態でお気に入りを開けば半透明のフォルダが
出てくるはずなんで、右クリックしてプロパティから
隠しファイルを解除してください。



534 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 02:47:13 ]
それJavaなん?

535 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 02:47:45 ]
>こうしているのですが、もうちょっとスマートなやり方ないですか?
末尾データが無いからとカンマを削る事がそもそもスマートじゃない

536 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 04:14:15 ]
何の説明も無いまま空白を半角空白と空文字列の二つの意味で使ってることに驚く。

537 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 04:24:36 ]
>>530
予め最大の列数が決まってるなら

String[] splitRecord(String record){
 String[] splitted = record.split(",");
 String[] result = new String[3];
 System.arraycopy(splitted, 0, result, 0, splitted.length);
 return result;
}

みたいな処理を通せば配列のサイズは統一される。

けれども、普通はクラスを定義して
CSVレコード1行からインスタンス1コを生成するファクトリメソッドを用意する。

そんなにも文字列で処理したい理由って何?

538 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 10:21:01 ]
import java.io.*;

public class File {
public static void main(String[] args) {
try{
FileReader f = new FileReader("test.txt");
BufferedReader b = new BufferedReader(f);
String s;
while((s = b.readLine())!=null){
System.out.println(s);
}
}catch(Exception e){
System.out.println("ファイル読み込み失敗");
}

}

}

ここのソースのwhileの部分がすこし理解ができないので
教えてください。

539 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 10:24:48 ]
s = b.readLine() は一行読んで代入
で、それが !=null の間だけ実行ってことは読み込めなくなったら終了ってこと

540 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 10:37:54 ]
>>538
大雑把に言うと、b.readLineメソッドの戻り値がnullになるまで繰り返すんだけど、
その読み出した値を処理で使いたいからsに代入してる

541 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 10:46:23 ]
理解できました!ありがとうございます。
また質問があります

Syouhizei syouhizei1 = new Syouhizei();
syouhizei1.a = 9600;
syouhizei1.b = 1.05;
syouhizei1.kakezan();
       ↓

class Syouhizei {
double a;
double b;
double c = a*b;

void kakezan()
{
System.out.println(c);
}
}

とやるとどうしても結果が0,0になってしまいます。
理由ががわからないので教えてもたらいたいです。



542 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 10:53:45 ]
処理の順番を考えろ

543 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 10:54:15 ]
>>541

cが計算されるのはSyouhizeiがインスタンス化されたときの一回だけ
syouhizei1.keisan()を呼び出す時点でa,bになにが設定されていても既にcは
初期値で計算済だから0.0が表示される、と。

それ以前にaやbを外部から直にいじるのはちょっといやだな
パラメータで渡そうよ。



544 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 11:07:28 ]
順番が違っていたんですね、わかりやすく説明していただいて
ありがとうございました!
パラメータで渡したほうが見栄えがいいってことでしょうか?

545 名前:≠543 mailto:sage [2007/03/17(土) 11:14:44 ]
>>544
見栄えっつーか安全性の問題
デバッグもしやすいしね

コンストラクタとか勉強汁






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<251KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef