トップページ⇒tech
1001コメント338KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
過去ログ、関連スレッド、よくある質問とその回答、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/

これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、
wikiからのリンクをおたどりください。

以下のエラーが表示されて、途方にくれているあなたは、下のページへ。
「コマンドまたはファイル名が違います」
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
「Exception in thread "main" java.lang.NoClassDefFoundError: 」
http://www.wikiroom.com/java/?path%2Cclasspath

前スレッド
【初心者】Java質問・相談スレッド54【大歓迎】
http://pc5.2ch.net/test/read.cgi/tech/1096548618/

/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */

また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝なく存じます。

JavaScriptの質問は、ここでは受け付けていません。
Web製作板をご利用ください。http://pc5.2ch.net/hp/
0412デフォルトの名無しさんNGNG
javascript:GoSubmit()
とかがリンク先になってるページに
いけなくなってしまいました・・・。
どっかいじっちゃったのかな・・・。
押しても反応ないんですよね

ダレカ対処法を教えてください。お願いします
0413デフォルトの名無しさんNGNG
あっ本当にプログラムの板みたいですね
板違いだ(;´Д`)すみませんでした
0414393NGNG
>>392
そんな使い方できないのは当たり前だろと言ったつもりなんだが、
激しく釣ってしまったorz
392は、別のクラスのインスタンスの参照に同じ変数が使いたいのかと思って、
親クラスの変数を使いまわすしかないと言ったんだが。
せっかくなので丁寧に書かせていただきます。

クラスに関係なく同一スコープ内で同名の変数は定義できません。
変数にはそのクラスの参照ならいつでも代入できますが、
別のクラスの参照を代入することは出来ません。
その時、その変数が参照を保持しているかどうかは関係ありません。

だからPotiはDogクラスの変数としてならスコープが切れるまで使い続けられますが、
その範囲で同名の変数を定義することは出来ませんし、
Catクラスなどの他のクラスの参照を代入することも出来ません。
Potiという変数をDogクラスとCatクラス両方で使いたいなら、
親クラスの変数を使えば出来なくはないですが、
そのまま使うには、必要なメソッドが親クラスで宣言されていなければなりません。
0415デフォルトの名無しさんNGNG
>>411
calcはメソッドで、()を付け忘れているとか?
0416デフォルトの名無しさんNGNG
そもそもkeyInputが定義されていないとか。
KeyInputだったとか。
0417デフォルトの名無しさんNGNG
java初心者なのですが
pathの設定方法がわかりません。
マシンはWINXPです。

環境変数からC:\jdk1.3.1_02\bin;
を設定してもうまくいきません。
もともとWINに
設定されてたPathは消えてます。
0418デフォルトの名無しさんNGNG
>>417
Windowsも初心者だな。
0419デフォルトの名無しさんNGNG
>>417
バージョンによってというか、インストール先によって必要なパスは変わります。
JDKのインストールディレクトリはどこかわかりませんか?
0420デフォルトの名無しさんNGNG
>>417
>>1を100回読んで、>>1のリンク先も100回読んで、
それでまだわからなかったらまた来い
0421デフォルトの名無しさんNGNG
>んで、>>1のリンク先も100回読んで、

URLを100回読めと
0422デフォルトの名無しさんNGNG
>>411
マルチポストすんなボケ
0423デフォルトの名無しさんNGNG
「クラス」を日本語に訳すと?

型?
種?
0424デフォルトの名無しさんNGNG
型のほうじゃない?
0425242NGNG
antを使おうとしているのですが、以下のようなエラーがでてしまいます。
[javac] BUILD FAILED: file:C:/Program Files/eclipse/workspace/antTest/build.xml:5: Unable to find a javac compiler;
com.sun.tools.javac.Main is not on the classpath.
Perhaps JAVA_HOME does not point to the JDK
最初はECLIPSEで使っていてダメだったので、antのバイナリをダウンロードしてきて、ECLIPSEからではない方法でもやって
みましたが、同じエラーが出てしまいます。
そして、JAVA_HOME、ANT_HOMEの環境変数はもちろん設定してあります。
コンパイルしようとしているファイルの存在するディレクトリではjavacは通ります。JDKのextフォルダにantをおいておくとだめという
不都合が報告されているようですが、そこにおいているわけではないですし。
もうお手上げです。
どなたか教えてください。orz
0426デフォルトの名無しさんNGNG
>>425
「ECLIPSEからではない方法」が不明なのだが、
コマンドラインからAntを実行するのなら、実行前にコマンドラインで
set ANT_HOME=(Antインストールディレクトリ)
set JAVA_HOME=(JDKインストールディレクトリ)
set Path=%ANT_HOME%\bin;%Path%
としてから実行してみれ。

まさか JAVA_HOME、ANT_HOME が全角じゃないだろうな?
揚げ足取りでも何でもなく、質問のレベルからそんな恐れも見え隠れする。
0427デフォルトの名無しさんNGNG
ある画像をJLabelに貼ってるappletをhtmlファイルから開くとjavaコンソールで以下のエラーメッセージが
でてきます。例えば,eclipse上でappletを実行すると,正常に画像も読み取られエラーが出ないのですが,
htmlからだとなぜか以下のエラーが出てしまいます。
このコードは,300行くらいのやや複雑なものなのですが,試しに参考書に書いてる例題レベルの
appletをhtmlファイルで開くとなぜかエラーがでません。全く同じ画像を読み込んでいるのにもかかわらず
です。

正常に画像が読み取れ,以下のエラーが出てこないように出来る方法どなたか教えていただけないでしょうか。



java.security.AccessControlException: access denied (java.io.FilePermission .\photo\small.gif read)
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkRead(Unknown Source)
at sun.awt.SunToolkit.getImageFromHash(Unknown Source)
at sun.awt.SunToolkit.getImage(Unknown Source)
at javax.swing.ImageIcon.<init>(Unknown Source)
at javax.swing.ImageIcon.<init>(Unknown Source)
at photo.read3jpg.init(read3jpg.java:232)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

0428デフォルトの名無しさんNGNG
アプレットの典型的なパターンだな
0429デフォルトの名無しさんNGNG
質問に答えてる人に質問なんですが、
どうしたらそんなに詳しくなれますか?
また、どんな勉強法をすればいいですか?
0430デフォルトの名無しさんNGNG
>>429
私は詳しくないですが、一般的に言われているのは、

1.まず、言語仕様を(本などを読んで)きっちり覚える。
2.コードをたくさん書く。
3.コードをたくさん読む。
4.言語仕様の変化などに注意しつつ、2-3を繰り返す。
0431242NGNG
>>426
原因がわかりました。JAVA_HOME に C:\j2sdk1.4.2_04\bin とバイナリの
フォルダまで含めていました。初歩的な失敗でしたね。
ご迷惑おかけしました。
0432デフォルトの名無しさんNGNG
どんな問題でも、原因がわかった時、
そのミスはすでに自分にとって初歩的なものになっている。
とか言いますな。
0433デフォルトの名無しさんNGNG
if (Koizumi.Go("Niigata")==true)
{
  Okada.Say("総理が被災地に行っても何の役にも立たない。パフォーマンスだ!");
}
else
{
  Okada.Say("被害者感情を無視した対応だ!");
}
0434デフォルトの名無しさんNGNG
>433
メソッドの最初を大文字にしない
ifの==trueは不要
ついでに岡田も日本には不要
0435デフォルトの名無しさんNGNG
HashMapでIteratorを使って順に要素をたどっていく事はできますか?
また、それらの順序はいつも同じなのでしょうか?
あとiteratorメソッドでIteratorを得る時は、毎回最初の位置へリセットされるのでしょうか?
駄文で申し訳ありませんが、どなたがご回答おねがいします。
0436デフォルトの名無しさんNGNG
>>435
LinkedHashMap使え
0437デフォルトの名無しさんNGNG
> HashMapでIteratorを使って順に要素をたどっていく事はできますか?
values() で値のコレクションを、keySet() でキーのコレクションを得られるので、お好きにどうぞ。

> また、それらの順序はいつも同じなのでしょうか?
順序が同じである保障はない。

> あとiteratorメソッドでIteratorを得る時は、毎回最初の位置へリセットされるのでしょうか?
若干意味不明だが、Collectionのiterator()メソッドはインタフェースに定義された抽象メソッドにすぎないので、
実装依存になる、と答えておこう。
0438デフォルトの名無しさんNGNG
>>434
何をいっとる!
岡田は必要だ
0439デフォルトの名無しさんNGNG
Mapのiteratorは、

aMap.entrySet()で、Map.Entry型のCollectionを得る。
aMap.keySet()で、キーのCollection(Set)を得る。
aMap.values()で、値のCollection(Set)を得る。

などとして得られたCollectionに対してiterator()メソッドを呼び出して得る。
0440デフォルトの名無しさんNGNG
>>432 いやこの場合JAVA_HOMEを設定するのは場当たり的な対症療法
だからその域にも達してない。
425のエラーはコンパイラがみつからんっていうエラーだから、
eclipseから実行しているならantを実行する際build.compilerに
org.eclipse.jdt.core.JDTCompilerAdapterを設定して、かつ
External ToolsのJREタブでRun in the same JRE as the workspace.
にチェックを入れるのが正解。
http://help.eclipse.org/help30/topic/org.eclipse.jdt.doc.isv/guide/jdt_api_compile.htm
0441デフォルトの名無しさんNGNG
>>438
反面教師な
0442デフォルトの名無しさんNGNG

IBMJDK 1.1.8 for LINUXをダウンロードしようと思ってるんですが、
もうダウンロードできないようで・・・

入手方法ないですか?
0443ケータイからのアクセスNGNG
おいらのパソコンが、JAVAの開発しようと思って、Cドライブのautoexec batっていうファイルいじってたら、MS-DOSでしかパソコンが立ちあがらないようになってしまった….・゚(´Д`)゚・.
だれかMS-DOSでautoexec batの書き替え方教えて…
ちなみにOSは98です…
0444デフォルトの名無しさんNGNG
ばかかこいつ
OS入れなおせ。カスが
0445デフォルトの名無しさんNGNG
>>443
どう見ても板違いじゃ・・・
0446デフォルトの名無しさんNGNG
                 r--=ニ二"`' 、
               r-=!,.i‐:、ヽヽ`'i  .\
                | |`‐r'-‐ヽヽヽ.ir=:、 |
               ',|', |、、.riェ|i:i .|ィ;!l .!
            ! /')、| ` ,!' | /゙rく |
            _/ /_ `、-‐' !',. '゙ `!_
         r‐‐'i‐,、' ノ .ヽ__,._-,..-‐'ニ:i`、_
           / .フノ///   /rl i_,.-'" / '; `ー-: ,,,,___
       ,./  `i゙ ゙ノ  ./" |  i-‐'_,:,'_ _,ゝ   ,.:-‐`=、
      .,:'゙!'ー-´<"-i'"iくr''、i"`i_.',// `'-、   ,:'     i
     ,.:'  ヽ  / .,'、 /_ i_,,,_ .r:、! ./   ,.:'  .,'       |
    ,:'    `-'!'i i r'iヽヽ' |`| .| /  ,:'           .|
   ./       ,.! ,' .| `i'゙i,l''i_,) `゙.,'   ./    、       |
  r'"      / i  | .|ヽl,.:'/ .l  /     ヽ      |
 i゙     ./   |  | .| |:'O   .| ./      |      |
┌‐────┐-‐'i  .l .| |    | ,'         |      |
│ミツルギSE.|   |  ',.| | O  | .i        |      |
├───‐─┴─────────────────────────
| そんなことより議題を進めようか。
|
└──────────────────────────────‐
0447デフォルトの名無しさんNGNG
>>444
てめーこそ、カスだろ。
人が困ってるのに何て事言いやがる。
てめーのようなキモオタは、ネットでしかでかい口叩けん癖に
現実じゃ人前に出ただけでガクブルなんだろが。
このクズ。
0448デフォルトの名無しさんNGNG
               i、 ノ,.'‐'´,.-'ニ'-‐ 'ッ
               .N .!' / , , -;=‐‐‐<
               !_,,. '_‐,ヽ_'´r''_,ニニ'' `ー,.-
              ノ,ニ-,._,`ーi`.i´ヽー-.、く
            _ /.i,='三_-' .ノヽ!ノ,!、ヽヽ.、ヽ
        ,.-r‐r',ノ'っ'ヾ三='‐'ヽノ'i;ド' '、i,ヽヾ`
        ,1,.!..iン' //.  'ーi'_,,,..   ノ  '_ゝN`
       ./ 7´  ノ       ヽ.,, ,'_,'-‐'"´,. ‐`-,..,,_
       ,iー'  ,ィ'       '"i´ ,ゝ、/'./.,.'.,.'´r',`'"''''ー.、
      io'iー‐ 'i       ,ィ7/.`! ,イ /././ /./, '       .',
      l l   .l     ,.//〃 .,' ,.'/././././././       i
      /`7 ''''  ヽ  ノ////  !/.,'./././././ ,'         !
      !     .i r'´ /i,'.,'/  ./ /.,' ,' ,' ,' ,'./        ,'
      ',     iノ-.、i.i.i.i.i  ./,'.,' ,' ,' ,' ,' ,!'        , '
      i     i';  l !l.l ! ,'.,'.,' ,' ,' ,' ,'.,ヘ,_        ,.'
      |     ,'  .!',',','i ,' ,'.,' ,' ,' ,' i r'ー'‐`=、、   ./
      ';      _,,.!i」,!r'ー'‐ー'‐' ''"`i;    `ヾ'、ノ
┌‐────┐_ , ‐'´./ /              ,./
│ゴ ド ー SE |!r',.  i,__.i             //
├───‐─┴────────────────────―────
| なんで怒ってるのか知らんが
| 助けたきゃ勝手に助ければいいだろ
└─────────────────―────────────‐
0449デフォルトの名無しさんNGNG
443のがキモオタだろw
98ユーザーって昔のエロゲやるために98使ってるんだよwww
0450デフォルトの名無しさんNGNG
Dog Poti と Cat Potiの話ですが
インスタンスを消去することはできないのですか?
消去できないとなると、どんどんインスタンスが増えることになり
メモリがいっぱいになってしまいそうな気がするのですが・・・
0451デフォルトの名無しさんNGNG
>>450
うるせーばか釣りはもうたくさんだハゲ
0452デフォルトの名無しさんNGNG
すみません、ちょっと質問なんですが、
あるフォルダにある.jarファイルを全部クラスパスに通したいとき、

(あるフォルダ)\*.jar

という書き方はできないのですか?
0453デフォルトの名無しさんNGNG
できない。つーか環境は?
0454デフォルトの名無しさんNGNG
J2SE SDK v1.4.2_05 を落としたのはいいけど
プラグインの設定をしたところでエラーになるし
パソコンは何だか重いし・・・
これ、向いてないからいれるなってことでしょうかね?
OSはWindows98 SE なんですけど・・・
0455デフォルトの名無しさんNGNG
未だに98SEってありえない
0456デフォルトの名無しさんNGNG
こんばんは、よろしくお願いします。
マウスを手や、矢印の形に変化させたいのですが、
どのような、classを使うのでしょうか。
0457デフォルトの名無しさんNGNG
クラスじゃなくてメソッドです。
各コンポーネントのsetCursor()を使いませう
0458452NGNG
>>453
レスありがとうございます。
環境はxpにjava5です。
やはり何度試してもできませんでした(涙
不便です。

0459デフォルトの名無しさんNGNG
>>456
java.awt.Cursor#getPrefdefinedCursor(int) とか
java.awt.Toolkit#createCustomCursor(Image,Point,String) とか
を使って望みの形のjava.awt.Cursorのインスタンスを作ってから
java.awt.Component#setCursor(Cursor) する。
0460デフォルトの名無しさんNGNG
>458
どーしよーもないほど多いならextフォルダに入れてしまっては。
0461デフォルトの名無しさんNGNG
>>458
Ant使えば?*.jarできるよ。
0462デフォルトの名無しさんNGNG
>>458
java @setting.txt
こうやるとsetting.txtにコマンドラインの中身書けたようなキガス
0463デフォルトの名無しさんNGNG
>>452
javac -Djava.ext.dirs=JARDIR1;JARDIR2 Hello.java

試してみ
0464デフォルトの名無しさんNGNG
>>460 >>463
拡張クラスはユーザクラスとクラスローディングの優先度が違うし、
シールされたjarの動作も違ってくる。
面倒でもユーザクラスとして使うjarはユーザクラスとして使うしかない。
0465456NGNG
>>457さん
>>459さん
へ。
早々にこんなに詳しく教えていただきありがとうございます。
無事できました。
0466デフォルトの名無しさんNGNG
初心者です。
最近Strutsをはじめました。

画面出力するデータをValueObjectに保存する方法にしているのですが、
このValueObjectをスレッドセーフにするには
Serializableにしないといけないのでしょうか?
0467デフォルトの名無しさんNGNG
>>466
出力用のValueObjectをスレッドセーフにしなければならない、とはどんな設計だろう?
そもそも、HttpSession に入れるのであればスレッドセーフかどうかに関わらずSerializableに
する必要があるし、ServletRequestに入れるのであればスレッドセーフとか考えなくていいと思うけど?
0468デフォルトの名無しさんNGNG
>>466
そのValueObjectをImmutableにすればOK。完璧にスレッドセーフになる。
0469466NGNG
>>467
ServletRequestに入れるのであればスレッドセーフにしなくてもいいのですか?
ServletRequestに入れる前に書き換えられる可能性は考えなくても良いということですか?

>>出力用のValueObjectをスレッドセーフにしなければならない、とはどんな設計だろう?
ValueObjectがスレッドセーフになっていなかったら、
読み出す前に書き換えられる可能性があるのではないかと思ったのですが。
もしかして考え方間違っています?
0470デフォルトの名無しさんNGNG
>>468
それって一般的な方法ですか?
0471デフォルトの名無しさんNGNG
>>470
一般的
0472468NGNG
>>470
一般的もなにも、属性を持つオブジェクトをスレッドセーフにする唯一の方法。

ただし、>>467の言うように、本当にそれらをスレッドセーフにする必要があるのかどうかをまず考えれ
0473デフォルトの名無しさんNGNG
>>469
逆に聞くけど、requestスコープのオブジェクトが他のスレッドから書き換えられる場合ってどんな場合?
ちょっと想像つかない・・・

俺もImmutableってのも有りかもと思った。
0474466NGNG
>>468
調べてみましたがImmutableって内部変数の変更不可って奴ですか?
それだと困るんですが。。。
0475466NGNG
>>473
ActionでValueObject生成して、
値をセットして、
RequestにsetAttributeしようかと思っているのですが。

このやりかただとオブジェクト生成時点からRequestにセットするまでの間は、
書き換える可能性があるのかな?と思っていたのですが。
0476デフォルトの名無しさんNGNG
>>475
Action以外のスレッドに渡す可能性があるなら書き換えられるだろうな
0477デフォルトの名無しさんNGNG
>>475
>値をセットして、

どこから持ってきた値だこの馬鹿野郎
0478デフォルトの名無しさんNGNG
>>474
じゃぁそのValueObjectをスレッドセーフにするのはあきらめれ。
複数スレッドで共有しないようにすればOK。
0479466NGNG
>>477
なんでもいいのですが、
例えば前画面から送られてきた値から算出した値とか、
データベースの検索結果から取り出した値とかですが。
0480デフォルトの名無しさんNGNG
>>475
> このやりかただとオブジェクト生成時点からRequestにセットするまでの間は、
書き換える可能性があるのかな?と思っていたのですが。

プログラム中で他のスレッドに明示的に渡してなければOK。
Actionのexecute()メソッドそのものはスレッドセーフだ。
0481466NGNG
>>480
そうですか。
execute()メソッドの中で定義していれば問題ないんですか。
ValueObjectのインスタンスが使いまわされて、
同時アクセスの際におかしな挙動になるのではないかと心配してたのですが。
余計な心配でしたか。
0482デフォルトの名無しさんNGNG
>>466
ttp://www.jajakarta.org/struts/struts1.1/documentation/ja/target/api/org/apache/struts/action/Action.html

他のリソース(JavaBeans、セッション変数等)へのアクセスは、それらが保護を要求する場合は同期化しなくてはいけません(しかしながら、一般的にリソースクラスは必要に応じて自分自身を保護するように設計すべきです)。
0483デフォルトの名無しさんNGNG
>>482
おっさん、的外してるよ
0484デフォルトの名無しさんNGNG
>>481
> ValueObjectのインスタンスが使いまわされて、
使い回すような設計・実装をしているのか?
0485466NGNG
>>484
execute()が同時アクセスで複数同時に実行されたとき、
ValueObjectのインスタンスがひとつなら値が保障されないのではないですか?
という意味です。
「使いまわす」という表現は間違っていました。
0486デフォルトの名無しさんNGNG
おもしれーな。質問内容の揚げ足とるやつばっかり。それにまじめに答え返して、更に揚げ足取られる(藁Java厨ってこんな奴ばっかなのか?466もちゃんと言葉を選んで聞かねーと答えまでたどりつけねーぞ(藁
0487デフォルトの名無しさんNGNG
おまえモナー
0488デフォルトの名無しさんNGNG
>>486
荒らしは(・∀・)カエレ!
466からは非常にスムーズにQとAが続いてるんだが。
初心者をなめちゃあかんよ。
0489466NGNG
>>486
いやいや、私が素人なんでうまく考えを伝えられないんでしょうがないです。
少しずつでも理解できるようにしたいです。

それまで、皆さんが付き合ってくれるかが一番の問題ですが。
0490デフォルトの名無しさんNGNG
>>485
execute()の中で変数宣言して、newして、Request/Responseにしか渡してないなら
複数スレッドから共有されることはない、
からオブジェクト自身のスレッドセーフ性は考慮しなくても大丈夫。

複数同時にexecute()が実行されたなら、それぞれのリクエスト処理中に別々のObjectが生成されるだけ。
0491デフォルトの名無しさんNGNG
こういう奴が量産されない為にも、初心者はスレッドとスタックの基礎を必ず学んでおいてほしいと思う。
0492デフォルトの名無しさんNGNG
>>485
execute()が同時アクセスで複数同時に実行されたときは、それぞれのスレッド中で別々に処理されるから無問題。
0493デフォルトの名無しさんNGNG
そもそも、元の質問(>>466)にあった
Serializable は synchronized の間違いではないか、とチョットつっこんでみる。
0494デフォルトの名無しさんNGNG
>>491
学んでいる最中だからこそ初心者というのだよ。
466みたいなのは良いんじゃない。素直で向上心ありそうだから。
0495466NGNG
>>490>>492
execute()メソッドで何らかのオブジェクトのインスタンスを生成する場合は
リクエストごとにインスタンスが生成されるということでよいですか?
ということは、execute()でインスタンスを生成するオブジェクトはスレッドセーフを
意識する必要は無いということですか。


VBでCOM+作成したときはクラス変数を持ったDLLをコンポーネントサービスに登録し、
ASPで呼び出していたのですが、
同時アクセスの際にクラス変数が
他のリクエストで呼び出されたときに書き換えられて正常な動作をしなかったので
同じようなことになるのかと思ってました。
先輩にクラス変数は使用するなって言われたもので。


>>494
ありがとうございます。
皆さんの貴重な時間を費やしていただいているので、
せめて「理解しました」という書き込みをしたいと思います。


>>491
時間を見つけて勉強します。
0496デフォルトの名無しさんNGNG
>>495
「クラス変数は使用するな」は正しい。
execute()の中で宣言する変数はクラス変数ではなく、ローカル変数。
The Struts Users Guide の 4.4.1 Action Class Design Guidelines にも
「Only Use Local Variables」とある。
Actionのフィールドとして宣言したクラス変数は複数スレッド間で参照される恐れがあり、
このオブジェクトはスレッドセーフではなくなる。
execute()メソッド内のみで閉じていれば無問題。
0497ゆうき ◆MU2000.LWc NGNG
>>375
勝手に作った玉クラスで画像を入れる変数って、どうやって定義するんですか?
http://ww22.tiki.ne.jp/~y-shirakawa/tmp/tamatest1.html

  orz...
0498466NGNG
>>496
Actionではそうなりますが、
気にしていたのはValueObjectはクラス変数を持たなければならないということです。
今回でいうValueObjectのようにexecute()メソッドでインスタンス化されるオブジェクトは
複数のスレッド間では参照されないということでよいのですね。

MSのアプリではADOのRecordSetかSessionオブジェクトにセットするしかありませんでしたのでValueObjectみたいなものは作成できないと言われた(と思う)もので。
その辺のギャップがいまいち分かりませんでした。


>>491で言われているように根本的な知識が無いのかもしれませんね。
しかし、Webアプリ作っている方々は皆さんその辺を十分理解したうえで作成してるんでしょうか?
私の周りではあまり気にしてないようで聞いても誰も明確な回答をもらえませんでした。

すいません。仕組みを理解しとかないと気が済まない性質で。。。
0499デフォルトの名無しさんNGNG
>497
玉クラスで画像を管理してなかったときはどこにどーやって画像を持ってました?
それを玉クラスに移して、setter/getterなりを備え付ければいいだけですぞ。
0500デフォルトの名無しさんNGNG
>>498
> 気にしていたのはValueObjectはクラス変数を持たなければならないということです。
気にすることはない。

> MSのアプリでは
逆に俺はMSのアプリを知らないので何とも言えないが・・・・

> しかし、Webアプリ作っている方々は皆さんその辺を十分理解したうえで作成してるんでしょうか?
知っておかないとマズイだろう。バグやセキュリティホールの温床になる。
0501デフォルトの名無しさんNGNG
>>498
VBの「クラス変数」ってのはインスタンス変数のことか?
Javaだと、
インスタンスに属する、インスタンスメンバ変数と
クラスに属する、staticメンバ変数(クラス変数)と呼ぶ。

static変数は使用してはいけない。そのクラスのすべてのインスタンスで共有されるから。


VBは奇妙な仕様が多い上に知識のある人間が極端に少ないから、
VBでの知識・経験は忘れた方がいい。
どこまで正しいのか、他の言語でも一般的な事柄なのか判断しにくい。
0502501NGNG
自分で書いて思った。Javaで「クラス変数」という言葉はあまり一般的でないと思う。
使っている人がいないわけじゃないが。

インスタンスに属するもの:インスタンスメンバ、インスタンス変数、インスタンスフィールド
クラスに属するもの:static変数、staticメンバ変数、staticフィールド

あたりが一般的だと思う。
0503デフォルトの名無しさんNGNG
>>502
クラス変数(class variable)はJLSでもバリバリ使ってるし、
Java界隈でも一般的にも使ってると思うが。

「staticメンバ変数」ってのは初めて聞いた。
0504デフォルトの名無しさんNGNG
メンバ〜はC++だね。
0505466NGNG
>>491で書いてることや、
WEBアプリとスレッドセーフなどについての知識が得られる良い書籍はありますか?
0506デフォルトの名無しさんNGNG
外部ファイルの内容の、特定の1行だけを読み込みたくて
LineNumberReaderを使い、以下のようなプログラムを組んでみました。

例えば、5行目を読み込みたいときには
while(5>reader.getLineNumber()) {
  line = reader.readLine();
}
としています。

しかし、これでは1万行目を読み込むようなことがあった場合に
効率が悪いような気がします。
他に方法はあるのでしょうか?
0507デフォルトの名無しさんNGNG
>>506
簡単に思いつくのは
・一行の文字数かバイト数を固定する
・全ての行について(何行かごとでも良いけど)
 その行がファイル先頭から何バイト目から始まるかをどこかに保存しておく
ぐらいかな。
0508デフォルトの名無しさんNGNG
>>506
・解決策1
1万行ぐらい全然たいしたこと無いから気にするな。
・解決策2
FileInputStreamからbyte[]でまとめて取ってきてbyteのまま改行を数える。
0509デフォルトの名無しさんNGNG
java.nio.channels.ServerSocketChannelなど勉強しようと、
ttp://java.sun.com/j2se/1.4.2/docs/guide/nio/example/NBTimeServer.java
ttp://java.sun.com/j2se/1.4.2/docs/guide/nio/example/TimeServer.java
ttp://java.sun.com/j2se/1.4.2/docs/guide/nio/example/TimeQuery.java
を実行しました。
PC1台しかないので、鯖もクエリもlocalhost。

で、クエリの実行結果が
"java.net.ConnectException: Connection refused: connect"なんです。
どうしてなんでしょう・・・
java.net.ServerSocket/Socketのサンプルだとlocalhost同士でも
うまくいくのですが・・・

環境は
OS:Windows XP Professional+SP2
J2SDK:1.4.2_04とJ2SDK1.4.2_06
ファイアウォール切ってます。
0510デフォルトの名無しさんNGNG
>>509
接続拒否されてる
0511デフォルトの名無しさんNGNG
>>509
サンプルをそのままコンパイルしていて、
コマンドライン引数でのポート番号指定をしていないのでは?

そのサンプルは実行するマシンでポート 13 が使われている場合を考慮してか
TimeServer はデフォルトで 8013、NBTimeServer はデフォルトで 8900 を使う。
ところが TimeQuery はデフォルトでポート 13 につなぎに行くようになってる。
■ このスレッドは過去ログ倉庫に格納されています