だれも立てないからとりあえず立てとくよ。 面倒だったんでほとんどその 7 を流用させてもらいました。間違い、 リンク切れ、追加等ありましたらお願いします。
お疲れさま。
12 :
デフォルトの名無しさん :02/05/04 05:33
って、これJavaオンリーのフル3D?
3D Duke キモイ # とか言うと追っかけられそうだな (藁
よく考えたらマスコットのある言語って Javaだけか?
人 / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ノ ● <これからはモナーに代わり俺が担当するぜ VV \___________________
18 :
デフォルトの名無しさん :02/05/04 07:54
実行したらアプレットビューアがでません。 XPのコマンドプロンプトが問題なのか何かが足りないのか さっぱりです??? どうか教えてください。お願いします。
おまえの質問がさっぱりだよ 何をどうしたのかわかんねーよ
20 :
デフォルトの名無しさん :02/05/04 08:49
JAVAの開発に適したおすすめのエディタを教えてください。
・sakuraエディタ ・JDEE
22 :
デフォルトの名無しさん :02/05/04 09:14
sakuraエディタ の何がいいの?
矢巨型編集はよく使う→sakura
>>24 エッジかよ!?
小せえよ!
タイル状にすれってか?
インターフェースのうまい利用法 どなたか解説して欲しいのです
27 :
デフォルトの名無しさん :02/05/04 12:47
>>26 結局ルール作りみたいなものだから、
必要を感じないなら無理に使うこともない。
いずれそのうち、使わざるを得ない状況に陥る。
29 :
デフォルトの名無しさん :02/05/04 13:03
クライアントのiアプリとサーバーがわで 圧縮、解凍、 暗号化、複合化の両方をやるのですが そうだとしたら、両方の言語を統一したほうがいいですよね? 携帯でJAVAならサーバーもJAVAサーブレットに したほうがよいと思われますか?
31 :
デフォルトの名無しさん :02/05/04 13:56
>30 好きにしろ
hopper って いつ頃出るんだっけ?
>>30 ×複合化
○復号化
説明が足りませんでした。 Exception in thread"main"java.lang.NoClassDefFoundError: というエラーが出てしまいます。アプレットビューアを表示する ものに限ってエラーがでます。なぜでしょうか?
アプレットビューワーは appletviewer applet.html で起動するんだけど。 java applet とかってやってないか?
>35 違うエラーが出ると思う。 まともな質問になるまで相手しない方が良い。
いま、JavaTM 2 SDK, Standard Edition ドキュメントV1.4.0 マターリ読んでるんだが JDBC(Java Database Connectivity)って書いてある 「JDBCはJava Database Connectivityの略じゃない」などと 言っていた気がしたのだが・・・
35さん 分かりました。ありがとうございます。
39 :
デフォルトの名無しさん :02/05/04 18:58
inheritanceやらinterfaceやら理解できないけど、全部コピペで作ればとりあえず動くものは作れるよね? で、しばらく作っていって、「あーこーいう機能がほしーなー」 と思った時点でまた勉強しなおせばいいよね?
人に同意を求めるな
>>39 JavaWorld を定期購読してデザパタ本とリファクタリング本を何となく読んでみれ。
だめです、って言われたらどうするつもりなの?
0からコーディングするつもりです
最近は コピー & ペーストの切り貼りプログラムのことを 「0からコーディングする」って表現するみたいですね。 勉強になります。
最近はinheritanceやらinterfaceやら使ったプログラムのことを 「0からコーディングする」って表現するみたいですね。 勉強になるますた。
47 :
デフォルトの名無しさん :02/05/04 20:29
他人の作ったソースをぱくるときは、inheritanceやinterfaceが必須になるの?
>>47 そら、人のソースぱくるにはソースが読めることが最低条件だろう。
49 :
デフォルトの名無しさん :02/05/04 22:01
ezplus向けにアプリを作ろうと思ってるんですが、 画面(キャンバス?)の座標を指定して、 そこのrgb値を得るメソッドってありますか? getCanvasColor(x,y)みたいな感じでイメージしてるんですが。 分かりづらい質問ですいませんが、 分かる方いましたら教えて下さい。
50 :
デフォルトの名無しさん :02/05/04 23:15
import java.awt.*; import javax.swing.*; class a extends JFrame { public static void main(String[] args) { setSize(250,250); setTitle("a"); setVisible(true); } } なんでこれでコンパイルできないの?
51 :
デフォルトの名無しさん :02/05/04 23:23
>>50 main はstaticメソッドだから。
>>50 とても明快なエラーメッセージが出てるはずだが。
>>49 それってむりなんじゃないの?
そもそも画面は自分がかくものだし。
いったん表示したものはアクセスできないよ
>>50 マジレスしよう。
インスタンスを作ってないからだ。
インスタンスが何なのかは自分で調べろ。
55 :
デフォルトの名無しさん :02/05/04 23:57
javax.swing ってなんで X ってはいるの?
>>54 そっか、mainはstaticだけどその中のメソッドはstaticじゃないんだ。
>>55 javax の最後の x のことか?
まぁ、そういう名前なんだからしょうがない。
そういうもんだと思うしか。
一部のVM(ブラウザ?)で java. から始まるパッケージ名が増やせない
とかいう情けない実情があったらしい。
で、しかたないので javax. にしたと…。
もう慣れちったから、どうでもいいや。
59 :
デフォルトの名無しさん :02/05/05 00:42
初心者ですいません javaでGridLayoutではbottonしか並べられないんですか? panelをたくさん並べたいのですが・・・
60 :
デフォルトの名無しさん :02/05/05 00:42
>>55 元々オプション扱いだったのが標準ライブラリに
格上げされたからじゃなかったっけ?
本来javaxはオプションライブラリにつかうパッケージ名。
61 :
デフォルトの名無しさん :02/05/05 01:00
アプレットのGraphicsクラスのオブジェクトに、 drawStringで長文を書込むと、 折り返されずに描画領域からはみ出てしまうのですが、 はみ出さずに済むメソッドってありますか?
>>61 ありません。
TextArea を使うか、自前で表示する長さを計算しましょう。
FontMetrics クラスを使えばいいと思う。自信ないけど。
63 :
デフォルトの名無しさん :02/05/05 01:13
独習Javaという本で勉強中のものだす。 本のとおりにインストールしたのだが、コンパイルはできるのに 「Exception in thread "main"java.lang.NoClass DefFoundError:Example1」 というエラーが出て実行できなかった。 インターネットで調べてみると環境変数のCLASSPATHが変な風に設定されていると こういう現象が起きるのだそうだ。 それで、DOSプロンプトでsetって入れて見たところ、変な設定も何もCLASSPATH自体なかったんだよ。 で、試しに環境変数にCLASSPATHを.(ポチ)で新規に追加してみたら、実行できるようになったんだ。 これって間違ってる?長時間使うとWindows不安定になるとかないですか? CLASSPATHはオプションにした方が良いとか書いてあったので。 オプションにしてみても動かなかったんだけど。。 ちなみにWindowsXPだよ。
>>63 オプションにどういうふうに書いたのか示さないと、答えようがないじゃないか。
一行丸ごと書きましょう。
ちなみに、環境変数で CLASSPATH=. と、やっといて、まったく問題ない。
65 :
デフォルトの名無しさん :02/05/05 01:48
問題ないんですか!ありがとう。 Robocode作るぞ。 オプションはこんな感じだよ。この時はまだ環境変数にCLASSPATH追加してないよ。 java -classpath .;C:\Java Example1 今再現させようと思って、環境変数のCLASSPATH削除して、リブートしてやってみたんだけど、 なんか動くんだよね。 java Example1 これでも動く。 不思議だなー。スペルミスのはずはないんだが。
Swingって、ベータ版のとき何回かパッケージ名が変わったらしいね。
67 :
デフォルトの名無しさん :02/05/05 01:57
>>65 コマンド打つとき
java Example1.java ってしてなかった?
いや、俺の場合なんだけどさ。
(懐かしいなぁ・・・ 徹夜したよ。ワラ)
>>65 環境変数 CLASSPATH が設定されて無い場合は、
自動的に . が CLASSPATH となる。
で、下のパターンで動くわけだ。
上のパターが、再現しないのならしかたないな。
とりあえず気にしなくてもいいかと。
>>66 Swing1.0.2 の頃は、com.sun.java.swing
JDK1.2 に java.awt.swing となるはずだったが、いろいろあって、
javax.swing になった。
で、あってるかな?
>>69 あぁ、そうそんな感じ。なんかで読んだ記憶がある。
その頃から追っかけてた人は、色々振り回されて大変だったのかな。
まあ、たいていエディタの置換で終わったけど。 リリースしちゃったヒトも、「動作保証バージョン」 を指定しとけばすむ話で... むしろ、ユーザはいくつかのバージョンをインストール しとく必要があったり。
sun.net.* パッケージもあったな もちろん、いまでいうjava.net.* ソケットの実装のしかたが違うので困ったよ
73 :
デフォルトの名無しさん :02/05/05 03:51
javac -target 1.3 などとすると JDK1.3でないと動かないプログラムを作れますが、 "1.2用のプログラムを実行するときは1.2用のライブラリを 使い、1.3用のプログラムを実行するときは1.3用のライブラ リを使う"方法って無いでしょうか?
74 :
デフォルトの名無しさん :02/05/05 03:55
1.3、1.2の二つがインストールしてある場合 実行時に-classpassオプションつけるしかない ただし、環境変数にはC:\jdk1.3\binなどのPATHを 設定せずに、プロンプト内でsetPATHすればいいと思う あくまで、予想
75 :
デフォルトの名無しさん :02/05/05 03:58
かなり初心者ですが、お願いします。 一応検索したのですが、よくわからないので質問させてください。 今、sunのサイトから、API仕様(v1.3.0の日本語)を読んで、 いくつかのメソッドを試したりしてます。 で、それぞれのクラスで用意されたフィールドの値の一覧 みたいなものってどこかに載っていますでしょうか? 例えば、java.awt.JOptionPaneクラスの OK_OPTION と言うフィールドは、 showConfirmDialog などのメソッドで、 ユーザが'Yes'を選択した場合の返り値(int型)です。 と、そこまでは説明されているのですが、 それが実際にはいくつの値であるかを知りたいのです。 今は、とりあえず一つずつフィールドを出力して確認してるのですが、 そんなことせずに、一覧表みたいなものが無いかなと思って探しています。 それとも、そもそもフィールドの値と言うのは知る必要ないのでしょうか? 長文すいません。
WinのDLLとかUnixのsoとかだと、 実行すると適切なバージョンのライブラリが選ばれますけど、 そういう具合いにはいかないんでしょうか? 単に java classname とやると、適切なバージョンのライブラリを 選ぶというのは無理?
>>75 普通は知る必要ないがデバッグの時は知りたいかも。
JDKをダウソロードするとsrc.zipというファイルの中に
ソースが入っているから、そこの定義を嫁。
78 :
デフォルトの名無しさん :02/05/05 04:10
static フィールドなら System.out.println(JOptionPane.OK_OPTION); で、わからない?
javah javax.swing.JOptionPane を実行して、出力されるへッダを見る。
80 :
デフォルトの名無しさん :02/05/05 04:21
同じソースを再コンパイルした時にオブジェクトファイルを 上書きするようにしたいだけど、どうすればいいんですか? 今いちいちゴミ箱に捨ててるんだけど、大変だよ。 ほんとにスマソ
81 :
デフォルトの名無しさん :02/05/05 04:25
>>80 事故解決
javac test.javaを
javac test*ってやってたYO!
>>80 上書きされないの??
バッチファイルで消す&コンパイル。
JDK1.2以降で追加されたワイルドカードを勝手に 展開してくれるありがた迷惑な機能を殺す事って出来ます? 現在、俺のやってる対処法は、batファイルで コマンドライン引数全てを "" でくくる、って奴なんだけど。
84 :
デフォルトの名無しさん :02/05/05 09:47
コマンドラインのzip操作プログラムを作ってると考えてください。 zip extract test.zip * で test.zip の中の全ファイルを解凍するコマンドとする。 ところが上記の機能のせいで zip.main に渡されるのは extract test.zip カレントフォルダにあるファイルその1 カレントフォルダにあるファイルその2 カレントフォルダにあるファイルその3 ... となっちゃうわけ。 Unixだとワイルドカードの展開はシェルの仕事らしくて、 Windowsでも同じように、ってんで必要無いのに勝手に ワイルドカード展開してくれるんですよ。この機能を 殺したいんだけど、上記のbatファイルで 全引数に "" を付加する以外で良い方法あったら おしえてほしーんですが。
>>85 イマイチわからんが
*を引数にせず、-allとかにしてみたら?
相談に乗ってもらってて悪いんだけど、 ワイルドカードって分かるよね? dir *.txt とかやるやつ。
""でくくるんだと何故ダメなんですか? Unixだと普通そうしますが。
いや、だから "" でくくる以外の解決法があるか、というのが 今回の相談のキモなんですが。
>>86 のいっているのは
*を使わずに-allオプションをつければ
ということなのでは?
つまり、
zip extract test.zip -all
悪いんですが、それだと *.txt とか *.c とか *.java に対応できません。
プログラム内で if(args[3].equals("-all") {//.........} ってことです
>>91 正規表現をサポートしたいのね?
やぱり、"*"が最適解だと思われる
*と?のかわりに他の文字を使う。@と#とか。 すなおに""ツカエや。
>>93 *.txtは正規表現じゃね─よ(藁
*と?のかわりに\*と\?を使う。
>>91 ワイルドカード文字を '*' から変える。$.c とか $.java とか。
それが嫌なら、できねーよ。あきらめろ。
>>97 JAVAによるGUIプログラミング(大村忠史著)
ISBN4-906391-63-X,ISBN4-906391-73-7,ISBN4-87783-015-4,ISBN4-87783-051-0
に解説されてるので参照されたらどうでしょう?
>>77 ,78,79
Res有難う御座いました。
src見ました。感激です。これで他の疑問もたくさん解決しそうです。
Res遅れてすいませんでした。
>>98 ありがとうございます。
書店で探して参照します。
100Get?かな
アスペクト指向言語きぼん。
いうまでもなく誤爆。 MixJuice 使っている人いる?などとお茶を濁して帰ります。
103 :
デフォルトの名無しさん :02/05/05 21:28
OSはMeなんですが。CLASSPATH環境変数を設定したいのですが、どこで書けば いいのか困っています。今持ってる本にはNTの例しか載ってなく、その方法だ とたどりつけないのでお願い致します。
autoexec.bat っていうか、MEは98SEにアップグレードすべきじゃないかな?
105 :
デフォルトの名無しさん :02/05/05 21:39
autoexec.batに書けばいいんですね。どうもありがとうございました。 98SEってなんでしょう?汗 全然無知でして、MEってあんまり向いてないって ことですか?
>>105 Windows MEは、Windows98SEに比べてバギーです。
107 :
デフォルトの名無しさん :02/05/05 21:46
馬鹿にされることを覚悟して、質問します。 Javaを今日からはじめまして、 Java2 SDKをDLしたいのですが、本に書いてあるとおりのアドレスに行っても、 「新しいバージョンになりました。」と出てきて、言ってみたら英語でサッパリわかりません。 一応訳せはしましたが、それでもサッパリです。 日本語版の 「Java2 Platform,Standard Edrion Ver1.3か1.4」をDLしたいのですが、 どなたか教えていただけませんでしょうか? 稚拙な文章&馬鹿な質問ですみません。よろしくお願いします
108 :
デフォルトの名無しさん :02/05/05 21:50
メンドイから、やだ。
110 :
デフォルトの名無しさん :02/05/05 21:54
バギーってどういう意味かわかんないんですけど汗。 107>ここのスレの上の方から行けるはず。 あとけっこう素朴な疑問なんですが、JAVAって実際今でもどのくらい使われて いるのか、重要性がある言語なのか?っていうのがわからないんですが。けっこう もうJAVA終わったとか書いてあることを見たこともあるので。
111 :
デフォルトの名無しさん :02/05/05 21:57
>>109 >>110 本当に有り難うございます。感謝です。
更に質問して、大変恐縮ですが、
DLするとき、多くてどれにすればいいのかわからないんですけど、
教えていただけませんでしょうか?
すみません。教えて君で・・・・・・・
113 :
デフォルトの名無しさん :02/05/05 22:07
>>12 メニュー(?)です。
J2SETM v 1.3.1_03 のダウンロード
日本語版 J2SE v 1.3.0 ドキュメント
とかです。
>>113 J2SETM v 1.3.1_03 のダウンロード
と、ドキュメントも必要になるだろうから両方
solarisぱっちはいらんだろう
117 :
デフォルトの名無しさん :02/05/05 22:16
押しボタンが 「了解」 とかなってるのがむかつくので 「OK」にしたい。
「へぇ」 としか答えようが無い質問がこの世には存在する。
>>118 「了解」 を 「Sir, yes sir!!」 と読んどけ。
>>118 実行時に
java ...ではなく
LANG=C;java ...とする
122 :
デフォルトの名無しさん :02/05/05 23:43
>>122 各国誤にすれば、ダウンロード後日本語通ってる
124 :
デフォルトの名無しさん :02/05/06 00:03
>>123 ってことは、普通にDLしても大丈夫ってことですね。
ありがとうございます。
125 :
デフォルトの名無しさん :02/05/06 01:31
Stringオブジェクトがaかbかcの内のどれかであるかどうか 判定したいのですがswitchで String str; switch(str.toString()){ case "a": //・・・ case "b": //・・・ としていくしか無いんでしょうか?
>>125 最近JAVA勉強し始めたばかりだけど、switchって数値(少ないビット数)しか
使えなかったような…。超初心者なので、違ってたらスマソ。
(少ないビット数)って分かり難いな。intやbyte型とかデス。
>>126 本当だ
The type of the Expression must be char, byte, short, or int, or a compile-time error occurs.
とありますね。ありがとうございます。
ということはif-elseifでしょうか?
>>125 case文は、
case f(x1): case f(x2): casef(x3):
//...
見たいに出来る
>>129 なるほど。勉強になります。
それでも煩雑なことに変わりはないですね。
java.util.regexとかで正規表現を使うのがよいのでしょうか?
もっと簡単な手は無いのかなぁ。
131 :
デフォルトの名無しさん :02/05/06 02:19
switch文関連かもしれないんですが、逆ポーランド記法のプログラムで switch case '+' case '-' case '*' のように分岐してスタックを操作するアプリケーションプログラムなんですが 実行の時にargsに引数を与えていく感じで実行なんですが java pol 1 2 * のようにアスタリスクを使うと読み取ってもらえません。どうしてでしょうか? お願いします。
132 :
デフォルトの名無しさん :02/05/06 02:24
>>131 bashなら*が展開されてんじゃねーの?
'*'とでもしておけ。
>>131 このスレの上の方にあるが、
UnixだけでなくWinでも*はワイルドカードとして
ファイル名に展開されるようだ。
'*'とか書け。
134 :
デフォルトの名無しさん :02/05/06 02:44
どうもありがとうございます。そいう風に指定されているんですね。 親切にどうもです。
135 :
デフォルトの名無しさん :02/05/06 02:50
と思ったんですがいざ実行してみるとエラーがでてしまいます。 エラーの内容も同じなんですが。 実行のときに java Pol 2 2 '*'っていう感じに直したんですが。
>>135 ' じゃなくて " ?
そもそも上とクラス名が違うのが気になる・・・
137 :
デフォルトの名無しさん :02/05/06 02:53
実行の時ってことじゃないですよね。すいません今思い直して。 元のプログラム修正することにします。理由が少しわかったのでありがとうございました。
>>135 javaは知らないけど、Cならコマンドライン引数は文字列だから、caseで使うならそのなかから一文字取り出す操作が必要。Javaもそんな感じだと思うが。
139 :
デフォルトの名無しさん :02/05/06 02:56
ん?今レスみたんですけど。わかりました。 ダブルコーテーションだったんですね。できました。 クラス名が違うのはすいません、特に意味ないです。 ダブルコーテーションで書くときちんと認識してくれるっていう解釈でいい んですよね、変なこと言っててすいませんでした。
140 :
デフォルトの名無しさん :02/05/06 02:57
caseじゃねー、switchだ。
142 :
デフォルトの名無しさん :02/05/06 02:59
>>138 どうも変なスレ書いたばっかりに混乱させてすいませんでした。
ソースの方は1文字ずつ取り出してっていう風になってます。
このスレ見てて実行の時にUnixとWindowsだと*をワイルドカードとみなして
しまうから""でくくればいいってことですよね。親切にありがとうございました
理解できました
143 :
デフォルトの名無しさん :02/05/06 03:00
>>140 あの超初心者なんですが、シェルってなんでしょう?汗
>>142 WindowsってNTや2000のコマンドプロンプト?
9x系のDOSプロンプトでは*は展開されなかったような・・・・
>>143 OSと対話するためのソフト。
WinのエクスプローラやMS-DOSプロンプト、UNIXのbashやtcshなど。
146 :
デフォルトの名無しさん :02/05/06 03:03
>>144 OSはMEです。えーとNTや2000だとその""でくくる方法でもできないっていう
ことでしょうか?
>>146 あれ?使えた?
この前やったときは使えなかったような・・・・勘違いか(汗
148 :
デフォルトの名無しさん :02/05/06 03:04
>>145 なるほど、勉強なります。
WindowsMeのMS-DOSプロンプトでやっています。
149 :
デフォルトの名無しさん :02/05/06 03:06
皆さん。ありがとうございました。 おかげで任意精度の電卓が完成しました。 import java.util.Stack; import java.math.BigDecimal; public class Pol { public static void main(String[] args) { Stack stack = new Stack(); try { for (int i = 0; i < args.length; i++) { if (args[i].length() == 1 && "+-*/=".indexOf(args[i].charAt(0)) >= 0) { switch (args[i].charAt(0)) { case '+': { BigDecimal d1 = (BigDecimal)stack.pop(); BigDecimal d2 = (BigDecimal)stack.pop(); stack.push(d1.add(d2)); } break; case '-': { BigDecimal d1 = (BigDecimal)stack.pop(); BigDecimal d2 = (BigDecimal)stack.pop(); stack.push(d2.subtract(d1)); } break; case '*': { BigDecimal d1 = (BigDecimal)stack.pop(); BigDecimal d2 = (BigDecimal)stack.pop(); stack.push(d1.multiply(d2)); } break; case '/': { BigDecimal d1 = (BigDecimal)stack.pop(); BigDecimal d2 = (BigDecimal)stack.pop(); stack.push(d2.divide(d1, BigDecimal.ROUND_UNNECESSARY)); } break; case '=': System.out.println(stack.pop()); break; } } else { stack.push(new BigDecimal(args[i])); } } } catch (Exception e) { System.out.println(e); } } }
GUIアプリケーションのボタンなどの文字につかう デフォルトのフォントを指定するにはどうすればよいでしょうか? Linuxだとフォントの設定ファイルが用意されているんですが Windowsだとそういったファイルは用意されていないんでしょうか? もし、知っておられる方がいましたら教えてください。 部品一つ一つにsetFont()するのはめんどくさいので
>>151 setFont(null)だと、親のコンポーネントのFontを継承するらしいよ。
だから、親のコンポーネントを変えるだけで全て変わるんじゃない?
それじゃダメ?
>>151 font.properties
font.properties.ja
font.properties.ja_JP
などを書けばいいって話か?
>>152 ありがとうございます
確認しました。確かにそれだと記述は少し減りそうです
ただ、私が言っていなかったのもまずいのですが
実はJavaアプリで自分のPCにインストールしてある
特別なフォントを使用したいと思ったときに
new Font("ORIGIN_FONT_NAME",Fot.PLAIN,10);
と、書いても「ORIGIN_FONT_NAME」がJVMのほうから認識されないらしく
デフォルトのフォントになってしまいます
プロパティセットのフォントの項目を出力させても
私の使いたいフォントは認識されていません
つまり、自分のPCにインストールしてあるフォントを
JVMに認識させるにはどういう方法を使えばいいんでしょうか?
話が前後してすいません
>>153 行き違い
ありがとうございます。調べてみます
156 :
デフォルトの名無しさん :02/05/06 11:44
すみません。また質問です。 本には作業用ディレクトリを好きな名前で作る (これって、右クリック→新規作成→フォルダ、でいいんでしょうか?) 本では、[C:\javajava]って名前にしてまして、僕は「black」という名前にしました。 DOS窓を開き、「プロパチィ」→「プログラム」で作業ディレクトリのところに ディレクトリの名前を書く(本では[C:\javajava])となっているんですが、 僕の場合は([black])と書けばいいのでしょうか? 馬鹿な質問の繰り返しですみません。よろしくお願いします
でしょうな
>>157 > 本では、[C:\javajava]って名前にしてまして、僕は「black」という名前にしました。
「した」のか?「したいと思うんだけどまだしてない」のか?
本当に[black]でいいのか?[C:\black]じゃないのか?
それともネタか?
160 :
デフォルトの名無しさん :02/05/06 12:09
>>158 すみません。ネタじゃありません。
「black」にしたのです。
「C:\』ってつけなきゃまずいんですか?
あと、そのフォルダってどこに保存しとけばいいのでしょうか?
今は、デスクトップにしてるんですけど・・・・・
>>154 Javaの場合、font.propertiesで論理フォント名=物理フォント名の
マッピングしてて、プログラム中からは論理フォント名使うんでは
なかったっけ?
うろ覚えなので間違ってたらすまん。
>>160 > 今は、デスクトップにしてるんですけど・・・・・
それなら多分blackというフォルダの「フルパス」という奴は
C:\WINDOWS\デスクトップ\black
となっているはず。
Javaのソースをコンパイルして実行できるようなら
今のままで別にかまわんよ。
163 :
デフォルトの名無しさん :02/05/06 13:15
なるほど! ありがとうございます。
164 :
デフォルトの名無しさん :02/05/06 14:33
質問ばかりですみませんが、 Javaのソースを作って、(名前は「hage」) コンパイルしようと思ったんですが、 「DOS窓」で、 C:\C:\WINDOWS\デスクトップ\black>javac hage.java と入力したら。「コマンドまたはファイル名が違います」と出てきました。 なぜでしょう?
パス通せ。 はい次
クラスパスがとおってないんで、sunのサイトでもいって 設定すれ。
>>167 の奴、記事古いな…
最新の奴では インストールディレクトリ変更されたのに
書き直してない…
>>167 OS も Me やら XP 入ってないね。
170 :
デフォルトの名無しさん :02/05/06 14:56
171 :
デフォルトの名無しさん :02/05/06 15:04
AUTOEXECに PATH=C:\jdk1.3.0_02\bin SET PATH=%PATH%;C:\jdk1.3\bin を追加したのですが、やっぱり駄目です。
はぁ、それで? 何がダメなんですか?
>>171 とりあえず聞いておきますが、JDKはインストールしたのですか?
JDKをインストールした場所によって、通すパスの場所は変わります。
また、デフォルトでインストールされる場所もJDKのバージョンによって違います。
javac.exeなどがどこにあるか確認してください。
(どこなのか忘れてしまったら、ファイルやフォルダの検索で探してみてください)
あと、なるべく名前欄に最初に質問した時の番号とかつけて貰えるとわかりやすいです…。
174 :
デフォルトの名無しさん :02/05/06 15:16
やはり、さっき(>>164)と同じようになってしまいます
175 :
デフォルトの名無しさん :02/05/06 15:17
>>173 有り難うございます。やってみます。
>あと、なるべく名前欄に最初に質問した時の番号とかつけて貰えるとわかりやすいです…。
わかりました。ご指摘どうもです。
dosのコマンドはしってるよな?
>175 わかってねーじゃん・・・ つーか、AUTOEXEC.BATなんかに書かなくったって そのままjavac実行する前にPATH通せばいいじゃん
あっ、177の指摘通りだ。 かなり見当違いなレスをしてしまった。 鬱だ、逝ってくる。
>>177 わかってねーじゃん・・・
つーか、いちいちパソコン起動するたんびにPATH通してたら
めんどうじゃん
javac フルパス指定でやってめ
多分こんなこったろうと思ってたら。 マジレスだ、パソコンに詳しい友達に豪華な夕飯おごれ。 そしたらそいつが何とかしてくれる。
win9xが糞なんだな。 win2000使え、win2000。 環境変数で、PATHをくわえたら、その瞬間から使える。 再起動しても、もちろん残っている。
183 :
158 160 164 171 175等 :02/05/06 15:41
今まで、答えてくれたみなさん、ありがとうございます。
「コマンドまたはファイル名が違います」というのは出なくなったのですが、
今度は「エラー:hage.javaを読み込めません。」と出てきました。
だんだん頭が混乱してきました。
>>181 なんですか?158=160ってのはあってますよ。
対象のファイルがあるディレクトリに移動せよ
混乱したのなら整理しろ。 で、一回整理してここに書いて見ろ。 OS は Windows 98 か? Me か? XP-HE か? JDK のバージョンは? JDK をインストールしたディレクトリは? プログラムがあるディレクトリは?
追加 DOS窓 での PATH と CLASSPATH の値は? DOS窓で C:\>set とやると、ずらずらーって出てくるから、 その中から PATH と CLASSPATH を見つけろ。
188 :
デフォルトの名無しさん :02/05/06 15:58
>>161 >論理フォント名=物理フォント名
論理フォント名、物理フォント名
ってどのようにして知ることができるのでしょうか
自分でaliasを設定するのでしょうか?
たとえば、「MS ゴシック」を使いたい場合
この名前は物理フォント?それとも論理フォントですか?
189 :
デフォルトの名無しさん :02/05/06 16:00
>>187 setじゃなくて
echo PATH
echo %CLASSPATH%
すまん誤爆
191 :
デフォルトの名無しさん :02/05/06 16:02
DOSプロントで矢印で前に打ちこんだ命令を出したいんですけど 出来ません。設定の仕方を教えてください。
>>191 まさか、新規でDOS窓開いたときのこといってんじゃないだろうな
193 :
デフォルトの名無しさん :02/05/06 16:11
>>192 違うんですよ。今の状態だと直前に打ちこんだ命令しか出ないんですよ。
上下矢印で前に打ちこんだ命令を出したいんです。確かPATHの設定の
所で設定するはずなんですけど。。。。。初心者なもんで。
教えてください。
じゃあ、DOS窓のプロパティの 「オプション」あたりを見てくれ ちなみに、俺はWin2000なのだが
>>193 AUTOEXEC.BAT の最後に
doskey
って一行加えてリブート。
196 :
デフォルトの名無しさん :02/05/06 16:41
AppletをSwingで情報の入力ページを作ってるんだけど、 ローカルファイルの読み書きの必要があるのだけど、 アップレットでの、ファイルの読み書きって可能? どでしょ?
>>196 クライアントに Java Plugin を入れて、
セキュリティーポリシーをいじればできる。
アプレットのデバッグってどうするんですか?
> appletviewer 使い方: appletviewer <options> url(s) <options> には次のものがあります。 -debug Java デバッガでアプレットビューアを起動する
>>199 おお!すばらしい。
ありがとうございます。
//でもjdbってなんだか使いにくいんですよね
201 :
158 160 164 171 175等 :02/05/06 18:18
>>186 全く使ったごとがありません。
>>185 >>187 OSはWin98
バージョンは 1.3
インストールディレクトリは、C:\JDK1.3.1_3(:と¥逆かも)
PATHとSETPATHですが、
C:\>set
とやっても何も怒りません。
何かやり方が間違ってるんでしょうか?
ディレクトリの移動の仕方もわからんのか?
>183
もうできた?
遅レスだが一応。
javacはpath通ってるものとして
・hage.javaが例えばc:\testにあったとすれば
x:\xxx>javac c:\test\hage.java
とフルパス指定するか
・ソース入っているc:\testを環境変数pathに設定するか
・x:\xxx>cd c:\testでカレントディレクトリを変更して
c:\aaa>javac hage.java
とするかどれか。
あと環境変数CLASSPATH設定しているか
してないかしらんが、やってないとうまくいかないので
ttp://www.vc-net.ne.jp/~ytp/java/java3_01_03.html でも見て設定すればいい
204 :
158 160 164 171 175等 :02/05/06 18:47
何度も親切に教えてもらってありがとうございます。 ふるパス指定してやってみたら。 C:\WINDOWS\デスクトップ\black>javac C:WINDOWS\デスクトップ\black javac: C:WINDOWS\デスクトップ\black は無効な引数です。 使い方: javac <options> <source files> 使用可能なオプションには次のものがあります。 -g すべてのデバッグ情報を生成する -g:none デバッグ情報を生成しない -g:{lines,vars,source} いくつかのデバッグ情報だけを生成する -O 最適化。デバッグが抑制されるか、クラスファイルが大き くなる -nowarn 警告を発生させない -verbose コンパイラの動作についてメッセージを出力する -deprecation 推奨されない API が使用されているソースの位置を出力 する -classpath <path> ユーザクラスファイルを検索する位置を指定する -sourcepath <path> 入力ソースファイルを検索する位置を指定する -bootclasspath <path> ブートストラップクラスファイルの位置を置き換える -extdirs <dirs> インストール済み拡張機能の位置を置き換える -d <directory> 生成されたクラスファイルを格納する位置を指定する -encoding <encoding> ソースファイルが使用する文字エンコーディングを指定す る -target <release> 特定の VM バージョン用のクラスファイルを生成する C:\WINDOWS\デスクトップ\black> っと出てきたんですけど、これがどうゆうことなのか良くわかりません。
>>204 もっとちゃんと読めよ。
いいかげん愛想つかされるぞ。
C:\WINDOWS\デスクトップ\black>javac [ファイル名].java これでやれ
ネタだな。ネタ。 まるっきり試行錯誤した後が見えない。 ダウン症等で思考能力が欠如している、とも考えられるが それにしては 言葉遣いだけがはっきりしすぎてる。
>205 ・・・・・・・こらえるんだ。初心者歓迎なんだ。
206やって結果を書きなさい。
>>206 >エラー: [ファイル名].java を読み込めません。
>エラー 1 個
って書いてくるかもよ?
211 :
158 160 164 171 175等 :02/05/06 19:03
>みなさん
本当に馬鹿な質問ばっかしテすみません。
>>209 Microsoft(R) Windows 98
(C)Copyright Microsoft Corp 1981-1999.
C:\WINDOWS\デスクトップ\black>javac hage.java
エラー: hage.java を読み込めません。
エラー 1 個
C:\WINDOWS\デスクトップ\black>
、と出ました。
212 :
158 160 164 171 175等 :02/05/06 19:04
>>210 予想されたとおりになってしまいました。すみません。
微妙に外れ。 よく見たら11:44からえんえんやってんのね。 何だかすごいよ、みんな(ワラ
俺が「読み込めない」ってエラーでるときは そのフォルダにその名前のファイルがない時だけなんだが・・・・
だから、ネタだって。
たぶん答えてるレスの中にも
いくつか
>>211 の自作自演が紛れ込んでるんだろ?
これでネタだったら殺す
218 :
158 160 164 171 175等 :02/05/06 19:13
いや、本当にネタじゃないんですよ。 本当に質問ばっかしてすみません。 自作自演も1個も無いです。 ファイルの種類が間違ってるかもしれないんで見てみます。
なんか面白いことになってるな。 フレンドパークや犬夜叉よりよっぽどおもろい。
>>219 あと一歩のようなんだが
教えてやってくれ
221 :
158 160 164 171 175等 :02/05/06 19:18
一応、読み込めたっぽいんですけど、 エラーが27個ぐらい出てきました。 これってソースの間違いをだしてるんですか?
ひょっとして 拡張子きめらんないようにしてあんのか?
エラー書け
エラー書かなくていいよ。 自分で解決しろ。
エラーがでたってことは コンパイルしてるんだ。 合格。 もう教えることはなにもない。 卒業です。
よかった、よかった。 じゃ、次の質問行こうか。
普通、いくつかのJDKを切り替えて使うように AUTOEXECなんぞにPATH設定書かないで あとから環境変更用バッチファイル使うよな?
まだやってるのか?あきらめないのは偉いな。 こうなったら最後まで付き合うぞ。
231 :
158 160 164 171 175等 :02/05/06 20:02
え?コンパイルっそれでOKなんでうか? ありがとうございました。 「DOS窓」が、画面いっぱいに出るんですけど、解除(普通のサイズに戻す)ってどうやるんですか
>>229 初心者スレではあるがjavaスレ。
決してwinスレではない。
うーむ?とりあえず[Alt]+[Enter]押してみ。
234 :
158 160 164 171 175等 :02/05/06 20:10
235 :
デフォルトの名無しさん :02/05/06 20:12
>>234 礼はいい。そんなことよりちゃんとDOS窓の大きさが元に戻ったかどうか書いてくれよ。
236 :
158 160 164 171 175等 :02/05/06 20:17
>>236 そうかい、そいつはよかった。それじゃ次の質問をどうぞ。
238 :
158 160 164 171 175等 :02/05/06 20:24
「DOS窓」で、たくさん文字が出てきて、上のほう見たいんですけど、 上にいけないんです。
>>238 Win2000にしたら?
それかリダイレクト。
Microsoftの有料サポートにでも頼め。
漏れは既にネタと割り切って楽しんでるぞ(ワラ
リダイレクトは、こいつには無理。 多分それで12時間以上ひっぱるつもりだろう
244 :
158 160 164 171 175等 :02/05/06 20:29
>>239 Win2000にするのは無理です。
リダイレクト?なんですか?無知ですみません。
Win98では上に行く方法はない。WinXPではいける(らしい)。 たくさん文字が出たってのは多分コンパイルしたらエラーがでまくったってことだろ。 本のソースコードと入力したソースコードを一文字一文字見比べてちゃんと入力してあるかチェックしてみれ。 それから質問をする時は「なにをしようとおもって」「なにをしたら」「なにがおこった」 と書かないと手間がかかるぞ。
>>243 いや、そう思ったから書いたのさ。
ほら(ワラ
247 :
158 160 164 171 175等 :02/05/06 20:31
>>245 ありがとうございます。
すみませんでした。
あと、ねたじゃないです。
>>244 DOSの使い方が書いてあるHPで
少し勉強してみな。
検索すりゃいっぱいでてくるだろ。
>>246 ネタとしても面白くない。
低レベル過ぎ。っていうかスレ違い。
250 :
デフォルトの名無しさん :02/05/06 20:33
>>238 どうせこれからコマンドラインツールつくるつもりないんだろうし、
DOS窓からjavacを起動するやり方でなくてもいいんじゃん?
forteとかeclipseとかフリーで使える統合環境あるよ。
>>249 悪かった。ちと調子に乗りすぎたよ。
傍観者に徹しますわ。
初心者に「なにをしたら」と「なにがおこった」を 説明させるのは難しいね。っつーかそれらが理解 できてるなら、殆ど問題は解決してる。 ネタ心者は別だけど。
>>252 うーむ、同意。
ところでこういうスレを名スレというのだろうか。
こんな関係の無い質問にはぽんぽんレスがつくのに
>>125 とかみたいにちょっと込み入ったのになると
さっぱりなんですね。まぁその程度って事ですか。
>>250 forteとかeclipseの場合、さらに大変だと思うがなあ。
CPadならあるいは?
>>254 何を期待してるのか知らんが、この程度だぞ?
125って難しいか? 俺はみんな呆れて反応しなかっただけだと思ってたけど。
>>254 >>125 のはstrが"a"か"b"か"c"のうちのどれかと決まっているなら
switch(str.toString()){
を
switch(str.charAt(0)){
とでもすればいいんじゃねーの?コンパイルしてないけどさ。
261 :
デフォルトの名無しさん :02/05/06 20:44
>>252 そのあたり自動的に情報を吐き出してくれるcommand.com互換な環境
あるといいなぁ。javacなりjava走らせた後、reportとか打つと直前に
実行したコマンドとか環境変数とか標準/エラー出力の内容とかカレントディレクトリ
の内容とかがpopupされるようなやつ。つーか、J2SEにちょっとした
開発環境もどきつけてくれないかな。
そういえばおれString#toString()のAPIドキュメント読んだこと無かったな。
>>258 じゃあ何でもっと簡単なことにはみんな食いついてんだ?(藁
さぁ?
関係ない話で盛り上がってる
>>263 と同じ理由じゃない?
266 :
デフォルトの名無しさん :02/05/06 20:50
>>259 え?決まってないんでないの?
strがどんな文字か判定したいのでは?
あれ?俺もその程度か。。。
268 :
158 160 164 171 175等 :02/05/06 21:05
>>245 ソースを全てチェックして、間違えてるところ、直しました。
でも、エラーが26個もあります・・・・
jspで文字化けしてこまてます。 環境 Debian woody j2sdk1.3(blackdown) tomcat 3.3 apache 1.3.24 そーす <%@ page import="java.util.Locale" contentType="text/html; charset=euc_jp" %> <html> <head> <title>test</title> <meta http-equive="content-type" content="text/html; charset=euc-jp"> </head> <body> 今日の日付<BR> <%= new java.util.Date() %> <BR> <% Locale loc=Locale.getDefault(); out.println(loc.toString()); out.println(loc.getDisplayLanguage()); %> javaのLocaleを表示させると「日本語」と表示するんですが 「今日の日付」はばけるです。 どこらへんちぇくすればよいでしょか?
>>268 2・3個所しかまちがってないのに
数十個のエラーメッセージが出ることもある。
あわてずまたソースを見直すべし。
Helloworldからはじめろよ
272 :
デフォルトの名無しさん :02/05/06 21:12
>>269 とりあえず、本当に吐き出したhtmlが化けているのか、ブラウザが誤認識
したのかとか確認した? telnet server 80とかして、HTTP応答ヘッダ
中のcontent-typeがtext/html; charset=euc-jpになっているか
とか確認した? ちなみに私はこのあたりチェックするのにw3mの
-dump_head/-dump/-dump_source使うことが多い。
273 :
158 160 164 171 175等 :02/05/06 21:16
hage.java:50: \12288 は不正な文字です。 thisThread.sleep( (int)(Math.random()*500)); ってどういうことか判りますか?
>>273 わかんね。もしかして全角スペース入力しちゃったんじゃねーの(←いい加減)
しかしいきなりThread.sleep()つかってるとは。
最初は一番短くて簡単なプログラムがいいと思うけどな。
275 :
デフォルトの名無しさん :02/05/06 21:22
\12288 = Ideographic Space いわゆる半角スペース使おう。
>>272 はい、ちゃんと
Content-type: text/html; charset=euc-jp
ってなってます。
ぶらうざ(IE,galeon)のでこーどは、SJIS,EUC,UTF-8とためしてみました。
で、jspじゃなくて、あぷれっと、こんそーるでは、日本語表示できました。
jspだけ化けるです。
277 :
デフォルトの名無しさん :02/05/06 21:36
>254 なんつーか、そういう質問レベルなら、「APIで見たことあるよ」 という答えで たいてい質問者側で解決してくれるしね。 明らかに 探すの面倒だから聞いてみた ってのがミエミエでねぇ。 ネタ質問としては三級品だし・・・
279 :
158 160 164 171 175等 :02/05/06 21:54
なんとか、エラーを3個まで減らせたのですが、 ここで判らなくなってしまいました。 hage.java:7: '{' がありません。 public class hage extends java.applet.Appletimplements Runnable { ^ hage.java:65: '}' がありません。 } ^ hage.java:7: シンボルを解釈処理できません。 シンボル: クラス Appletimplements 位置 : applet の パッケージ public class hage extends java.applet.Appletimplements Runnable { です。
280 :
デフォルトの名無しさん :02/05/06 21:57
>>279 なんかの参考書みながらなんだろうけど、もう一度ソースをよく
眺めることをおすすめする。つーか... スペース一つぬけているんですわ。
public class hage extends java.applet.Appletimplements Runnable { を public class hage extends java.applet.Applet implements Runnable { にしてみ。ようするに半角スペースを入れるわけだ。
282 :
158 160 164 171 175等 :02/05/06 22:04
>>280 >>281 ありがとうございます。
やってみました。が、今まで、出なかった。エラーがバビュンと出てきて
14個に増えました。なぜでしょう?
283 :
デフォルトの名無しさん :02/05/06 22:05
>>282 そのエラーがあるとこを読む前に別のエラーでコンパイラが止まっちゃってたから。
>>277 おくがふかいです。文字化け。
おしえてもらったぺーじを参考に
どこで、化けてるのか切り分けしてみます。
どもありがとございました。
あと、「od」ってなんでしょか?
初耳なんで後学のためにぜひおしえてください。
285 :
158 160 164 171 175等 :02/05/06 22:08
>>283 ってことは、またエラー直してかなきゃいけないんですか。はぁ・・・・・
解釈処理できません。ってどういうことですか?
286 :
デフォルトの名無しさん :02/05/06 22:10
>>285 Javaの文法と異なることがかかれているので
コンパイラが理解できないんだよ。
ところでその本にはもっと短いソースはかかれてないの?
10行未満のやつがあればまずはそれをやるほうがいいきもするんだが。
288 :
158 160 164 171 175等 :02/05/06 22:19
>>287 なるふぉど、ありがとうございます
いきなり、このソースです。「まばたきアプレット」って名前です。
この本には「とても単純なアプレット』とかいてあります。
hage.java:7: '{' がありません。
public class hage extends java.applet.Appletimplements Runnable {
^
hage.java:65: '}' がありません。
}
^
hage.java:7: シンボルを解釈処理できません。
シンボル: クラス Appletimplements
位置 : applet の パッケージ
public class hage extends java.applet.Appletimplements Runnable {
の意味が良くわからないのですが、いろいろやってみても駄目です。
289 :
158 160 164 171 175等 :02/05/06 22:20
すみません。↑の間違えです。 hage.java:60: シンボルを解釈処理できません。 シンボル: クラス Graphics 位置 : hage の クラス public void update(Graphics g) { ^ hage.java:8: シンボルを解釈処理できません。 シンボル: クラス Imege 位置 : hage の クラス Image PIc[] = new Imege [2]; //2枚の絵を入れておく配列 ^ hage.java:10: シンボルを解釈処理できません。 シンボル: 変数 nu11 位置 : hage の クラス Thread kicker = nu11; // アニメーションのためのスレッド変数 ^ hage.java:16: シンボルを解釈処理できません。 シンボル: 変数 Pic 位置 : hage の クラス Pic[1]=getImage(getCodeBase(), "no.1-2.gif"); でした。
スペルよくみろよ 違うだろ。
Image PIc[] = new Imege [2]; PIcのIをiにする。ImegeのeをかえてImageにする… 後は…エーと…もう自力で何とかなるだろ。
>>287 違うぞ。
「シンボルを解釈処理できない」ってのは、
そういう名前の、クラス、変数 等を見つけられないって事だぞ。
つーか、285、ここで聞く前にエラーメッセージをよく読め。
null が nu11になっとる
お前「いろいろやった」ってなんもやってねーだろ。
nu11じゃなくてnull、小文字のLが2つだ。 それから君、明日から当分の間はこのスレじゃなくて すごくくだらない質問でもレスをいただけるスレッド で質問汁。 今日はGWの最終日なので特別おまけだ。
import がないんだよ。 プログラムの先頭付近に import java.awt.*; とかってのが要るはずだ。
299 :
158 160 164 171 175等 :02/05/06 22:30
いや、全然ねたじゃないです。 教えてくれた方々、有り難うございます
>>295 名前:158は俺です。
ちょいまち。158はおれなんだが。181も。……ま、いいけどさ。
>>299 後学のために知っておきたいんだけど、それなんて本ですか?
1とlの間違いって打ち間違いじゃなくて読み間違いだよね?
そんな読みにくい印刷の本は捨てたほうがよいとオモワレ。
303 :
158 160 164 171 175等 :02/05/06 22:40
>>302 本は「楽しく学べる Java ゲーム・アプレット」
です。今みても、1にみえます。
>>303 その本はサンプルソースにhageクラスなんてのを使っているのですか?
すげー本だな。ハゲ差別をなくそう会の人から怒られそうだ。
307 :
デフォルトの名無しさん :02/05/06 22:52
>>303 俺もその本持ってるけどIObooksの本て読みにくいね。
しかも初心者むきの本じゃないよ、もっと普通の入門書買った方がいいと思われ。
308 :
デフォルトの名無しさん :02/05/06 22:54
309 :
デフォルトの名無しさん :02/05/06 22:54
Java3Dの質問なんだけど、 DirectionalLightで照らした物体(Sphere)の影を 背後の物体に映すにはどうしたら良いのでしょう。
310 :
デフォルトの名無しさん :02/05/06 22:55
getImage関数について、質問です。 クラスレベルで String gazou; Image im; と宣言して、 public void init(){ im=getImage(getDocumentBase(),gazou); } public void paint(Graphics g){ g.drawImage(im,100,100,this); } と、宣言。その後、 gazou="sunlogo.gif"; と、代入をして、 repaint(); と、してもうまく行かないのは、なぜか知ってる方いますか? ちなみに、 public void init(){ im=getImage(getDocumentBase(),"sunlogo.gif"); } public void paint(Graphics g){ g.drawImage(im,100,100,this); } と言う風に、ファイル名を指定して初期化をするとうまく行きます。
>>310 おまえ、プログラムの流れを理解してるか?
>と、宣言。その後、 gazou="sunlogo.gif"; と、代入をして、
「その後」っていつだよ???
312 :
デフォルトの名無しさん :02/05/06 23:01
>>310 getImageってことはAppletなのかな。
init()が呼ばれるタイミングがいつかって参考書に書いてありませんでしたか。
多分そのうち、getImageで画像が全部読み込まれるタイミングではまる
とおもうのでそのあたりもいっしょに勉強しておいたほうがよいと思われ。
313 :
デフォルトの名無しさん :02/05/06 23:09
>>312 Appletでinit()が読み込まれるタイミングがいつか?
ってことですね。
ということは、init()が実行される時にどの画像ファイルを読み込まなくては
いけないのかを、getImage()に教えてあげないといけないから、
私のプログラムでは良くないと言うことですね。
312さん
有難うございました。
314 :
158 160 164 171 175等 :02/05/06 23:12
>>308 ソース公開ってDLしても見れません。なぜでしょう?
316 :
158 160 164 171 175等 :02/05/06 23:18
しねや
そろそろソフトウェア板とかに移動する頃合いですかねぇ。
荒らしに構ってあげている親切人間多数のスレはここですか?
321 :
デフォルトの名無しさん :02/05/07 01:12
Stringクラスのオブジェクト生成について質問です。 普通オブジェクトの生成を行うときは、 String obj=new String(); とするはずですが、なぜ、Stringクラスは String obj="str1"; というように new を省略できるのか知ってる人、教えてください。
独習Javaのソースでどうしてもコンパイルが通らないものがあります。 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー import java.net.*; class InetAddressDemo { public static void main(String args[]) { try { // アドレスを取得する InetAddress ias[] = InetAddress.getAllByName(args[0]); for (int i = 0; i < ias.length; i++) { System.out.println(ias[i].getHostName()); System.out.println(ias[i].getHostAddress()); byte bytes[] = ias[i].getAddress(); for (int j = 0; j < bytes.length; j++) { if(j > 0) System.out.print("."); if(bytes[j] >= 0) System.out.print(bytes[j]); else System.out.print(bytes[j] + 256); } System.out.println(""); } } catch (Exception e) { e.printStackTrace(); } } } ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー なにがおかしいのでしょうか?
やっちまいました。大丈夫な方のソースのっけてしまいました。 ーーーーーーーーーー import java.io.*; import java.net.*; import java.util.*; class ServerSocketDemo { public static void main(String args[]) { try { // ポートを取得する int port = Integer.parseInt(args[0]); // 乱数ジェネレータを作成する Random random = new Random(); // サーバーソケットを作成する ServerSocket ss = new ServerSocket(port); // 無限ループを作成する while(true) { // クライアントからの要求を受け取る Socket s = ss.accept(); // 結果をクライアントに書き込む OutputStream os = s.getOutputStream(); DataOutputStream dos = new DataOutputStream(os); dos.writeInt(random.nextInt()); // ソケットをクローズする s.close(); } } catch (Exception e) { System.out.println("Exception: " + e); } } } ーーーーーーーーーー こっちです。すみませんでした
再び申し訳ありませんです。まず、環境は jdk1.3.1_01 + CPad for Java2SDKです。 その時のエラーが ----------------------------- ServerSocketDemo.java:23: 互換性のない型 出現: java.net.Socket 要求: Socket Socket s = ss.accept(); ^ ServerSocketDemo.java:26: シンボルを解釈処理できません。 シンボル: メソッド getOutputStream () 位置 : Socket の クラス OutputStream os = s.getOutputStream(); ^ ServerSocketDemo.java:31: シンボルを解釈処理できません。 シンボル: メソッド close () 位置 : Socket の クラス s.close(); ^ .\Socket.java:15: シンボルを解釈処理できません。 シンボル: コンストラクタ Socket (java.lang.String,int) 位置 : Socket の クラス Socket s = new Socket(server, port); ^ .\Socket.java:18: シンボルを解釈処理できません。 シンボル: メソッド getInputStream () 位置 : Socket の クラス InputStream is = s.getInputStream(); ^ .\Socket.java:26: シンボルを解釈処理できません。 シンボル: メソッド close () 位置 : Socket の クラス s.close(); ^ エラー 6 個 ----------------------------- と、でました。324さんが通ったということは、ソースに問題はないという ことでしょうか・・・
>>326 同じディレクトリにあるSocket.javaとかSocket.classとかの
ファイルを、別の名前に変えるか、よそへ移しなさい。
>>327 ばっちり通りました!お手数かけました。ありがとうございます
329 :
デフォルトの名無しさん :02/05/07 08:34
はじめてCVSに挑戦しようと思います。 現在はJavaでコード(web appliaction)を作成中なのですが、makeはAntを使っています。 こういう状況下でCVSを使う時は、srcディレクトリだけをCVSに入れるのでしょうか? それとも、WEB-INFなどそのweb applicationを構成する全てのファイルをCVSへ入れるのでしょうか? ディレクトリ構造は、下のような感じです。 WEBAPPLICATION | +--WEB-INF | | | +--web.xml | +--src | | | +--com
>>321 一言で「お約束」だから、と切り捨ててもいいんだけどな。
Stringクラスのインスタンスはイミュータブルだし。
「Effective Java」の「項目4 重複したオブジェクトを生成するのを避ける」
を読むよろし。
331 :
デフォルトの名無しさん :02/05/07 10:06
Vectorに入っているデータをAccessにINSERTしたいのですが、 FOR文を使ってできますか? for(int i = 0; i > v_code.size(); i++) { String sql = "insert into order_tbl(item_code, " + "item_num) " + "values('" + v_code.elementAt(i) + "', ' " + v_num.elementAt(i) + "')"; stmt.executeUpdate(sql); } 上記のソースで試してみたのですができません。 ソースがまずいのか、それとも そもそも不可能なのかを教えてください。 お願いします。
>>331 Access は知らないんだけど、
一般的に言って for 文の不等号の向きが逆だわな。
それと、AutoCommit にしてあるのかな?
>>332 ひいいいいいいいいいいい!!!!!
こんな私ですが、ブサイクではないと思うので
結婚してください。
ありがとう・・・。逝って来ます。
334 :
デフォルトの名無しさん :02/05/07 11:41
335 :
ジャヴァ厨房 :02/05/07 12:31
今日、JAVAが値渡しで、配列は参照だということを 同時に実感しました。 午前中はずっとこれに悩まされていた。 みなさん、ジャヴァは値渡しですよ! 間違えないように気をつけましょう!
質問の仕方が悪かったような気がするので、再投稿 java3dにて、テクスチャを貼った物体(Sphere)の影を 背後の物体に映すための方法を教えてください。 現在、DirectionalLight で照らており、個々の物体の 表面には影ができるのですが、物体相互間の影の投影 ができません。ノードの登録の仕方や、マテリアルの 属性設定に何か足らない部分があるのではないかと 思っていますが、手がかりがつかめないです。 java3D関連の質問は、別スレの方が良いですか?
338 :
java初心者 :02/05/07 14:21
ここはjavascriptについての質問もOKですか?
339 :
デフォルトの名無しさん :02/05/07 14:30
javascriptはWeb製作板みたいだよ。
>337 Java3Dにはそんな機能は無い。 自力でやれ。
>>337 とりあえず
http://www.gimlay.org/~andoh/java/3d/ にJava3Djpメーリングリストあるから、
そっちに聞いたほうが早いかも。
俺が3D(Java3Dじゃないよ)やってた頃の常識だと、
影付けは大変、っつーイメージだったけど。
ライトとの間に遮蔽物があるかどうかを判断して、
このpixelの色を決める、 とかゆーのは Java3D とか
だとライブラリがやってくれるのかな?
343 :
デフォルトの名無しさん :02/05/07 16:25
JDK1.4っていうのかな?MSのパッケージじゃないヤツで、 タイマーリスナーみたいなのありますか? やりたいことは、50ms毎に処理をある関数に渡して欲しい。もちろん50msの間はスリープ(cpuをつかまない) そういうのはスレッドでやるんですか?
制御系って言葉を最近聞いたのですが、 この職種って将来転職する時とかに必要されたり、つぶしが利いたり するんでしょうか? 防衛関係で募集してる会社があったので試験受けてみようかと考えてます が、あまりにも知識がないもので質問させていただきました。
知識もなしに、よく受けようという気になるもんだ。
>>343 名前は聞いたことがあるjavax.swing?にあったような・・・
ただ、この使い方だとThread.sleep()だろうね
>>344 マ板で聞いたほうがいいかと
いや、初心者でも研修制度があると書いてあるので。
>>343 それなら
java.util.Timer と
java.util.TimerTask を
組み合わせてやるとか。
>>341-342 がーん、無いのか。。。
球の表面に対する光源の入射角から、テクスチャに明暗を
付けるのはJava3Dがやってくれるので、遮蔽物の影も処理する
機能があるものだと思っていました。
無いとすると、影の形状を計算して、半透明の謎の物体として
表面に貼り込むか。とほほ。
>346>348 ありがとうございます。調べてみます。
>>349 それは陰(shade)
オブジェクトが別のオブジェクトに落とすのは影(shadow)
352 :
デフォルトの名無しさん :02/05/07 18:36
Image PIc[] = new Imege [2]; //2枚の絵を入れておく配列 public void update(Graphics g) { public void paint (Graphics g) { ↑のソースなんですけど、間違えてるところを教えていただけませんでしょうか? 全て「シンボルの解釈処理が出来ません」というエラーです。
Imege...
あ、本当だ、ありがとうございます、
すみません。↑の書き間違えでした。 最初から、imageになってました。
import はしているよね?
一応、わかります。 で、import文入れたんです。そしたら、エラーは2個まで減りました。 manba.java:8: シンボルを解釈処理できません。 シンボル: クラス Appletimplements 位置 : applet の パッケージ public class manba extends java.applet.Appletimplements identifier {Runnable { manba.java:8: '{' がありません。 public class manba extends java.applet.Appletimplements identifier {Runnable { 何ですけど、ご教授願えませんでしょうか?
ありがとうございます。できました。 が、今度は今まで無かったのが出てきました。 manba.java:62: 式の開始が不正です。 / インデックスで指定された絵を描く / ^ manba.java:17: シンボルを解釈処理できません。 シンボル: 変数 Pic 位置 : hage の クラス Pic[1]=getImage(getCodeBase(), "no.1-2.gif"); なんですけど、すみません。これで最後にすると思います。
/ インデックスで指定された絵を描く / とりあえずこれは // インデックスで指定された絵を描く / とでも汁。
>>360 コメントは
// 行の終りまでコメント
かまたは、
/* この間がコメント */
だ。/(スラッシュ)一文字では割り算の演算子と見なされる。
>>360 「これで最後」ってことは、完成はあきらめるのかな。
独力で残りを完成させられるとは思えんが。
ソース書く前に 最低限の基礎を・・・
とにかく質問しろ。そうしないと昨日の12時間が(回答する側にとっても) 無駄になってしまう。
うーむ、昨日質問に付き合ったおれがきれかかった書き込みをしたため びっくりして回線切って(以下略)してしまったのだろうか?
回線切って修行して強くなって帰ってくるといいな。
とりあえず最初に読んだ本が 壊滅的に悪いと思う。
ヲヲヲ・・・ ようやくサーブレットでのMySQLへのアクセスが成功しますた。 みなさんありがとう。
今までコンパイルできてたはずなファイルが,コンパイルできなくなってしまいました。 理由は、自分で作ったクラスのインスタンスを作れない、です。 ABC.classを同じディレクトリにおいて ABC abc; と書いてコンパイルしても シンボルを解釈できませんとエラーになってしまいます。 今まではできていたはずなので、何が悪いのか教えてください。
>>371 いや、一応働いたり飯食ったり風呂はいったりオナーニしたり
エロエロ動画をダウンロードしてCDに焼いたりしながらだったから
厳密には常駐じゃないんだけど。
>>373 いや、謙遜はしてないよ。エロエロ動画は吉矩形だったし。それから働いたというよりは
かわいいOLのお尻を見に行っただけだったな。オナーニは調子に乗って三階もしてしまった。
三十路ともなると辛いよ。
375 :
デフォルトの名無しさん :02/05/07 21:18
シンボルの解釈処理ができません。 変数 Pic と、出てきた場合、どのように修正すればいいのでしょうか?
>>375 回線切って首でもつれば?
君の人生少しは修正されるかもね。
>>375 ・spellを確認
・コムパイルエラー全文を書き込んで質問する
>>375 変数名が悪いのかな?
替えてみそ。
頭は小文字でな。
それから、命名規則のお勉強
ソース公開されているのに手でソース打ち込むやつなんていねーよ。 ネタ、ネタ。
381 :
デフォルトの名無しさん :02/05/07 21:38
manba.java:17: シンボルを解釈処理できません。
シンボル: 変数 pic
位置 : manba の クラス
pic[1]=getImage(getCodeBase(), "no.1-2.gif");
^
manba.java:37: シンボルを解釈処理できません。
シンボル: 変数 thisThread
位置 : manba の クラス
while( kicker == thisThread) {
^
manba.java:63: シンボルを解釈処理できません。
シンボル: 変数 pic
位置 : manba の クラス
g.drawImage(pic[picindex],0,0, this);
^
manba.java:63: シンボルを解釈処理できません。
シンボル: 変数 picindex
位置 : manba の クラス
g.drawImage(pic[picindex],0,0, this);
なんですけど、わかります?
>>379 ソース公開?
>>381 pic, picindex, thisThread が、使っている場所から見えるところで
(例えば、メソッドの引数として。あるいは使っている場所を囲む
{ }の中の、使っている場所より前で)宣言されているか?
スペルを間違えていないか?
…ぐらいしか言えんな。ソースがないと。
>>381 まさか大文字と小文字が、宣言と使用で違ってたりしないだろうな。
久しぶりに笑わせてもらってるのだが、こういう腐った本は焚書するのが良いな。
つーかさ、
>>308 でソースへのリンクが貼られてるにもかかわらず
懲りずにスペルミス繰り返してる
>>352 はタイピングの練習でも
してるのでしょうか?
はじめの質問のときはクラス名がhageだったんだよな。
で、381だとmanbaになってんだよな。ついでに画像ファイルのファイル名も
変えているんだよな。タイピングすらまともにできないのに
なんで妙な俺カスタマイズするですか。ネタですか。そうですか。
>>379 おやすみ
昨日マジレスしてやったのに あれも全部ネタかよ
388 :
デフォルトの名無しさん :02/05/07 21:56
いや、ネタじゃないですよ。 昨日の方々には感謝してますし・・・・・・・ もちろん今日の方々も
>>388 もらったレスを生かせて始めて感謝できるんだぞ。
お前何回同じこと言われた?
391 :
デフォルトの名無しさん :02/05/07 22:12
>>329 CVSって単なる押入れだから、しまいたいものしまったら?
392 :
デフォルトの名無しさん :02/05/07 22:16
>>390 んで、ソース見たんですよ。
そしたら、間違えは見つかんなかったんですよ。
393 :
デフォルトの名無しさん :02/05/07 22:20
JavaからWin環境のOLEをいじるのに便利なライブラリって ないでしょうか。alphaworks.IBMのOLE2bridgeはライセンス上 いつまでも使えるわけじゃないし、eclipseのSWTでもいけそう だけどいまいちドキュメントそろってないみたいなんで、いいの 知っている人、教えてください。
g.drawImage(pic[picindex],0,0, this); と g.drawImage(Pic[PicIndex],0,0, this); を見比べて間違いが見つからんなんてことが...
395 :
デフォルトの名無しさん :02/05/07 22:25
いや、それはもう直したあとのことなんですけど
オマエ もうそろそろいいかげんにしとけ。
馬鹿のコンパイルエラーを懇切丁寧にデバッグしてあげる 物好きが、何時の間にやら繁殖してますな。
>393 素直にC#やった方が幸せなのでわないかと。
そろそろあきた。次はexe厨でも来ないかな。
4月から新人研修でCOBOLやって、5月からjava使うとこに配属されますた。 一週間自力で勉強しましたが、この板で質問するレベルにさえ到達してません。 皆さんスゴイのね...
ごめんなさい、ageてしまいました。
>>401 おいらはJava歴4年。C++歴2年、C歴3年。
別に凄くない。毎日使ってんだから当たり前。
>>403 > おいらはJava歴4年。C++歴2年、C歴3年。
ここまで読んで、凄いと思う奴いるのか ?
誰か、
>>403 が何を言いたいか翻訳してくれ。
>>404 多分、1行目と2行目は続けて書いているのであたかも自分のことを言わんとしてると解釈してしまうが、全く別の文だろう。
>>405 いやいや、
>>403 が読んで欲しかったのは実は、
>C歴3年
の部分だけなんだよ。きっと。
俺は童貞喪失してもう3年になるんだぞ、と。
あう、突っ込みのアラシ・・・ いや、おいらは普通(経験に比すればそれ以下かもしれんが)のPGっす。 毎日扱っていてその程度時間がたってれば、誰でも答えられる程度のこと でしかないよーん、というつもりでした。日本語カタワでスマソ。
>>405 おお !!
> おいらはJava歴4年。C++歴2年、C歴3年。 ← 単なる自己紹介
( 皆さんスゴイのね... ←
>>401 から)
> 別に凄くない。毎日使ってんだから当たり前。
と言うことか ! なるほど。あんたの能力が、VC++ に備わってれば
なァ...。
ここ凄いイキヨイで上がっとりますな、ここ。 さて、196でAppletでローカルファイルの読み書きの質問をした者なんだけど、 (197さん、れすどうもっす、参考になりました) Appleteで、大きなデータ(単純に並べると2.5MBくらい)を扱う必要がある場合 どういう解決がベターですかね、最初はローカルのファイルを扱う事を 考えたんですけど、皆さんの意見聞かして下さい。 (ネタ無しで一つお願いします)
>>412 ランダムアクセスファイル(又はJDK1.4でメモリマップドファイル)
+java.lang.ref.WeakReferenceでページング。
ヤハ゜ーリローカルファイルにしたくないという意味か? データが全部要るならjarにbundleしろ。
appleteをヤメて appletにする
サーブレット
>>412 教科書的な解答をすれば
「ネットワークで必要な部分だけオンデマンドでとってこい。」
って事になるんだろうけど(キャッシュが賢ければなおよし)
2,3M程度ならなんとかオンメモリでも動くだろ。
画像だと場合に依っちゃリソースでこけるかもしれないけど。
あと、一気にダウンロードさせると
時間がアレだからブラウザの画像表示とかフラッシュのロード中画面みたいに
工夫が必要かもな。
418 :
デフォルトの名無しさん :02/05/08 15:44
このスレもver.8になってから
かなり、ム板とはかけ離れたものになってしまった
そもそも俺(
>>9 )がこんな質問したからこうなってしまったようだ
ver8.5あたりからはム板に戻って欲しい
420 :
デフォルトの名無しさん :02/05/08 16:31
String型にいれた数字をdouble型で取り出すにはどうすればいいですか つまり String a = "10.9" としたaから double型の10.9をとる方法を教えてほしいです。
Double.valueOf(a);
>>421 Doubleクラスのstaticメソッドを使うんですね
ありがとうございます
ずっとStringクラスのインスタンスメソッドで
a.double()みたいにするのかなーとおもって
Stringクラスを調べてました
こういうのはそういうパターンだと思ってくれ あと、parseInt(..)とかtoString()とかも よく使う
424 :
デフォルトの名無しさん :02/05/08 17:41
while文っていうのは、処理を行う前に条件を調べているから while文中を一回も実行しないことってありますよね。 for文はfor文中を実行するまえに条件を調べるんですか? つまり一回も実行しないことってあるんですか?
for(i=0;i<3;i++){ hogehoge(); } --------------------- while(i<3){ hogehoge(); i++; } --------------------- do{ hogehoge(); i++; }while(i<3)
初心者を育てるスレですか?
428 :
デフォルトの名無しさん :02/05/08 19:40
>>425 お~い、間違ってるよ。
for(i=1 ; i < 0 ; i++){
...
}
一回も実行されないよ。
>>425 それはdo whileだ。
にしても、なんかここ何日かすごいね。
>>427 育たない初心者を生暖かい目で見守るスレでは?
431 :
デフォルトの名無しさん :02/05/08 20:29
実は私も初心者です。 教えてください。 #defineみたいに定数を定義するにはどうしたらよいでしょうか? C++みたいにどっかのクラスにfinalにするとどうも見通しが。。複数のクラスで参照できるようにしたいのですが。 それとグローバル変数って作れるんでしょうか?
>>431 interface Constants {
final int CONST1 = ...;
final int CONST2 = ...;
}
として、使う場所でimplementsして
Constants.CONST1等とするのが定石。
ただあまりよい方法とはいえない
たぶん恥ずかしい質問だろうけど『抽象クラス』&『抽象メソッド』って何? 入力と出力の型を揃える為にあるの? なんか判りやすい例えで答えてくれると嬉しいリュ~ン
static final
>432-434 ありがとうございます。
>>437 昨日勉強したから違うかも。
class A
{
virtual void a()
{
cout << "i am A.a" << endl;
}
void b()
{
cout << "i am A.b" << endl;
}
}
class B:public A
{
void a()
{
cout << "i am B.a" << endl;
}
void b()
{
cout << "i am B.b" << endl;
}
int main()
{
A *b = new B();
A *a = b;
a.a();
a.b();
b.a();
b.b();
}
i am B.a
i am B.b
i am B.a
i am A.b
>>433 implementsしたらConstantsってつけなくていいような。
>>440 何故にここでC++なのだ?
>>441 いや、C#を無理矢理C++っぽくw。
考え方は一緒じゃないの?
>>440 437です。私、C++は判らないです。
オブジェクト指向は勿論、プログラミング自体が初めてみたいなものです。
『抽象~』を使うと、どんな風に有益なのか判らないんです。
よろしく、です。
>何故にここでC++なのだ?
>>432 のconstってのモナー
んなもんJavaにあるかっっっっ!
どこがどう抽象なんだ
>>443 あんまり初心者だとありがた味を説明するのは難しいな。
抽象メソッドは、呼ぶ側と呼ばれる側で「こういう使い方にしよう」
という約束(インターフェースとかプロトコルとか言う)を先に決めておく
ためのものだ。中身をどう実装するかより先に、モジュール間のつなぎ方を
設計しておくわけ。
抽象クラスやJavaのinterfaceは、そういう「まずつなぎ方の約束を決める」
プログラミングスタイルを支援するものだ。
447 :
デフォルトの名無しさん :02/05/08 21:54
とりあえず、標準クラスを使っているうちに わかってくるよ。>> interfaceとかいろいろ
っても interface (抽象メソッドのシグニチャ)の定義は 設計の一番最後のところだよね。
>>443 そうか「分かりやすいたとえ」が要るんだっけ。えーと…
「AC100Vのコンセント」とか「イヤホンのジャック」とかの形状は、
機器を作るより先に決めるわな。「どんな機器でもとにかく100V電源
使いたかったらこの形に合わせろ」という具合に。
抽象メソッドもそんな感じで、例えば「このゲームに参加するロボットを
書きたかったら、run(), onHitRobot(), ...などのメソッドを備えた
抽象クラスRobotのサブクラスにしろ」という規約を先に決めておくわけだ。
うーん、例えになってるかな?
>>448 うん、まあ設計が終ってコーディングに移るとこで決めるかな。
知ってる人には伝わる、とゆー感じの説明だと思うよ。 はっきりいって、こーゆー事は体で覚える(?)事だから いくら説明聞いても、わからん時はわからんと思うね。
いろんな本よんで いろいろ自分でいじってると 自然とわかってくるもんよ
>>453 (
>>453 の名回答が始まるぞ!)
_________ V
|________| Z
||∧∧|| z (\_/)
|(,-Д-) Σ (・∀・ )
■∪∪■ ( )
(-_||∪∪|| | | |
(∩|| ̄ ̄|| (__)_)
Java講座でも1からやるのか?
>>453 (
>>453 の珍回答が始まるぞ!)
_________ V
|________| Z
||∧∧|| z (\_/)
|(,-Д-) Σ (・∀・ )
■∪∪■ ( )
(-_||∪∪|| | | |
(∩|| ̄ ̄|| (__)_)
Java講座でも1からやるのか?
>>453 しかし答えるほうにも能力の限界があるからナー
まー、あとはまかせた
>>453 「りゅーん」ってのは…437考えるところの「2chっぽい言葉使い」なのでは。
りゅンりゅん って言葉使いの奴いなかったか?
458 :
デフォルトの名無しさん :02/05/08 23:11
フレームを画面の中央に配置したいんですけど、 ディスプレイの縦・横のサイズを返せるメソッドとかってありますか? よろしくお願いします。
460 :
デフォルトの名無しさん :02/05/08 23:14
getWidht() getHeight()
461 :
デフォルトの名無しさん :02/05/08 23:19
その目的なら、setLocationRelativeTo 使えませんか?
>>458
>>458 GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getBounds()
>>461 setLocationRelativeTo(null)でしょ
>>464 FrameなりJFrameのAPIマニュアル読もう。
Windowクラスから継承してます。
Sets the location of the window relative to the specified component.
If the component is not currently showing, or c is null, the window is centered on the screen.
ところで、このメソッド、JavaDocだと1.4からってなっているけど、 1.3.1でも使える...
467 :
デフォルトの名無しさん :02/05/09 01:49
437です。
『抽象~』なんとなく、イメージが掴めた感じがします。
有り難うです
>>446 ちなみに『りゅ~ん』っての、昔のギャルゲーに出てきたキャラの口癖っす。
この前、机から久しぶりに発掘して懐かしいから意味なく使ってしまって・・・
>>468 別にいいよお~
お役に立てて俺もうれしいリューン。
470 :
デフォルトの名無しさん :02/05/09 12:59
同期に付いて教えてください。以下のようなクラスがあるとします。 class someobj { int intarray[]; int idx; public someobj(){ idx = 0; intarray = new int[4]; } public int(){ idx++; if (idx > 3) idx = 0; } public int get(){ return intarray[idx]; } } ここで2つのスレッドがこのオブジェクトを共有しているとします。 そして片方がinc()を呼び出します。idxが運悪く4になってしまった、 そしてif(idx>3)の判定をしているまさにその時、他のスレッドがgetを 呼んでしまった。。この場合は配列オーバー?。 このsomeobjの全メソッド、変数を同時には一つのスレッドにしか触らせない ようにできますか? incとgetをsynchronizedしたってダメですよね?
>>470 incとgetをsynchronizedにすればOKだよ。
そうすれば、1つのスレッドがincを実行しているとき、
他のスレッドはincもgetも実行できなくなる。
>>468 抽象~などは、デザインパターンを勉強すると、その有効さがよりわかると思う。
>>449 robocodeはいいだすな。
473 :
デフォルトの名無しさん :02/05/09 16:14
>>471 はぁ??
incとgetにsynchronizedしても、
>そうすれば、1つのスレッドがincを実行しているとき、
>他のスレッドはincもgetも実行できなくなる。
なんて事ないぞ。
嘘つくな。
この場合は、incにsynchronizedだけで大丈夫。 getにはいりません。
すまん、間違えた
475 :
デフォルトの名無しさん :02/05/09 16:52
Javaによるプログラミングで エンコードに問題のある文字は「~」が有名ですが、 その他にどんなものがあるか知りたいのです 他にどんな文字があるでしょうか?
>471 ありがとうございます。実験してみました。OKでした。
>>477 どんな方法で実験しましたか?
471の方法じゃぜんぜんダメですよ。
>>478 初心者を混乱させるようなネタはやめとけ。
>478 idx++とif(idx>3)の間にウエイトループをかまして 2つのスレッドからincとgetを呼ばせてエラーが起きるのを確認。 次にsynchronizedにしてエラーが起きないのを確認。
481 :
デフォルトの名無しさん :02/05/09 21:10
デバッガ使ってスレッドサスペンドして確認しろ。
>>481 ひょっとしてマジなのか?
チミは答える側に回るつもりなのかも知れんが
質問する側に回りなさい(藁
>478は>471じゃダメだと言うことですが。。 具体的にどうダメなんでしょう。教えてください。
シンクロナイズドメソッド知らないクセに偉そうな馬鹿がいるのはここですか?
本当はどっちなのですか? >480の実験ではエラーが確かに消えたのですが。。
インスタンス・メソッドの場合は、 synchronized キーワードはメソッドやコードをロックしません。 このキーワードはオブジェクトをロックします。
489 :
デフォルトの名無しさん :02/05/09 21:39
「インスタンスの配列の初期化」について、質問させてください。 一通り、手元の書籍調べたのですが分かりませんでした。 int[] array = {0,1,2}; の様に、宣言と同時に初期化するにはどうしたらよいのでしょうか? 例: class Example{ Example(int n){ ... } } のようなクラスのインスタンスの配列を初期化する際、 Example[] exa = {0,1,2}; などでは動きません。 どうすればよいでしょうか。 お願いします。
idx を volatile にして if(idx==3) idx=0 ; else idx++ ; にしとけ。
>>488 もういいかげんにネタやめれや。
「オブジェクトをロックする」んじゃなくて、
「オブジェクトにくっついているロックを確保(acquire)する」んだよ。
ロックを所有(own)する(ownerになる)とも言う。
オブジェクトごとにロックは1つしかないから、誰かがロックを
所有している間、他のスレッドは所有できない。
synchronizedメソッドにはロックのownerしか入れないから、
1つのオブジェクトのsynchronizedメソッドを誰かが実行していたら、
他のスレッドはそのsynchronizedメソッドにも別のsynchronizedメソッ
ドにも入れない。
>>490 それでなんで競合が防げるんだヴォケが。
恥ずかしい勘違いが引くに引けなくなってネタ化を目論み
>>490 に至ったに一票。
とっとと答えろヴォケども。
>>489 Example[] a = {new Example(0), new Example(1), new Example(2)};
>490 つまり一瞬でも4になるのを防止するわけですね? これは例ですのでなるべく排他制御の方法で回避する方法を調べてます。 >487 のプロデューサーとコンシューマーの例だとCubbyHoleのputとgetは 同時に呼ばれているような感じが。。 つまりputするより先にgetが呼ばれるとgetはwhileでくるくる回って待機してます。 その間他のスレッドがputを呼び出してくれるのを待っているような。 なのでCubbyHoleのputとgetをsynchronizedしてもputしているあいだ他のスレッドは putもgetも呼び出せない事にはならない様に見えます???
>>493 ガクガクブルブル!((((゜Д゜)))ガクガクブルブル
Example[] exa = {new Example(0), new Example(1), new Example(2)}; Example[] exa = new Example[]{new Example(0), new Example(1), new Example(2)}; 上のどっちか
たしか、 Obj.Method(new Example[]{new Example(0), new Example(1), new Example(2)}); は出来るけど、 Obj.Method({new Example(0), new Example(1), new Example(2)}); は出来ないんだよね。
>>491 は他のスレッドがidx==4を拾わない理由が説明されてないじゃん。
2つのスレッドが同時にinc()に突入しないのと、inc()の途中で他のスレッドがidx==4を拾わないのと、わけて説明しれ。
とくに inc()の中でidx==4になった瞬間にget()を呼ぶと、なんでちゃんと3が返って来るか、とか。
500
>>499 はいはい。初心者の質問はも少し謙虚にね。
ちゃんと書いてあるんだが…
inc()でidxが4になった瞬間、inc()を実行しているスレッドが
このオブジェクトに結び付けられたロックのオーナーになって
いる。
その瞬間にget()を呼び出したスレッドは、同じオブジェクトに
結び付けられているロックをacquireできないので、get()に
入れない。
わかったかな? 厨房よ。
>>478 =481=488=499
以下をコンパイルして、java A B Cなどと実行してみ。
排他制御がちゃんと行われていることが分かる。
2つのsynchronizedどちらかを取ると、排他制御がうまくいかなくなる。
import java.io.*;
public class LockTest implements Runnable {
static BufferedReader in =
new BufferedReader(new InputStreamReader(System.in));
String getName() {
return Thread.currentThread().getName();
}
synchronized void locked1() {
System.out.print(getName() + "がlocked1で入力待ち:");
System.out.flush();
try { in.readLine(); } catch (Exception e) {}
}
synchronized void locked2() {
for (int i = 0; i < 5; i++) {
System.out.println(getName() + "がlocked2を実行中");
try {
Thread.sleep(1000);
} catch (Exception e) {
e.printStackTrace();
}
}
}
public void run() {
while (true) {
locked1();
locked2();
}
}
public static void main(String[] args) {
LockTest l = new LockTest();
for (int i = 0; i < args.length; i++) {
new Thread(l, args[i]).start();
}
}
}
身近な例を示して、クラスとインスタンスの関係について述べよ。属性と操作についても言及すること。
>>504 クラス:犬
インスタンス:メンチ
属性:メンチ.毛色
操作:メンチ.ちんちん
こんな感じでいいですか?
しまった!宿題か!!!!!!
507 :
489 ◆O.1et2EI :02/05/09 22:29
>>496 さん
493は、私ではありません!
IDがでないので、証明の方法がありませんが、
断じて違います。一応、トリップつけました。
>>494 さん、
>>497 さん、
>>498 さん、早速のレス大変有難う御座いました。
これから自分なりに確認してみて、再びご返事させていただきます。
失礼致します。
ああわかった。 wait()ってのはロックを放すんですね。それでConsumerがCubbyHoleのgetを呼んで、 このgetがsynchronizedだからロックをつかむ。ただしそれだとputが他のスレッドから 呼ばれないからwait()でロックを放す。か。 ところで今 >477氏と>501氏の議論はsynchronizedが一つで良いか二つ必要かの議論ですか?
>>509 >>477 は「2つのsynchronizedメソッドでは排他にならない」と信じてた
らしい。
そういや、
>>477 はどうやったらJavaで排他制御ができると思ってるのか
書いてないな。
おい!厨房477!synchronizedメソッド同士で排他できないならどうやる
つもりなんだ? 毎回synchronized文つかうのか?
> if(idx==3) idx=0 ; > else idx++; ほんとか? volatile はクリティカルセクションの保証じゃないぞ? (idx == 2 とする) Thread1: idx==3 (false) Thread2: idx==3 (false) Thread1: idx++ Thread2: idx++ (idx は 4 になった)
ハンドルにしました。 一応自分はsynchronizedメソッドにすれば良いのかなと思ってincとgetの両方をsynchronized にして実験しました。 >511 2つしかスレッドが無いと思ってください。そしてスレッド1はincを呼ぶ。スレッド2がgetを呼ぶとしてます。
>>494 さん、
>>497 さん
分かりました。思ったとおりにやっと動作しました。
有難う御座いました。
右辺における、{}の手前の new は、省略したやり方で
やっていこうと思います。
>>498 さんの仰ることを理解するのに時間が掛かってしまいました。(w;
ようするに、メソッド呼び出し時の引数が、
「インスタンスの配列」である場合の例を
教えて頂けたわけですね!有難う御座いました。
身近な例を示して、クラスとインスタンスの関係について述べよ。属性と操作についても言及すること。 必死ですおながいします…(´人`)ヾ Z乙
ずれた(;´Д`)
>>512 あぁ、スレッド 1 は inc() しか呼ばない、スレッド 2 は get() しか
呼ばない、っていう前提ならあれでいいかも。でもえらく局所的な制約
持ったクラスになるな。呼び出し側に持たせる制約が少ないほうが
良いブラックボックスの設計と思うが。
>>516 + 激しく感謝 +
X
∠ ̄\∩
~|/゚U゚|丿
⊂二 y /
/ _二⊃
⊂二ノ
メンチの元ネタがわからないんじゃなかろうか…。 ちんちんがダメなら「お手」にするとか。 メンチがダメなら「ポチ」にするとか。
>>523 執筆当初はポチだったw
ハーイル!あぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁ
ぅゎん ヮヵラナィョ
クラス:看護婦 インスタンス:吉田純子 属性:吉田純子.容疑者 操作:吉田純子.殺人
>>514 いてる?
マジレス。
身の回りのものなんでもいいから「一般名詞」と「固有名詞」を見つける。
で、ある「一般名詞」に含まれる「固有名詞」をインスタンス、
それを含む「一般名詞」をクラス。
とりあえず、それで提出して、問題点を指摘されて来い。
>>527 いてるでー
+ 激しく感謝 +
X
∠ ̄\∩
|/゚U゚|丿
~(`二⊃
( ヽ/
ノ>ノ
UU
クラス:スレッド インスタンス:初心者歓迎! Java相談室 その8 属性:レス数、レス内容 操作:レスを書き込む
クラスとはイデアである、とか言ってみるテスト
1つのスレッドがintc()の実行中に、別のスレッドがget()に入れない とかいう説明するやつの事は信用すなよ。 スレッドはそれぞれ自分専用の作業メモリを別に持っていて、 volatailやsynchronizedは、メインメモリと作業メモリの同期を 制御するためのキーワードだ。 int()がsynchronizedだったら、inc()を実行中じゃないスレッドは、 自分の作業メモリのidxを読むからget()の結果が4にならない、が正解。 詳しく知りたかったら、Java仮想マシン仕様の「スレッドとロック」を嫁。
>>531 ん? inc() と get() が両方とも synchronized 宣言されてれば
inc() 実行中に別スレッドが get() へ入れないんじゃないの?
idx はインスタンスの中の変数だからインライン展開でもされない
限りメソッドの外のスコープで作業領域に入ることもないでしょ。
激しく気になったので JDK のソース漁ってみたけど、public メ
ソッドのほとんどが synchronized 宣言されている Vector も
volatile 使ってなかったし、そもそも java.* ソースで volatile
検索して引っかかったのはリフレクションのモディファイヤの文字列
リテラルだけだし。
>>531 の真意がよく分からん。
534 :
デフォルトの名無しさん :02/05/10 02:05
あの、Javaの文法とは全然関係ないですけど、ちょっと聞いていいですか? ひょっとして、Netscapeって、Javaで書かれてます? 2日前から使い出したんですが、GUI全体が醸し出す雰囲気や、 動作の重さなど、まさしくJavaっぽい気がするんですが?
>>532 >>531 はマルチプロセッサ環境でキャッシュがCPU毎に別になってる
環境の場合をいってると思われ。
synchronizedブロックを出るときに
メインメモリと同期が取られる仕様なんだっけか?
write once run anywereを実践するなら確かに
みんな知ってなきゃいけないはずのことなんだが、、、(俺もあやしい
>>534 だからJavaとJavaScriptは違うとあれほど、、、、
(ややマジレス?)
>>533 ネタか、なら別に良いんだが。
一日最大 2~300 スレッドが同時に動きまくる AP サーバを volatile なしの
synchronized だけでやってたけど、「そういう」動きをしたと思しき事は
無かったんで。
>>534 Netscape は C だか C++ だかで書かれてたはず。昔ソースを落として中を
見た覚えがある。大昔だけど Netscape を Java で書き直すという噂が立った
事、無かったっけ?
>>536 え、JavaScriptで作ってるんですか?あのソフトを?マジですか?
JavaScriptでそんなことって出きるんですか?
全然勉強してなかったので、すいませんでした。
だから、synchronizedは仮想マシンの仕様を読んでから語ってくれってばよ。
>>538 OperaはHTMLで作ってるらしいよ。
>>537 あ、そうだったのですね。
有難う御座いました。
(下らない質問でRes消費してスマソ)
>>540 え、そうなんですか!マジですか!
Opera使ったこと無いので良く分からないんですが、
そういうこともできるんですね。
でもどうやってるんだろう。HTMLソースでブラウザソフトを作って
(って、これが既にまったく僕の脳味噌では理解できませんが)
それをコンパイルするのはどうやってるのだろう!
あぁ、全然想像できないです。
本当に、Javaに関係ないことばかりですいませんでした。
sage
>>539 知ったかぶった奴が突っ込まれたときによく使う手だな
>>535 Javaのメモリオーダーとロックとvolatileは確かに関係がある。
しかしそんなに突飛な話ではない。
・1つのロックを複数のスレッドが同時にacquireすることは決し
て無い。
・ロックを保持するスレッドがunlockする前に、そのスレッドが
行った変数の更新はすべてメインメモリに書き込まれることが
保証される。synchronized から抜けるごとに、そのスレッド
のキャッシュがメモリに書きもどされると思って良い。
・スレッドがロックを獲得してから変数を読むと、必ずメインメ
モリから読まれる。synchronizedに入るごとにキャッシュが無
効化されると思って良い。
・volatileな変数については、キャッシュせずに毎回メモリから
読み書きされる。
なので今回の話で言えば、
・synchronizedなメソッドinc()に1つのスレッドが入っていると
き、他のスレッドはinc()やget()に入れない。
・スレッドがinc()から抜けたら、そのスレッドが変更したidxの
値はメインメモリに書き込まれる。
・スレッドがinc()やget()に入ったら、メインメモリからidxの
値が読み出される。(だから、前にinc()したスレッドの変更が
ちゃんと伝わる。)
・もしidxをvolatileにしたら、変数が出てくるたびにメインメ
モリへの読み書きが起きる。(だから、synchronizedしないで
も読み書きの結果は他のスレッドにちゃんと伝わる。)
というだけの話。Javaプログラマならみんな理解している通り。
(
>>531 は477か、あるいは非常に意地の悪い上級者。)
オペラインストールしたときJREも一緒にインストールされるから Java製だと思ってる人居るんだろうなぁ…
>>531 は「自分専用の作業メモリ」がキャッシュのことだと言うことも
理解していない厨房だろ。
volatailとかintcとかintとかのミススペルを見ると、
>>477 だという
可能性が濃厚だな。
>>542 ネスケ6は基本部分はCorC++でブックマークみたいなカスタマイズ可能な部分は
JavaScriptとかで作ってあるんじゃなかったっけ?
>>477 さんは、inc()とget()をどう書けば、
複数のスレッドで(incとget1つずつじゃな
くても)ちゃんと動くとお考えですか?
478だよね。スマソ
すごいことになってますね。 >477は質問者です。 incとgetを両方ともsynchoronizedした場合としない場合で実験しました。
>545さん >・synchronizedなメソッドinc()に1つのスレッドが入っていると > き、他のスレッドはinc()やget()に入れない。 とありますが、この場合get()がsynchoronizedでなくても入れないのですか?
>>556 いや、incとget両方がsynchronizedなときだけ。
>557 そうですか。ありがとうございます。 ずいぶん奥が深いのでびっくりしました。
>>556 入れるよ。public synchronized int get(){...} っていうのは
↓と同義だから、双方のメソッドが this のモニタを取得するような書き方しないとダメ。
public int get(){
synchronized(this){
...
}
}
>・synchronizedなメソッドinc()に1つのスレッドが入っていると
> き、他のスレッドはinc()やget()に入れない。
この表現、語弊があるな。あるインスタンスに対する inc() に
1 つのスレッドが入っているとき、別のスレッドからそのイン
スタンスの inc() や get() に入れない、が正しい。インスタ
ンスが別なら inc() も get() も入りたい放題。
すまん、紙になりたかったんだよー!
「真」のあとにスペースがあるのはニセモノだ。 (にせウルトラマンみたいにわかりやすい特徴。)
おまいら、朝までやっとれ (藁
靴の先が尖ってるほうが偽物。
眼の下にクマがあるほうが偽者。
synchronized 動作のまとめ 1、排他制御 synchronizedはメソッド(synchronized文の場合はブロック)の入り口でlock 出口でunlockをする。 このときのlockはスレッドとインスタンス(staticメソッドの場合クラス)の対ごとに1つ。 ほかのスレッドは、すでに別のスレッドでlockされているメソッドをlockできない。 lockが出来ない場合は、そのスレッドは次の処理に進まない。 2、同期 lockできた時は、メインメモリの変数のマスターコピーがスレッドの作業メモリにコピーされる。 unlockはその逆のコピーが発生する。 →これにより、マスターコピーとスレッドの作業メモリの変数の同期が取れる。 lockより後で、unlockより前の変数への代入が、いつマスターコピーに反映されるかはJVMの実装依存。 →つまり、synchronizedメソッド内の処理をアトミックにしたければ、変数を参照するだけのメソッドでもsynchronized指定しなくてはならない。 まちがいあったら指摘おねがいします。
>スレッドとインスタンス(staticメソッドの場合クラス)の対ごとに1つ。 は >インスタンス(staticメソッドの場合クラス)ごとに1つ。 ですね。
571 :
デフォルトの名無しさん :02/05/10 20:26
Properties クラスは日本語のファイルを扱えないんですか?
573 :
デフォルトの名無しさん :02/05/10 20:37
JavaでWindowsを再起動できるの?
Runtime.getRuntime().exec("shutdown -r"); // WinNT/2k/XP
>>577 それリブートオプションでしょ?
shutdown -h now だろ?
は?
>>579 UNIX知らないと言うのも結構恥ずかしい。
1) 再起動方法を聞いている。 2) Windows の shutdown.exe に -h なんてオプションは無い。
Unix しか知らないと言うのも結構恥ずかしい。
さらし age
すみません 再帰どうと停止を見間違った
その IP は既に死んでいる
589 :
デフォルトの名無しさん :02/05/10 21:34
IISなのか・・・
Runtime 使って プロセス起動して云々する、 ってのを「Javaで出来る」と表現するのは いかがなものかと思いますが。
592 :
デフォルトの名無しさん :02/05/10 23:13
>>590 別に外部プロセス起動できるのも Java の機能 (というか大抵の言語に付いてる機能)
だからええんでないの? それを否定したら Perl で CGI なんて出来ないことだらけだし。
593 :
デフォルトの名無しさん :02/05/11 00:16
JDK1。4もリリースされたしXMLでJAVAを使ってみたいんだけど なんか標準APIを使ったサンプルってないすか? 日本語で説明があると嬉しいです
595 :
デフォルトの名無しさん :02/05/11 05:12
SDK1.4.0をWindows環境で使っていますが、同ディレクトリの 別ファイルのクラスを読みに行かなくて困っています。 import行に ' . ' が無い、とコンパイラに怒られてしまいます。 -classpath ./ を付けても変わりません。 全く同じソースファイルを1.3.0_02(Linux)の環境でコンパイルすると ちゃんと通ります。バージョンはわかりませんが、学校のSolarisの javacでも大丈夫です。 どのような原因が考えられるでしょうか?
すいません。↑の書きこみは595です。
598 :
デフォルトの名無しさん :02/05/11 05:24
>>597 そのとおりです。無名パッケージのimportがサポートされなくなりました。
素早いレスありがとうございます。 解説本でpackageの項目を漁って、上手くいくようになりました。 しかし、ちょっとしたプログラムでもパッケージを構成しなければならないのは いささか不便ではありますね。
600 :
◆O.1et2EI :02/05/11 05:56
超初心者の質問だと思いますがすみません。 パッケージの扱いが良く分かりません。 かなり、書籍を読んだのですが、どこが悪いのか見当がつきません。 例( Parent.class と Child.class を使用): クラスファイルの階層、package文、import文: D:\com\parent\Parent.class package com.parent; public class Parent{ ... } D:\com\parent\child\Child.class package com.parent.child; import com.parent.*; public class Child extends Parent{ ... public static void main(String[] args){ ... } } 簡単に書くと、こんな感じです。 コンパイルは成功するのですが、 Childクラスを実行するとエラーが出ます。 Exception in thread"main"java.lang.NoClassDefFoundError:Child(wrong name: com/parent/child/Child) at java.lang.ClassLoader.defineClass0(Native Method) ・ ・ ・ ・ 以下略 よろしくお願いいたします。
>>600 java com.parent.child.Child
JAVAの資格をとろうと考えていますが、今後JAVAは前途有望なのですか? それとも、MicrosoftのC#の方を勉強したほうがいいのでしょうか? 意見を聞かせてください
603 :
デフォルトの名無しさん :02/05/11 06:15
JXTAとXercesの発音きぼん
>>603 JXTA ジャックスタ(ジャクスタ)
Xerces イクサーシズ
How do I say "Xerces" ? I'd gone with Zir-chay for now, but a colleague reckons it comes from the Greek "Xerxes" (a type of butterfly, apparently), which would be pronounced Zirk-sees. Maybe we could put this in the FAQ on the website. Xerxes (xi epsilon rho xi eta sigma) would be pronounced Ksir-ksay-ss by most accounts of Ancient Greek pronunciation. Judging from the way in which Greek words get transliterated into English via Latin, my guess would be that Xerces would be xi epsilon rho kappa eta sigma and hence Ksir-kay-ss. Although you can't tell for sure from the transliteration as both epsilon and eta went to E when Greek words were transliterated in Latin. Modern Greek pronunciation would be different.
MLアーカイブか。よー見つけたね。 。。。もとい開発者??
URLConnectionで connect() する前に .getOutputStream()でとった ストリームに書き込んでflush()までできるのはなぜですか?
610 :
デフォルトの名無しさん :02/05/11 09:57
アプレットでのゲームで複数が同時に遊べるようにするには どうしたらいいのでしょうか?ご教授お願いします。
複数ってなんだよ (;´д`) 複数のユーザが同時に遊ぶのか? 複数のブラウザ開いて同時に遊ぶのか? 1 ページにアプレットを複数動かして遊ぶのか? ご教授してやんね
多分「複数のユーザが同時に遊ぶ」でしょ。
ごめんなさい。複数のユーザーが同時に遊ぶです。 つまり2P対戦とかを実現したいのです。 簡単なゲームとかなら完全にフラッシュにとって変わられたアプレットが 実力を出せるのはそこしかないと思いまして。。
1) 常時接続鯖とドメイン。 2) ブラウザのセキュリティをはずす知識。 3) マルチスレッドプログラミングの知識。 4) ネットワークプログラミングの知識。 5) ユーザインターフェースのセンス。 6) ブラウザの変な挙動を押さえ込む根気。 が必要だな。2 が出来るなら 1 は不要かもしれん。 っつうか、どうしたらいいのでしょうかって、何を答えれば いいんでしょうか?
>>616 ありがとうございます。
何を教えて欲しいかというのはですね、
何かそれようのクラスとかインターフェイスがあるのかなー?なんて思いまして。
昔そういうゲームを見たことがあるのでどっかにあるんだろうと。
知ってたら教えて欲しいなってな感じです。
>>616 要は、
専用鯖
データ管理CGI
データ管理サーブレット
がいるってことでいいの?
まぁ、相手のIPアドレスくらいはサーバで管理しないとP2Pすら出来ないか。
複数同時に遊ぶなら Socket クラスの知識が必要だな。まぁシビアな リアルタイム性が不要な (ハイスコア登録なんか) 通信機能なら URLConnection クラスが楽で良い。やっぱりどうしても常時接続鯖が 必要になるな。 ちなみに「簡単に 2P 通信対戦が出来るクラス」ってのは無い。いや、 RMI がまさにそうとも言えるんだが、苦悩の道になりそうな…
いや、アプレットはセキュリティポリシーを変更しない限り ダウンロード元のサーバとしか通信できない(2)から、仲介用の サーバを作れといっているとおもわれ。
>>619 -620
どうもありがとうございました!
意外と2P対戦を実現するのは厳しいものがあるのですね。。
勉強になりました。
622 :
600 ◆O.1et2EI :02/05/11 12:17
>>601 素早くResして頂いて有難う御座いました。
ちゃんと動作しました。(w
あと、自分はまだ良く理解してないと思うのですが、
set CLASSPATH=D:\
のコマンドも抜けてました。
それをしてないと、NoClassDefFoundError が、出ます。
クラスパスって、パッケージを使うときに必要になってくるのですね?
623 :
デフォルトの名無しさん :02/05/11 12:44
質問です。 平仮名の「あ」はShift_JISの場合先頭1byteは0x82です。 0x82は10000010なので先頭1ビットが立ってしまい、 byteからintにキャストすると-126になってしまいます。 byteを符合無しとしてintにキャストするにはどうすれば良いのでしょう? (上の例だと-126ではなく130(0x82)になるように変換したいのです) 最初は、 byte b = (byte)0x82; int i = 0 | b; とか考えてみたんだけど、0とorする時に自動的にbがintにキャストされて しまうので駄目でした。 bの最下位のビットを保存し、bを符合無し右シフトしてからintにキャストし 左シフトし直して最下位ビットを足すとかも考えたのですが美しく無いです。 僕の知らない良い方法があったら教えて下さい。
byte b = (byte)0x82; int i = b & 0xFF;
626 :
デフォルトの名無しさん :02/05/11 13:13
>>624 >unsigned intじゃダメ?
javaにはunsignedキーワードは無いです。
>623
>bの最下位のビットを保存し、bを符合無し右シフトしてからintにキャストし
>左シフトし直して最下位ビットを足すとかも考えたのですが
これ、駄目でした。byteやshortをシフトする時には
intにキャストされてからシフトされるので期待どうりのシフトができません。
byte b = -128;(10000000)
b >>>= 1;(11000000)
と言う風になっちゃいます。
627 :
デフォルトの名無しさん :02/05/11 13:22
628 :
デフォルトの名無しさん :02/05/11 13:46
Java製のブラウザで、 ソースが公開されてるものってありますか?
ブラウザってwebブラウザのこと?
>>599 別にこんなことしなくてもいいじゃん
import ***;
なんて書くから混乱する
同一ディレクトリに入っているclassファイルは
その、カレントディレクトリがCLASSPATHに含まれてれば
かってに読み込む
後々のメンテ考えれば、パッケージ管理したほうがいいのは
あたりまえだけど
632 :
デフォルトの名無しさん :02/05/11 15:57
for文で 二つ以上の初期化の式と、二つ以上のループ後の処理を 行いたいんですが、どうすればいいですか?
634 :
デフォルトの名無しさん :02/05/11 16:08
>>633 こんなメッセージがでてしまいました。
int num=0 のしたに ^ がついてます。
kadai.java:12: <identifier> がありません。
for(ListIterator itr1= v1.listIterator(0),int num=0; itr1.hasNext();num++){
型が違うならなんともならんと思われ 潔く2行にせれ。ぱっと見、他の人は int num=0 の部分で目が混乱するかも しれないから。
636 :
デフォルトの名無しさん :02/05/11 18:48
本屋さんで立ち読みしていたら、Javaで作った3階層構造のECサイトがフォニャララって 書いてあったのですが、3階層構造ってどういう意味なんでしょうか? Javaとか関係ないのかな?
>>636 クライアント:ユーザーインターフェース
真ん中:サーバとクライアントとのインターフェース(クエリ作成、結果の加工など)
サーバ:データベース
サーバの負荷とクライアントの負荷を少なくするための仕組み。
って結構前の話だけどね。最近も使われてるの?
638 :
デフォルトの名無しさん :02/05/11 18:57
ネットからエロ画像だけ収集するアプリってJavaで開発できるかな? 開発したいけど何から手をつけていいのか。
>>638 アプレットじゃなくてアプリケーションの研究しな。
エロってみわけるのは どーやんだ
>>638 どうやってエロ画像とそうでない画像の区別をするんですか?
>>637 クライアントはブラウザとかでもいいのでしょうか?
真中は、JavaでいうとAPサーバーやServletコンテナでのビジネスロジックって感じでしょうか?
643 :
デフォルトの名無しさん :02/05/11 19:00
>>638 僕のJAVAは性別が女性なので男の裸の画像を集めてきます。
>>642 詳しいこと知らんから信頼性は低い。それだけOKしてね。
多分あなたの言ってることすべて正しいと思う。
最近は真ん中すっ飛ばしてクライアントサーバモデル(Webアプリケーション??)になってるけど。
jpgとつくものは ひたすらとってくるようにとか
>>646 サイズも一定以上にした方が信頼性が上がるね。
エロと真面目な質問が 交わる良スレ
肌色っぽい画像をひたすら集めてくるってのはどうでしょう? テンプレート画像とマッチングとるとか。 できるかなー。
(
>>651 の名回答が始まるぞ!)
_________ V
|________| Z
||∧∧|| z (\_/)
|(,-Д-) Σ (・∀・ )
■∪∪■ ( )
(-_||∪∪|| | | |
(∩|| ̄ ̄|| (__)_)
653 :
しょぼいSE :02/05/11 19:29
ちわっす。インラインフレームで他人様のページをスクロールバーなしで表示したいんだけど、なんかいい方法ある?
654 :
デフォルトの名無しさん :02/05/11 19:36
JAVAの勉強を始めようと思っているCプログラマです。 JAVAの入門書を買おうかと思ったのですが Sunのサイトにチュートリアルがあったのでそれで 済めばいいなと思っているのですが core javaとかその辺の出版されている書籍と比べて やはり不十分でしょうか?? 本家においてあるのでK&R的なものかなと思ったのですがどうでしょう?
638はJavaを一生懸命勉強してそして3年… 638『ついに完成したぞ…。』 638は苦労の末、ついにエロ画像収集ツールを開発した。 彼はこのツールを作るためにすべてを犠牲にした。 オナニーも一日8回はしないと収まらなかったが開発中は4回に減らした。 2ちゃんねるでの書き込みもスレッド10個、レス200個が平均だったが 開発中はその三分の一に減らした。 638『ああ、やったとうとうこの苦労が報われるぞ…。 そうだあれを用意しておこう。』 そういうと638は完成した暁に使おうと3年前から用意していた高級ティッシュの箱を押入から取り出した。 638『よしスタートだ。』 638はとうとうそのプログラムを起動させた。 そして24時間後… 638『どのくらい画像がたまってるかな?うしっしし…ジュル(涎を拭く音)。』 638はディスプレイを見て唖然とする。 収集した画像は一枚。それもそのはず、インターネットの世界にサイトはいくつあるのだろうか? URLの文字の組み合わせは何通りあるのだろうか? しかし、638はへこたれなかった。 638『一枚しか収集できなくっていいさ。質より量だぜ。』 そういって638は画像ファイルをダブルクリックした。 そしてディスプレイにあらわれたのは貴乃花が武蔵丸と対戦している一戦だった…
>>657 紙でもおなじものが出版されているようですね。
javaはCと違ってまだ発展していくものですから参考書を買うのをためらってしままいます。
あまり変わらないようであればできるだけ無料の資源で済まそうかと思いまして。
使ってみた方おられますか?
core Javaは役に立つ
>javaはCと違ってまだ発展していくもの 年単位で発展してる気がするのね だからその時の最新盤の本を買っ たら如何? いまだたらJDK1.4の本→あるの?
>>660 Javaは18ヶ月ごとにメジャーバージョンアップしてる
(今後もする予定)よ。だから1.5がリリースされるのは来年の秋頃。
「Effective Java」は1.4についてふれている部分はあるな。
かといって1.4について知りたい人向けではない。
もっとも中~上級者にとっては必読の書だと思うけどね。
663 :
デフォルトの名無しさん :02/05/11 21:33
くっそー前に質問したときにみんながレスしてくれた 内容見直そうと思ったらdatだよー。。涙
core javaは今夏に1.4版として発売されるそうですし あまり参考書を溜め込むのもどうかとおもうのです。 だからあまりバージョンに関係のない、必読書のようなもの以外は 安く済ませたいんですよね。
666 :
デフォルトの名無しさん :02/05/11 22:41
ブラウザー上で動くJAVAの管理システムを作る場合 何を使用して作成するのでしょうか?
668 :
デフォルトの名無しさん :02/05/11 22:43
671 :
デフォルトの名無しさん :02/05/11 22:47
>>669 色々ツールあるじゃん?TOMCATとか。
いろいろオシエテ。
規模とかにもよるのでわ
674 :
デフォルトの名無しさん :02/05/11 22:50
ショウキボデファイナルアンサー
>JAVAの管理システム プログラマが2つ以上の意味にとれる文章書いちゃいけないと思われ。
スイマセン。出直してきます。。
みんな今日はきびしいな
GWモードはとっくに終わったからね。
/* java.langパッケージは自動的にインポートされる */ // アプリケーションクラスの定義 public class MyFirstJava { // main()メソッドの記述 pubilc static void main(String args[]) { // println()メソッドを使って文字列を表示する System.out.println("初めてのJavaプログラム"); } } 本を頼りにやってみたものの、エラーが三つ出ました。 6行目、<identifier>が無い 10行目、;が無い 6行目、シンボルを解釈処理出来ない とあるのですが、本のまだまだ初めの方でシンボルだとかidentifier の意味もわかりません。上手く行けばclassファイルが生成されるはずなのですが。 何処を直せば出来るのでしょうか?
680 :
デフォルトの名無しさん :02/05/11 23:20
pubilcってなんですか。
>>680 しょうもない注文を出しては物語の進行を妨げる
RPGで言う小さな町の意地悪な村長ですか?
>>679 pubilc → public
コンパイルエラーのときには^で個所を知らせてくれるので参考にしましょう。
>>682 ありがとうございます。
非常に恥ずかしい、スペルミスでした。
しかし、まだエラーが出ます。今度は表示されないのですが…
^が無く、読み取れません、とだけ出ます。本によると全角スペースだけは
エラーが文字として見えないとの事なのですが、全角スペースは見当たりません。
686 :
デフォルトの名無しさん :02/05/12 00:28
Forte for Java をダウンロードしてインストールして Hello を表示するコードを書いてコンパイルして実行してみたけど、 すべてのフォントが小さすぎて読めません。 フォントを大きくする設定はどこにあるのですか?
687 :
デフォルトの名無しさん :02/05/12 00:29
public とはすべてのメソッドからアクセスできるという目印である。
>>687 ブビー。
たとえpublicであってもそれが所属するクラスのスーパークラスに所属するメソッドからはアクセスできません。
トンチだが。
その前に、687はもしかして680に対するレスなのか? それでいいのか?
C:\java>java -version java version "1.4.0" Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0-b92) Java HotSpot(TM) Client VM (build 1.4.0-b92, mixed mode) javaってドス窓でプログラム組んでいくんですか? マジレスキボソ
初心者サイト教えて
おいコラ!早く教えろよ!!
694 :
◆O.1et2EI :02/05/12 02:49
「メソッドの命名法」について質問させてください。
一般に参照型メソッドは getValue という表記が良いとされており、
私もそれに従っているのですが、以下のような表記は良くないのでしょうか?
例:
//フィールド
int[] value;
//一般的な参照型メソッド
public int[] getValue(){
return value;
}
//指定したインデックスの値のみを参照するメソッド
//上のメソッドと同じ名前。名前を変えたほうが良いか?
public int getValue(int index){
return value[index];
}
やはり返り値の型が違うので別の名前にしたほうが良いのでしょうか?
もしそうだとしたら、できれば一般的と思われる
命名の仕方も教えてくださるとありがたいです。
いつも超初心者の質問ばかりですいません。
>>631 さん、Res有難う御座いました。
とりあえずパッケージというものを作ってみたかったので (w
型が違うのもあるけど、「個々の値を返す」のと「配列を返す」では 意味がちがわねえ? 例えばこうするとか。 public int[] toArray/getValueArray() public int getValue(int index)
696 :
デフォルトの名無しさん :02/05/12 03:11
697 :
◆O.1et2EI :02/05/12 03:18
>>695 有難う御座います。
やはり名前を変えないと混乱しますよね。
これから配列を返すときは getValueArray を使ってみます。
698 :
◆O.1et2EI :02/05/12 03:41
ということは、更新型のメソッドも同じように考えた方が良いですね。 つまり、同じフィールド int[] value に対して、 配列を丸ごと渡して一気に更新するようなメソッドは setValueArray(int[] newValue) として、 一個づつ代入していくメソッドは setValue(int newValue) とした方が良いのですね。
>695 個々の値を返すときは 「このインデックスの指す値をよこせや、オラァ」っつー意味も含めて public int getValueAt(int index) とかよく書きます(私は) >698 public void setValueAt(int index, int newValue) みたいな
700 :
◆O.1et2EI :02/05/12 04:08
>>699 有難う御座います。
そういう方法もありますね。
今回の私の場合配列の set/get は出来たら Value がいいなぁと
思ってましたので、この方が無理なく使えるかもしれないです。
701 :
デフォルトの名無しさん :02/05/12 04:17
get1ofValue set1ofValue なんていうのはどうですか? とはいっても、私も超初心者なので、あまり参考にならないかも。
あ、699さんのはそのまま読むと意味が通じるのですね! すんません、頭の回転悪くて。 私もそれ使わせてもらいます。(w)
JAVAでMIDIデバイスをたたくにはどうしたらいいでしょうか? Googleで「JAVA MidiDevice」あたりで検索したサイトに 載っている方法はあらかた試しました。といっても、 バリエーションはそんなにないですが。同じ風に悩んでいる人は みつかりましたが解決策はみつかりませんでした。 デフォルトのソフトシンセ/シーケンサではない、システムに インストールされているデバイスは検出はできるものの、 うまく動きません。具体的には、MIDI音源を鳴らしたいのですが、 デバイス取得&オープン&メッセージ送信しても鳴りません。なお、デフォルトのソフトシンセは動きました(鳴りました)。
>>702 でも逆にうまい名前の付け方をすると
実際に最初からあるメソッドと同じということがよくある
あれ以来自分で作ったクラスやメソッド名は
setValueAtならset_ValueAtにしてるが、おれは小心者か?
705 :
デフォルトの名無しさん :02/05/12 08:52
URLを引数にしてHTMLをバッフャに格納するメソッドができません。 どこか間違っていますか? public String getPageString(String urlstr){ String pagestr = null; try { // URL の文字列から URL クラスへ URL url = new URL(urlstr); // 入力ストリームを取得する InputStream is = url.openStream(); try { BufferedReader br = new BufferedReader(new InputStreamReader(is)); StringBuffer sb = new StringBuffer(); String thisLine; while ((thisLine = br.readLine()) != null) { sb.append(thisLine); sb.append("\n"); } pagestr = sb.toString(); } catch (Exception e) { e.printStackTrace(); } } catch (Exception e) { e.printStackTrace(); } return pagestr; }
706 :
デフォルトの名無しさん :02/05/12 09:35
>>705 とりあえずうちじゃ、外側のtryブロックの中は正常に動いているけどね。
で、それはおいておいて、content-type:みないでInputStreamReader使うの
って荒っぽくない? 入ってくるhtmlのcharsetがVMのデフォルトエンコーディング
と必ず一致するならいいけど。手抜きして決め打ちにするにしてもJISAutodetect
くらいは指定したほうが。
訂正: JISAutodetect -> JISAutoDetect
>>706 ,707
レスありがと。
InputStream is = url.openStream();
で例外発生してた。
java.security.AccessControlException: access denied
(java.net.SocketPermission www.yahoo.co.jp resolve)
らしい。
もうちっと頑張ってみます。
>>691 プログラム自体はエディタで書く
コンパイル、実行はターミナルエ
ミュレータでやるこれがスクラッ
チ
IDEのF4Jとか使えばその上でエ
ディット、コンパイルが出来る。
710 :
デフォルトの名無しさん :02/05/12 10:44
System.out.println("これってコンパイル エラー。。。。?"); なんで?詳細きぼん。
>>710 文字列リテラル内での改行は認められていません。
712 :
デフォルトの名無しさん :02/05/12 10:49
>>708 それ、メソッド自体は706の通り悪くなくて、実行している
状況のほうを見直すほうが先じゃない? 極端な話、Appletから
呼び出しているとか。つーか、エラーくらい最初の質問で
書いとくもんかと。
>>712 プログラム歴一ヶ月ほどの超初心者ですいません。
Appletから呼び出してます。。。
InputStreamはAppletからは使えないってことでいいのでしょうか?
>>713 アプレットからは自分がいたサイト(ダウンロード元)の限られたデータにしかアクセスできなかった気が。間違ってるかも。
がーん、そうです、デフォルトのセキュリティポリシーでは Appletからダウンロード元以外の他のマシンへの通信、および ローカルファイルへのアクセスは禁じられています。もちろん、 ユーザーに設定を変更させれば可能だけどね。
jclassのjctableというものを使用しています。 これでエクセルのような表を作成したのですが、 特定のセルに対して、読み取り属性を設定する&マウスの右クリックを抑制する事ってできないでしょうか?
719 :
デフォルトの名無しさん :02/05/12 15:27
TimerTaskの派生クラスにコンストラクタをもてませんか?
すみません。勘違いでした。コンストラクタをvoidにしてますた。
721 :
デフォルトの名無しさん :02/05/12 15:40
>>719 コンストラクタをvoidにしてしまってない?
また質問です。 ファイル名に制約はありますか? ロングファイル名が使えないとか。
すみません。勘違いでした。アプレットタグのクラス名を変えるの忘れてますた。
724 :
デフォルトの名無しさん :02/05/12 16:16
>>723 アプレットタグのクラス名を変えるの忘れてない?
725 :
デフォルトの名無しさん :02/05/12 18:18
アプレットビューワーを使って自分が作ったアプレットを確認したいのですが Exception in thread "main" java.lang.NoSuchMethodError: main C:\java>appletviewer exCheckBox.html 警告: AppletViewer プロパティファイルが読み込まれません: C:\WINDOWS\Profiles\個人名 \.hotjava\properties デフォルトを使用します。 Exception in thread "main" java.util.MissingResourceException: Can't find resour ce for bundle sun.applet.resources.MsgAppletViewer, key appletpanel.badattribute .exception at java.util.ResourceBundle.getObject(ResourceBundle.java:382) at java.util.ResourceBundle.getObject(ResourceBundle.java:379) at java.util.ResourceBundle.getString(ResourceBundle.java:354) at sun.applet.AppletMessageHandler.getMessage(AppletMessageHandler.java: 42) at sun.applet.AppletPanel.showAppletStatus(AppletPanel.java:697) at sun.applet.AppletPanel.init(AppletPanel.java:185) at sun.applet.AppletViewer.<init>(AppletViewer.java:175) at sun.applet.StdAppletViewerFactory.createAppletViewer(AppletViewer.jav a:81) at sun.applet.AppletViewer.parse(AppletViewer.java:1035) at sun.applet.AppletViewer.parse(AppletViewer.java:969) at sun.applet.Main.run(Main.java:140) at sun.applet.Main.main(Main.java:82) とでます。個人名が入ってると動作しませんか? またそれ以外に考えられる原因(沢山あると思いますが)はなんでしょうか?
ティンチィンがピンク色だから
C言語で言うところのprintf("%02x",byte_value)はJAVAではどうやるんですか? Integer.toHexString()では02が表現できないようなんですがやっぱそこは自前?
728 :
デフォルトの名無しさん :02/05/12 20:31
>>727 java.text.NumberFormatとかじゃないの?
NumberFormat nf = new DecimalFormat("00"); String num = nf.format(2);
730 :
デフォルトの名無しさん :02/05/12 21:41
超初心者です AWTのTextAreaにテキストファイルを読み込んで表示させようとしています。 その時、フォントを変更したいのですが、その場合はTextAreaに表示させるのは 無理でしょうか?
16進扱うフォーマット自作するとか、 ( 0x0f < val ? "" : "0" ) + Integer.toHexString( val ) みたいにやるとか。
*Formatは10進しかいけなさそうなので、
>>731 みたいにやることにします。
サンクス!>All
あごめん、x 見逃してたわ。
VCのインテリセンスみたいな、メソッド補完を実装したエディタってないですかね? 開発環境でもいいんですけれど、できれば軽くて無料なのが希望です。 Meadowは、自分で作ったメソッドは補完してくれない模様。 JBuilderは無料じゃないし、評価版使ってみたけれど重くて、 思うようになじめなかったです。 今のところのベストは、VisualJ++で編集だけして、 コンパイラはコマンドライン、という形ですが……
735 :
デフォルトの名無しさん :02/05/12 23:03
Eclipse はどうですか? 俺、使ってるけど、良いよ。
>>734 VAJも、あるにはある。って、軽くはないやね・・・。
739 :
1/2 ◆O.1et2EI :02/05/13 00:50
「クラスパスを外したらコンパイルが上手く行く場合」について質問させてください。 今日インターフェイスの勉強を始めたのですが、 以下のような自分の予想に反する結果が出て戸惑っています。 かなり基本中の基本だと思うのですが、 どうも理解力が乏しく情けないです。 --------------------------------------------------------------- ファイルと階層:(2つのファイルを使用、同じフォルダに入ってます) D:\dir1\dir2\A.java (クラス) D:\dir1\dir2\B.java (インターフェイス) --------------------------------------------------------------- 記述概要: A.java: public class A implements B{ private String[] s = {SPRING,"Summer"}; //2行目。ここでエラー } B.java: public interface B{ public final String SPRING = "Spring"; } --------------------------------------------------------------- システムのプロパティ>環境変数で、あらかじめ設定してあるCLASSPATH: d:\Program\CoreJavaBook;d:\; 共通する操作: コンソールの画面で、D:\dir1\dir2\ に、移動。 ---------------------------------------------------------------
740 :
2/2 ◆O.1et2EI :02/05/13 00:51
--------------------------------------------------------------- その後の操作:(操作1=失敗、操作2=失敗、操作3=成功) --------------------------------------------------------------- 操作1:(このままコンパイル) javac A.java (エラーメッセージ) A.java:2:シンボルを解釈処理できません。 シンボル:変数 SPRING (クラスパスを確認) set CLASSPATH=d:\Program\CoreJavaBook;d:\; --------------------------------------------------------------- 操作2:(クラスパスを、ファイルのあるフォルダにコマンドラインで設定) set CLASSPATH=d:\dir1\dir2\ javac A.java (エラーメッセージ) A.java:2:シンボルを解釈処理できません。 シンボル:変数 SPRING (クラスパスを確認) set CLASSPATH=d:\dir1\dir2\ --------------------------------------------------------------- 操作3:(クラスパスを、コマンドラインで取り外す) set CLASSPATH= javac A.java (コンパイル成功) (クラスパスを確認) set (クラスパスの項目がなくなっていて表示されない) --------------------------------------------------------------- ※私の考え 私はこの操作1と操作2のエラーの原因は、 コンパイラが B.java を探し当てることが出来なかったためだと考えています。 しかし、私の予想では、操作1に関してまったく問題ないと思っていました。 何故なら、作業フォルダを含むDドライブの一番上の階層に対して あらかじめクラスパスを設定していたからです。 さらに操作1で失敗した後、必ず操作2で成功すると思っていました。 何故なら、作業フォルダそのものにクラスパスを設定しなおしたので、 コンパイラがB.javaを見つけ出せないことはないと思ったからです。 そして、操作3でコンパイルに成功し、上の記述では省略しましたが、 コンソールに文字を出力させることにも成功しました。 しかし、上の二つの場合に比べて、明らかにこちらの方が 失敗するように思えて仕方ありません。 クラスパスの仕組みをどなたか教えてくださいませんでしょうか。
741 :
デフォルトの名無しさん :02/05/13 01:09
Stringで与えられたクラス名をインスタンス化して、そのメソッドを実行したり するやり方を教えて下さい。 Class.forNameというのが関係ありそうですが、さっぱりわかりません。
>>735-738 色々情報ありがとう。
JBuilderは有料だと信じ込んでいた。でもちょっと重いのが残念。
Forteは重すぎでした。マシンスペックがよろしくないので起動するだけで嫌気がさして。
VAJは知りませんでした。でも重いのは勘弁。
とりあえずeclipseを試してみます。エクリプスという発音でいいんだろうか?
参考になりましたっす
Javaで作られた開発環境が多いけれど、はたして意味があるのかなぁ?
unixベースの人は普通にコマンドラインorEMACSで開発する方が楽だろうし、
WindowsユーザがターゲットならJavaで作るメリットはほとんど無いし、
正直XWindowをメインで使ってる人がまともな開発をするとは思えないし(偏見?)
多分Javaが重く感じる俺の環境が悪いんだろう(笑)
Class.forName("FooClass").newInstance().getMethod("getBar").invoke(null, null);
742は精神分裂賞だろうか
>>744 酔ってるんですまん。そういう意味では本音かも
適当に流しておいて(笑
>>740 外部のソースなどはclasspathを元に検索される。
classpathが全く指定されていない場合、.(カレントディレクトリ)がclasspathに設定される。
でも、操作2と操作3では、classpathが同じになるか…。
\が一つ多かったからとかじゃないの?
747 :
デフォルトの名無しさん :02/05/13 02:05
>>742 日本人どうしの会話で使うのだとエクリプス。
でも、英語の発音ではイクリプス。
まぁ~、カタカナで書いているのでちゃんとした発音は説明できませんが。
748 :
デフォルトの名無しさん :02/05/13 02:06
750 :
◆O.1et2EI :02/05/13 03:16
>>740 さん、有難う御座います。
ということはつまり、少なくとも最初の設定=操作1では動かなくて当たり前ということなのですね。
(これが何故なのか良く理解してないのですが。)
その理由は次の考えであっているでしょうか?
それともまだ理解できていないように思われますか?
操作1では B.java が見つけられない理由(私見):
他のクラスパス(CLASSPATH=d:\Program\CoreJavaBook;d:\;)が設定されているため、
それによってカレントディレクトリのファイルを見つけられないから
つまり、 d:\ に、クラスパスを通しても、その下にあるフォルダ(d:\dir1\dir2)
の中を調べるという作業をコンパイラは行わない。
----------------------------------------------------------------
ところで操作2についてなんですが、
殴られそうで怖くていいにくいんですが、
勇気を振り絞って白状します。・・・
今同じようにやったらちゃんとコンパイルできました。すいません。
(でもさっきはどうして失敗だったのかまったく分からないです!)
751 :
750 ◆O.1et2EI :02/05/13 03:19
>>746 さん、失礼しました。
↑上の文章は746さんに対するレスです。
1行目の書き込みを間違えました。
改めて、有難う御座いました。
たぶんお子さま質問だと思う。でもわからんのです。教えて下さい。 ・ファイル(ローカルファイル)の末尾にデータを追記していく方法 いわゆるC的な seekpositionの操作みたいのが見つけられない。 OutputStream.write();を使ってみたが、これはファイルの先頭から 書くっぽい。 ログファイルへの書き込みみたいに追記していきたいんですがどーすれば 実現できるんでしょう? なお、1回の書き込みごとに Streamオブジェクトは破棄です。 毎回「そのファイルの内容を全部読み込んで必要な情報を追加して全部書く」 なんてのは絶対いやだ。 # 会社から繋げれないので明日の夜また見に来ます。
OutputStream out = new FileOutputStream("hogehoge.txt", true);
∧ b /●ヽ/ (∧_∧) ノノノノ -___ (;・∀・) (゚∈゚ ) ─_____ ______ ̄ ( ) 丿\ノ⌒\ ____ ___ | | | 彡/\ /ヽミ __ ___ (__)_) ./∨\ノ\ =_ .//.\/ヽミ ≡=- ミ丿 -__ ̄___________ (⌒\ ノノノノ \ヽ( ゚∋゚) (m ⌒\ ノ / / ミ /ヽ ( ∧ ∧ ミヽ/ く ミヘ丿 ∩∀・;) ∠_●_ゝ (ヽ_ノゝ _ノ ノ ε 人 カエセヨー ε / ノ ノ ● し-J /彡 ノノノノ ( ヽ ( ゚∋゚) \゛ー' ー、ノ彡 ) 人_ノ / 、ノ 彡ヽ 人 ヽ \_ノ \ \ \ヽ ヽミ
∧ b /●ヽ/ (∧_∧) ノノノノ -___ (;・∀・) (゚∈゚ ) ─_____ ______ ̄ ( ) 丿\ノ⌒\ ____ ___ | | | 彡/\ /ヽミ __ ___ (__)_) ./∨\ノ\ =_ .//.\/ヽミ ≡=- ミ丿 -__ ̄___________ (⌒\ ノノノノ \ヽ( ゚∋゚) (m ⌒\ ノ / / ミ /ヽ ( ∧ ∧ ミヽ/ く ミヘ丿 ∩∀・;) ∠_●_ゝ (ヽ_ノゝ _ノ ノ ∧ b /●ヽ/ ( ノノノノ) ( ゚∋゚) /⌒\/⌒ヽ_______ | ̄⌒\ 彡ノ_ | |_________\_|__ 丿____| /_____________\彡ノ_________\ ∥ \ヽ ∥ ヽミ
∧ b /;●ヽ/ ( ノノノノ) ( ゚∋゚) < クックルドゥドゥドゥ /⌒\/⌒ヽ_______ | ̄⌒\ 彡ノ_ | |_________\_|__ 丿____| /_____________\彡ノ_________\ ∥ \ヽ ∥ ヽミ
ついにこの板にも来たか...
(゚э゚)キニシナイ!
初めてここに書き込みます。 現在jdbcを利用して、コンマ区切りのファイルの中身を 読み取ってデータベースにいれようとしています。 ここで、データ型のチェックを行いたいのですが 何かしら良い方法が見つかりませんので書き込みました。 具体的には、数字と文字列のデータなんですが StringTokenizerで読み取って、配列に格納して 一行ごとにDBに突っ込むという事を行っています。 Stringクラスにそういうチェックを行うものがなかったのです 何かそういうチェックメソッド、もしくは方法を 教えてもらえれるとうれしいのですが。よろしくお願いします。
>>760 そのコンマ区切りのファイル(CSV?)のサンプルを見せれ。
んでどういうチェックをしたいかを具体的に示せ。
早いレスありがとうございます。
>>761 さん
try-catchで処理するという意味でよろしいのでしょうか?
>>762 さん
具体的には
1,001,名前,95123
おおよそこんなかんじです。
各カラムのサイズチェック(length())はできました
また、それぞれ前からchar・char・char・numeric型なんですが
最後の数字のところが一応string型でも入れられるのですが
それだと日本語でサイズさえあえば入る訳で。
そこのチェックをしようとしてるのです。
Javaで正規表現ができません。strにはJavaって文字列が入っていても 出力がfalseになってしまいます。なぜでしょう?? Pattern pattern; Matcher matcher; pattern = Pattern.compile(".*Java.*"); matcher = pattern.matcher(str); boolean b = matcher.matches(); System.out.println(b);
>>163 はい、てきとう。
public boolean isNumeric(String value) {
try {
Integer.parseInt(value);
}
catch (Exception ex) {
return false;
}
return true;
}
>>764 何のクラスライブラリ使ってるか知らないけど、
良くわからんけどpatternを//でかこったら?
"/.*Java.*/"
俺的には正規表現ならJakarta OROを使うが。
767 :
デフォルトの名無しさん :02/05/13 14:10
まったくの初心者にお勧めのJAVAの参考書って無いですか?
769 :
デフォルトの名無しさん :02/05/13 14:14
じゃ、本屋に行って来ます。。
770 :
デフォルトの名無しさん :02/05/13 14:16
771 :
デフォルトの名無しさん :02/05/13 14:17
>>770 おぉ、ありがとうございます。探してきます。
772 :
デフォルトの名無しさん :02/05/13 15:33
JBuilderを使ってのJAVAプログラミングって どうなんですか?VBみたいにGUI的に作成できて 結構取っつきやすいって感じなのですか?
>>772 エディタでGUI作ってた人かつコーディングスタイルにこだわりのない人にとっては快適かと。
無料なんだから自分で使ってみるよろし。
774 :
デフォルトの名無しさん :02/05/13 16:06
ソース公開されてるJavaの画像ビューワーってある?
775 :
デフォルトの名無しさん :02/05/13 16:06
>>764 JDK1.4のRegexとMatcherでしょ?
それなら
matcher.matches()じゃなくてmatcher.find()でやってみ。
matches()は与えられた正規表現で表現可能な文字列かどうかを
調べるメソッドで、findは該当文字列があるかどうかを調べる
メソッドになってる
7 6 5 は 何 に レ ス し て ん だ ?
778 :
デフォルトの名無しさん :02/05/13 18:54
>>772 Enterprise版はリファクタリング機能がイカス
>>777 765の事なんていいじゃないですか、それより、
666みたいにぞろ目とはいいですね。
3っつ7なんて、スロットみたいで、なんか素晴らしいです。
だからといって、なんでもないんですけどね。
ろくでもないレスしてごめんなさい。
781 :
デフォルトの名無しさん :02/05/13 22:33
SwingでIEのオートコンプリートみたいな事したいんですけど、 可能ですか? 参考になる、URLなんかもありましたら教えてください。
できません。
オ~トコンブリートって何?
再帰ん、ネタ化が流行ってるのか。
>>783 IEの上部、URLを入力する場所で、
URLを途中まで入れると、入力履歴を見て補完してしてくれる機能です。
>>784 ネタじゃないですよ、
可能であれば、やりたいと思ってます。
bash(readline)でも入れたら?
1度入力された文字列をDB化して 新たに入力されている文字列と 比較すればできないか? ってことを考えてみる
なんでDB化
789 :
デフォルトの名無しさん :02/05/13 23:37
任意の配列の次元数を調べるにはどうすればよいでしょうか? ex) 調べたい配列の型が、 int[] のときは1、 int[][] のときは2を返すようなメソッド。
ねーよそんなもん
誰か頭良い人考えて。 もう疲れて氏に沿う・・・マシ?テ?
げ、OPERA使ったら半角文字が化ける・・・
>>792 って言うか何に使うつもりよ?
配列の次元なんて宣言時に特定できないか?
参照の配列だったとしても代入するものの次元は特定できる気が。
795 :
デフォルトの名無しさん :02/05/13 23:50
なんか、java実行時に Warning: Cannot convert string "<Key>Escape,_Key_Cancel" to type VirtualBinding Warning: Cannot convert string "<Key>Home,_Key_Begin" to type VirtualBinding Warning: Cannot convert string "<Key>F1,_Key_Help" to type VirtualBinding Warning: Cannot convert string "Shift<Key>F10,_Key_Menu" to type VirtualBinding Warning: Cannot convert string "<Key>F10,Shift_Key_Menu" to type VirtualBinding Warning: Cannot convert string "<Key>KP_Enter,_Key_Execute" to type VirtualBinding Warning: Cannot convert string "Alt<Key>Return,Alt_Key_KP_Enter" to type VirtualBinding Warning: Cannot convert string "-sony-fixed-medium-r-normal--*-140-*-*-c-*-jisx0201.1976-0" to type FontStruct ってでるんだけど 最後の1行はわかるんだけど その前のって何? 環境はLinuxです。 $ java -version java version "1.4.0" Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0-b92) Java HotSpot(TM) Client VM (build 1.4.0-b92, mixed mode)
>>795 stringクラスをVirtualBinding(仮想バインド?)に変換することが出来ません。
797 :
デフォルトの名無しさん :02/05/13 23:57
>>796 うん、そうです
ただ、demoを実行しても
簡単なサンプルを実行しても
出て来るんで何か設定か何か抜けてるんでしょうか?
>>789 Objec.getClass().isArray() を地道に繰り返す
799 :
申し訳ありません。 :02/05/14 00:04
ここで質問するのもおこがましいのですが、誰か教えて下さい。 もしくはどこで聞いたらいいか教えて下さい。 学校の課題でJAVAをインストールして何か表示出来るようになれ、と 言われたのでインストールしたり間違えたり捨てたりしてたのですが 気が付いたらインターネットをしていてJAVAアプレが使えなくなってました。 「JAVA仮想マシンをインストールしてください」と出るので 普通入ってるもんじゃなかったっけ?とか思いつつ 言われるがままDLしてインストールしたのですが何度やっても 一向にアプレットウィンドウは×のままなんです。 どうしたらいいでしょうか。
OS をインストールしなおしてください。
>>794 任意のデータが、参照先の配列のどこで一致するか、
というメソッドを作ったのですが、
参照先のデータ構造に柔軟に対応できるような
メソッドにしたいのです。
つまり、返り値を、0からnまでの一次の整数で返すのではなく、
場合によっては{m,n}や{l,m,n}などとしたいのです。
今何とか力ずくで作ってるのですが、
配列の次元数が分かれば前に進めそうな
気がして質問させてもらいました。
そういうのは柔軟とは言わん。 曖昧なインターフェースと言う。
804 :
申し訳ありません。 :02/05/14 00:11
>>800 頭悪いんで本当いっそOSインストールしなおせばいいのかな。とか
思いました。びっくりして。
>>801 WIN98SEです。
>>804 Java Plugin が競合か何で悪さしてんだろーな。
もう一度 JDK 1.3 当たりをインストールして、正しい手順で
アンインストールしてみ (直らんだろうけど)。
807 :
申し訳ありません。 :02/05/14 00:20
>>805 ありがとうございます!
やってみます!
>753 産休! リファレンス見てみた。判ったよ! FileOutputStream(String name, boolean append) ;
すげぇ、俺への返しレスが3つ並んでる
>>798 その勢いで何かヒントでも頂けませんか?
返しレス... 腹痛が痛いみたいだ。
public boolean getDimension(Object obj){ if(obj == null) return 0; int dim = 1; while(obj.getClass().isArray()){ dim ++; obj = Array.get(obj, 0); } return dim; } こんなもんか。obj が自己参照や循環参照になる要素を持ってたら無限 ループになるかもしれんが。あと必ずインデックス 0 の要素には値や 配列を入れておく必要があるけど。
そもそも java に多次元配列なんて存在しないのに…。 配列の配列を多次元だと勘違いするなよ。 int[][] ってのは、int配列をObject配列に入れたもんだぞ。 int配とlong配列を、一つのObject配列に並べることも出来るんだぞ。 Object配列(親)に、プリミティブ配列(子)が入ってたら2次元か? でも、子がObject配列で、孫がプリミティブ配列だったら、そこは3次元か? 混在可能だぞ。おい。
まぁサブセットとして多次元配列として扱うのもありということで。 なんか数値演算系のことやってるみたいだし (昔俺もやってたし)。
丿 ,;⌒⌒i.
ノノノノ⌒ヽ ( ;;;;;) ______
(゚∈゚ ) ミ) ,,:;;;) | WARNING |
/⌒\/(
>>814 ) ヽ| |/ |;,ノ | エリア51 |
( ミ ∨∨ | / .,i |______|
ノ / | | ,,i; ,, . ,;⌒∥
( \/ヽ ,,,丶, | |,,,;. ;i, ∥ヽ
\ ) ) .. ,, ´ヽ (,, ∥丿.,,,
/// ,, ,, .. ´ヽ ∥,,, ..,
`ヾ ヽミ ,, .、 ヽ .. ヽ丶,.ヽ ∥、,,
おい、どこに連れてく気だ (藁
全くの素人です。ごめんなさい(先に謝っておきます) 昨日から急にasahi.comのトップページへアクセスすると ランタイムエラーの警告ダイアログが出るようになりました。 function launchFloat(){ if((document.all) && (document.body.clientHeight > 570)){ if(lTop==null && lLeft==null){ eval(layerName).style.left = cLeft; lTop = cTop; eval(layerName).style.top = lTop; } onscroll = floatLayer; } } 警告ダイアログでは上記部分4行目でLayer定義がされていないと出るので、 (詳しくはasahi.comのソースをご覧ください)スクリプトのミスかと思ったのですが、 こちらの環境(MacOS9、IE5.1)もしくはUAの設定のせいなのでしょうか? 何が問題でエラーがでるのかを教えていただけませんでしょうか?
Javascriptの話題はどっか別のとこでやってください。
つーか、
>>1 読め。
>>818 ひゃあ、ごめんなさい。スレ汚しスマソ。
丿 ,;⌒⌒i.
ノノノノ⌒ヽ ( ;;;;;) ______
(゚∈゚ ) ミ) ,,:;;;) | WARNING |
/⌒\/(
>>819 )ヽ| |/ |;,ノ | エリア51 |
( ミ ∨∨ | / .,i |______|
ノ / | | ,,i; ,, . ,;⌒∥
( \/ヽ ,,,丶, | |,,,;. ;i, ∥ヽ
\ ) ) .. ,, ´ヽ (,, ∥丿.,,,
/// ,, ,, .. ´ヽ ∥,,, ..,
`ヾ ヽミ ,, .、 ヽ .. ヽ丶,.ヽ ∥、,,
>>813 > int[][] ってのは、int配列をObject配列に入れたもんだぞ。
違うと思う…
> int配とlong配列を、一つのObject配列に並べることも出来るんだぞ。
Object[]ならできるけどint[][]では無理だと思う…
static int dimensionOf(Object array) { Class cls = array.getClass(); int dim; for (dim = 0; cls.isArray(); dim++) { cls = cls.getComponentType(); } return dim; } 基本型の配列ならこれで必ず正しい値が返る。
823 :
デフォルトの名無しさん :02/05/14 07:37
ImageオブジェクトをJpeg保存する方法ってあるかな? BufferedImage型のJpeg保存はできました。 ImageオブジェクトをどやってBufferedImageに型変換するのかわかりません。
824 :
デフォルトの名無しさん :02/05/14 07:39
>>813 げらげら。
int[]はint型データを入れることができる配列型オブジェクトで、int[][]はint[]型配列を格納できる配列型オブジェクトなり。
配列型はC++のテンプレートのようなものと思われ。
826 :
デフォルトの名無しさん :02/05/14 07:44
いままで使ったIDE系といえばeclipseをさわり程度なのですが、 さっきJBuilder6 Enterpriseを試してみました! わけわらん状態です・・・。 これってやばい? いままでずっとviとかsakuraでプログラミングしてきたのですが・・・。 JBuilderでコードをUMLに変換してくれるのはけっこう使えると 思うのですが、他の機能がわけわかめ。 CVSをちょっと試そうと したら、ローカルなリポジトリしかダメだったし・・・。 JBuilderが使えない僕って・・・。 JBuilder使えなくても、恥じゃないですか? ちょっと不安です。 ps) 僕がやっているコードは、Web系です。 Servlet/JSP/EJB/CORBAなど。
827 :
デフォルトの名無しさん :02/05/14 08:08
使ってみたのに使えないのは恥
828 :
デフォルトの名無しさん :02/05/14 08:34
VBから乗り換えたい初心者です。お願いします。 文字ベースのプログラムで、単に改行だけしたい場合どうすればよいのでしょう。 System.out.println(""); とすればできるのですが、これでよいのでしょうか? それとも、もっとよい書き方があるのでしょうか。 お願いします。
\n
>>828 System.out.print("\n");
>> 827 そっか・・・厨房に言われたら恥だわな。 納得。
>>833 人を厨房と呼べるほどの身分なら、わざわざ厨房に構わなくても十分生きていけるだろう。
何かコンプレックスを隠そうとしてる?
殺 伐 と し て ま い り ま し た
826 のほうが厨房に見えるな。
838 :
デフォルトの名無しさん :02/05/14 09:33
アプリケーションの設定ファイルは何使ってる? ini?Resource.Properties?XML?
場合によりけりだが ini 形式は使わんな。 1) JAR にまとめた後配布先で変更が必要 ⇒ 外部のプロパティファイル 2) JAR にまとめた後は変更不要 ⇒ プロパティリソース 3) ちょっと複雑な構造を持った定義 ⇒ XML 1) と 2) の区別が付いていない莫迦が多くて困るよ。
ある文字列の中に、特定の文字(列)がいくつ含まれているか、 を調べるために、regexパッケージを使うよりも簡便な方法はありますか?
looooooooooooooooooooooooooooooooooooooooooooooooooooooプッ
>>839 前いたなー。ダイアログから設定ができる開発補助用のツールが出来上がる
頃になって「JAR 中のプロパティファイルって (プログラムから) どう
やって変更するんですか?」「ハァ?」っての。
まぁリソースと設定の区別くらいつけとけというこった。
そういや国際某機器のフレームワーク使ったときにも似たようなことが
あったな。「一度 JAR を解凍して編集、再度 JAR を作り直してください」
とか逝ってた。もうアフォかと。
844 :
デフォルトの名無しさん :02/05/14 10:24
>>789 =802
配列なんて使わないで、Chain of Responsibilityパターンでやった方が(以下略)
行列のテンソル積とかどうすんの?
よくない。 -----終了-----
まあ何でもデザパタで解決できるけどね。
849 :
デフォルトの名無しさん :02/05/14 13:14
>>843 クラスパスでそのJarの前に無理やり突っ込んでやればオーバーライドできるのでは
>>845 [生の配列なんか使わない]に一票。
(それはそうと演算子のオーバーロードまだぁ?)>>牛頭リング
向き不向きを理解してないデザパタ厨の何と多いことか。
ネタニマジレスカコイイ
>>829 >>830 レスありがとうございます。わかりました。
ただ、System.out.println(""); とSystem.out.print("\n"); は
タイプ量はあんまり変わらないように思います。
ということで、どちらでもよい、が正解のような気がするのですが?
細かい話でしょうか?とても気になるのですが。
>>853 タイプ量を判断基準にする時点で痛いな。
おれはSystem.out.println()を使うけど。
System.out.println() ⇒ 環境依存の改行コードが出力される (CR/LF/CRLF) System.out.print("\n") ⇒ 明示的に LF のみを出力する よく初心者 Java 使いの作ったテキストファイルをメモ帳で開くと…
856 :
◆O.1et2EI :02/05/14 22:06
2002年5月14日(晴れ) プログラムを始めてみて、はや3ヶ月。 やっと、やっと、やっとクラスパスの設定の仕方がわかりました。 皆さんのおかげです。 これでpackage使うのが怖くなくなりました。 今日は幸せな一日でした(まる)
クラスパスを通す順序の違いで動作が変わるjavaって最高だと思います
あああああああああああああああぁぁぁぁぁぁぁぁぁぁぁぁ 855の続きが気になって眠れないよほぉぉぉぉぉぉぉぉぉぉ
859 :
デフォルトの名無しさん :02/05/14 22:37
動的リンクする言語の運命 COMがクソなのはいうまでもないと思うけど
>>857 .class file hell やね。
.NETではそんなことはないそうだが。スレ違いなのでsage。
>>860 楽観主義のあなたに乾杯。
最初のバージョンだし、IE7 や Office 2004(?) 入れたら
動かなくなるに一票。
862 :
デフォルトの名無しさん :02/05/14 23:23
>>839 なるほど・・・サンキュでした
ところで、1)の外部のプロパティファイルってどうやって指定するんですか?
2)はくさるほどサンプル見付けました(持ってる本で5冊ほど)が
1)についてはまったく見当がつきません。
>>863 シェルスクリプトやバッチと組み合わせてコマンドラインオプション
で指定するってのが定番かな。ファイル直指定じゃ無くても、
TOMCAT_HOME みたいにアプリのホームディレクトリ指定して、その下の
conf/foo.properties 固定っていうのもありかと。
>>864 すみません。いまいち分からなくて
いま、リソースプロパティを読み込むクラスを作って
そのクラスだけjar化しました。
同じディレクトリにresource.propertiesファイルを
置いているのですが、
Exception in thread "main" java.util.MissingResourceException: Can't find bundle for base name resource, locale ja_JP
at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:804)
と出ます。
同様にjarにせずにクラスファイルを実行すると
正常にリソースプロパティは読めます。(当然ですが)
1. 引数でconfファイルが指定されてればそれを使う。 2. System.getProperty("user.dir")の下にconfファイルがあればそれを読む。 3. System.getProperty("user.home")の下にconfファイルがあればそれを読む。 4. System.getProperty("my_prefix.conf.file")が示すファイルがあればそれを読む。 5. System.getProperty("java.home")の下にconfファイルがあればそれを読む。 の順に調べるとか。
ResourceBundle#getBundle() を使ったやり方は、JAR ファイルの 中に resource.properties を入れて置かなきゃだめ (クラスパス が通ってるところでも良いけど配布 & 配布先環境が…)。だから リソース形式のプロパティは、基本的に JAR 固めてから変更が 無いものじゃないといけない。
>>866 結構便利だけどしっかりドキュメントしとかないとトラブるんだよね。
設定変えたのに (先の設定が優先されてて) 動きが変わらないとか。
Properties クラスならデフォルト値付きのコンストラクタでどんどん
オーバーライドしてゆくのも良いかも。
何か自分の中で論点がずれてる気がしたので 改めて聞きます jarファイルの外に設定ファイルを置く場合 どうやって読み込ませたらいいんでしょうか?
870 :
デフォルトの名無しさん :02/05/15 02:07
あ、外に定義したファイルを読み込みたかったのか。 Properties prop = new Properties(); FileInputStream in = new FileInputStream("hoge.properties"); prop.load(in); これにファイル存在確認や I/O 例外処理などを好きに加える。 ファイルクローズ忘れんな。
>>869 >>866 をもう少し単純にすれば良いんじゃないの?
1. 引数で"-conf resourceファイル名"が指定されてればそれを使う。
3. System.getProperty("user.home")の下にresourceファイルがあればそれを読む。
5. System.getProperty("java.home")の下にresourceファイルがあればそれを読む。
インストーラは、
set INSTALL_DIR=インストールしたディレクトリ
java -jar myJar.jar -conf %INSTALL_DIR%/resource
みたいなバッチファイル(Unixならシェルスクリプト)をPATHのどこかに
インストールする。
>>872 すみません。
-confでリソースファイルを指定しても、user.homeに置いても、user.dirにおいても
失敗します。(エラーは
>>865 と同じ)
>>871 java.util.Propertiesですか・・・パッとドキュメント読んだ限りでは行けそうな気がします。詳しく読んでみます。
>>873 ResourceBundleを使っちゃダメで、自分でPropertyを読み込むんだけど、
分かってる?
ResourceBundle ⇒ JAR の中や CLASSPATH 中に存在するリソースを読み込む Properties ⇒ ローカルファイルのプロパティファイルを読み込む まぁ Properties はストリームベースならネットワーク上だろうが DB の BLOB だろうが 何でもイケるけど。
ありがとう
>>874 ー875
なんとなくResourceBundleの名前は知ってたから
全てそれでいけると思ってるでした。
そういうカラクリがあるとは・・・・
ResourceBundle はクラスと一緒に配布されてるリソースの読み込み *専用の* Properties と思ったほうが良いかも。
878 :
デフォルトの名無しさん :02/05/15 03:54
質問です。 JSPで、あるStringをShift_JISからEUC_JPに変換したいのですが、 何度やってもShift_JISのまま出力されてしまいます。 変換って通常getByteを使いますよねえ。JISやら他のコードには問題なく変換効くんですが・・・。 どなたか、他にハマった方おられますか?
<%@ page contentType="text/html; charset=EUC_JP" %> の事か? それとも str.getBytes("EUC_JP") の事か? # EUC_JP の IANA の正式表記って何だっけ?
880 :
デフォルトの名無しさん :02/05/15 04:21
>>879 後者です。getBytesの方です。
大変失礼ですが「IANA」って何のことでしょうか?
他の文献でも Shift_JISからEUC_JPへの直接変換には不具合が生じる・・ ということを目にした覚えもあります。 いったんunicodeに変換するなど必要でしょうか? それでうまくいくのかな? 経験ある方、いらっしゃいましたらお願いします。
1.4から、Properties使うよりいい方法できたんじゃなかったっけ?
>>878 確かに文字コードの変換は問題が生じる。
それは、文字が化けるという意味で
「あるStringをShift_JISからEUC_JPに変換したいのですが、
何度やってもShift_JISのまま出力されてしまいます」
というのはプログラミング上の話で、ちょっと違うような・・・
変換部分のソースを見せてもらえば回答できるかもしれません
コンテンツがShiftJISなのに一部だけEUCで表示させようと
しているわけじゃありませんよね?
884 :
!= 828 :02/05/15 06:48
>>855 横レス。
知らんかった。
でも、それがほんとなら、
System.out.println("hoge");はまずくて、いつも
System.out.print("hoge\n");
にしろってことにならない?なんか腑に落ちないなあ。
>883 そもそもページのない、出力だけのプログラムなんです。 説明足りずにすみません。 もしSHIFT_JISのページで文字化けを覚悟した上で(というか必然的に化けるよう) 一部だけEUCというのは無理な話なのでしょうか。
>>885 無理ということはない。
でも、Shift_JISのページにSSI等で埋め込んだら確実に文字化けするだろうね。
>>885 どうしてそういうことをしたいんでしょか。
また説明おかしかった。JSPだからページはあるんですが、 ノンビジュアルという意味です。 たとえば、あるクライント群にA、B、CというStringだけを投げるプログラムを作るとします。 HTMLでなく、べた書きです。 1というクライアント群にはSJISで2というクライント群にはEUCで返すといったことをするには どのような形をとればよいのでしょうか。
>
>>888 それは、ようするに「text/htmlじゃなくてtext/plainで
クライアントに投げ返したい。そのときのcharsetは
クライアントによって切り替えたい」ってことでいいのか?
>>882 クレクレ…教えて…クレクレ…情報…クレクレ
894 :
デフォルトの名無しさん :02/05/15 12:09
896 :
デフォルトの名無しさん :02/05/15 15:28
翔泳社のJavaゲームプログラミングってどうですか? ¥7,200なんで良書あれば買いたいと思います。 近くの本屋に置いてないので、是非みなさんのご意見を聞かせてください。
>>884 println() はシステムプロパティ line.separator の値を行末にくっつける。
print("...\n") ってやってると、Win で出力したファイルをメモ帳で
開いたときに、全体が一行になって表示されてしまう (LF 部分は変な記号に
なる; やってみれ)。かといって "\r\n" とかやってると、今度は Unix 環境
で動かしたとき vi で開くと ^M が付いてしまう。ローカルのファイル出力
なら println() を使うのが正しい。まぁノートパッドや秀丸は CRLF だろう
が LF だろうが自動認識してくれるが。
なのでネットワークで HTTP や FTP, SMTP などのプロトコル話す時は
println() を使わないのが鉄則 (データ部分じゃないぞ)。
ちなみに C/C++ でもテキストモードで開いたストリームへの I/O は
\n ⇔ \r\n 変換を暗黙的に行っている (Win)。
>>897 ありがとうございます。
元がとれなそう・・・。やめときます。
8 章までに何が書いてあるんだ?
逆に見てみたくなるねぇ
Cで言うscanf的な関数ってあったっけ?
903 :
デフォルトの名無しさん :02/05/15 16:41
javaで%は何を意味するんですか?
百分率
>>902 MessageFormat#parse(String) を使え
public static void main(String[] args) throws Exception{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
while(true){
System.out.print("> ");
String line = in.readLine();
if(line == null) break;
MessageFormat fmt = new MessageFormat("{0,date,yyyy/MM/dd} {1,number} {2}");
Object[] obj = fmt.parse(line);
for(int i=0; i<obj.length; i++){
if(obj[i] == null) continue;
System.out.println("[" + (i+1) + "] " + obj[i]);
}
}
return;
}
____________________________________________
> 2002/05/15 123 hello, world
[1] Wed May 15 00:00:00 JST 2002
[2] 123
[3] hello, world
>
907 :
デフォルトの名無しさん :02/05/15 17:01
class Abc { public static void main(String args[]){ System.out.println(" *"); System.out.println(" ***"); System.out.println(" *****"); System.out.println(" *******"); System.out.println(" ***********"); System.out.println(" *"); System.out.println(" *"); System.out.println("=================="); } } これをコンパイルしたら「不正~」と出るのですが、 なぜですか?
908 :
デフォルトの名無しさん :02/05/15 17:02
class Abc { public static void main(String args[]){ System.out.println(" *"); System.out.println(" ***"); System.out.println(" *****"); System.out.println(" *******"); System.out.println(" ***********"); System.out.println(" *"); System.out.println(" *"); System.out.println("=================="); } } コンパイルしたら「不正~」って出るのですが なぜですか?
>907 こっちだと Abc.java:3: 入力文字が無効です。 って出たぞ。
910 :
デフォルトの名無しさん :02/05/15 17:10
>>898 最初に、printlnに関して質問したものです。
感動的によくわかりました。ありがとうございます。
これからJavaがんばります。
>>908 4 行目、System.out の前に全角空白入ってるんじゃないの?
ステルスエラーだ!
913 :
デフォルトの名無しさん :02/05/15 18:57
addMouseMotionListener(new MouseMotionAdapter(){ public void mouseMoved(MouseEvent e){ Graphics g=getGraphics(); g.clearRect(0,0,400,300); g.fillRect(e.getX()-20,e.getY()-20,40,40); g.dispose(); } }); 黒い四角がマウスと一緒に動くのを作ってみたんですが、四角がちらついてしまいます。 対策ありますか?
914 :
デフォルトの名無しさん :02/05/15 19:31
Sunのマシンで import java.awt.*; import java.awt.event.*; public class Test extends Frame{ public Test(){ setSize(300,300); addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0); } }); } public void paint(Graphics g){ g.drawLine(0,0,200,200); } public static void main(String[] args){ Frame w=new Test(); w.show(); } } ってプログラム走らせたんだけど(Javaの本そのまま)、Windowは出てくるが線が表示されない罠 なんでだろ?(´-`)? 因みに当方Java暦3日
因みにWin2kでの動作は確認しました
>>913 Javaに限らず今どきのGUIプログラミングではたいてい同じだが、「画面が変
わった」ときにGraphicsのメソッドを使って描画してはいけない。描画するタ
イミングはプログラムが決めるものじゃないんだよ。システムが「描画しろ」
と言ってきたとき(updateが呼ばれたとき)に描画するの。
「画面が変わった」ときにやるべきことは、
・次に「描画しろ」と言われたときに何を描くべきかを覚えておく。というか
覚えているはずなので、それを変更する。
・システムに「画面が変わったんでupdate呼んでください」と依頼する。
これにはrepaintを使う。
それでもちらつくなら、double bufferと言うテクニックについて調べなされ。
ダブルバッファリングつかったら ちらつきはきえたが メモリを食いまくった記憶が
>>917 そら、通常の2倍いるわな。
でも、それ。
paint呼ばれる度にcreateImageしてないか?
>>917 おいらはウィンドウサイズが変わった時にしてたけど。
920 :
デフォルトの名無しさん :02/05/15 21:17
普通にString型の変数を宣言して文字列を入れたら、 Stringとjava.lang.Stringでは 互換性がないとかってエラーがでました。 意味がわからないので教えてください
>>920 Stringってクラスじゃなかったっけか?
>>920 「とか」じゃなくて、エラーそのままここに
コピペしてみ?
923 :
デフォルトの名無しさん :02/05/15 21:31
>>920 そもそも根本的に間違ってるよ
VB等の型と一緒にしないように
あと、その問題の個所をコピペした方が話が通じやすいよ
926 :
申し訳ありません。 :02/05/15 21:55
>>805 ありがとうございました~!!
直った!
文字でしかお礼が言えないのが残念。
>>920 どうせ同じディレクトリにString.javaとかString.classなんてのを
置いちゃったというオチでは?
>>921 ,
>>924 クラスは型の一種だよ。
928 :
デフォルトの名無しさん :02/05/15 23:24
シフトキーを押しながらマウスをクリックするというイベントを 拾う方法を教えてください。
>>927 クラスはクラスじゃないのか?じゃあ、クラス以外の型って何があるの?
まあ、日本語の取り方しだいで型なんて言葉、どうとでも取れるか
>>928 InputEvent.isShiftDown() じゃだめなの?
>>927 詳しくは、知らないけどVBで
Dim hensu as String
hensu = "AAA"
と、Javaで
String hensu = "AAA";
は、意味が違うんじゃないのかな?
上記のは、結局
String hensu = new String("AAA");
でコンストラクタからオブジェクト生成してる意になるので厳密には
型とは違うんじゃないの?自信ないけど・・・
>932 意味がわかりません
Javaの変数には型があって、それは変数に入る値の型と 合っていないといけない。 Type PrimitiveType ReferenceType PrimitiveType NumericType boolean ReferenceType ClassOrInterfaceType ArrayType (あとは略)
>>935 代入する値の型がが変数の型の上位クラスに当たれば代入は可能。と無意味に煽ってみるw
>>936 「型が合う」ってのは代入可能性を逝ったつもりです。
それにしても
>>921 や
>>924 はこういう基本的なところ
を知らなくて良く(略
…と煽ってみる。
>>937 「String型の変数」のどこが悪いんでしょ。
それをコンパイラがjava.lang.Stringとは別の型とみなした
ならば、VBとか持ち出すまでもなく原因は明らかでわ?
(とさらに煽ってみるテスト)
>>939 >「String型の変数」のどこが悪いんでしょ。
悪いとはいっていない
>それをコンパイラがjava.lang.Stringとは別の型とみなした
>ならば、VBとか持ち出すまでもなく原因は明らかでわ?
だから~、そういう意味じゃないって言っ(略)
相談スレだから、これ以上はやめとくテスト
>>939 あと、VB持ち出したのは俺じゃないぞ(w
質問です。 Javaはどうやったら動きますか? JDKってやつを手に入れればいいんですか? 有料ですか? 他に必要なものはありますか?
>>943 アビバのパソコン検定資格は必須です。
必ず取りましょう。
取ったらまた来て下さい。
>>932 String hensu = new String("AAA");
String hensu = "AAA";
実はまったく同じだったりする。
何で今日はこんな痛い連中が多いんだ?
>>447-448 > String hensu = new String("AAA");
> String hensu = "AAA";
この2つは違うよ。
String test() {
String hensu = "AAA";
return hensu;
}
は、何度呼び出しても同じ(==で比べてtrueになる)オブジェクトを返す。
よくわからん質問には、まず質問の意味を聞くか、もしくはさらに 具体的な情報を求めるかするか、でなければ「放置」のが定石だと思われる。 が、しったかぶりして妙な突っ込みいれるやつは痛い。
さて、そろそろ新スレだと思われるが、なんかルール作ってあったっけ?
ル…ー…ル…ナ…ン…テ…ム…シ
そいや、前回、前々回と新スレ出来る前にスレ使い切ってたな。
どうせ初心者隔離スレだし、
>>1-6 使いまわしでいーんじゃねーの?
でもタイトルに初心者歓迎とかネタ心者歓迎とかやめようよハズカシイ ヒトニジマンデキナイヨ
こんどは何心者になるんだ?(w
確かネタ心者スレと合流する前はシンプルだったんだよな。 そろそろ元に戻すのに同意。
966 :
不明なデバイスさん :02/05/16 02:15
学校でjavaの勉強が始まり、課題がでる予定です。 おそらく授業中には課題が終わらないので、家でやりたいのです。 初心者向きのアプリケーションは何があるんでしょうか?
ハローワールドとか。
えーと、将来プロの開発者になりたいなら JDK 使ってください。
>>6 にあります。
授業の単位が欲しいだけ、もしくは適当な開発して適当に食って行ければ良いなら…
何か良いツールあるのかな?
>>968 966は「課題に適当なプログラム」を探していると思われ
学校と同じ環境そろえればいいんじゃない? #とかいって、AIXとかだったして。
課題は出るんでしょ? 初心者向けのアプリケーションって言ったから、
アプリケーション = 開発環境なんだろうな、と勝手に憶測したんだが。
>>966 が真意を出さんと答えが出んので保留で良い?
保留でよい。
finalizeで無限ループしたらどうなるんでしょう? GCが止まっちゃうんでしょうか?
974 :
デフォルトの名無しさん :02/05/16 03:43
ResultSetのgetString()について質問させて下さい。 環境:jdk1.2.2、oracle7.3 目的:スクロールを使用し同じデータを2度出力させる。 (抜粋) Statement stat = Conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); ResultSet rsQuery = stat.executeQuery(sql); //1回目 System.out.println("一回目"); while (rsQuery.next()) { String kno = rsQuery.getString("管理番号"); System.out.println(kno); } //2回目 System.out.println("二回目"); rsQuery.beforeFirst(); while (rsQuery.next()) { String kno = rsQuery.getString("管理番号"); System.out.println(kno); } 結果:015KUS0002と表示したい所、0x3031354B555330303032と表示される。 また、refreshRowを入れて試したところ、サポートされていない機能です。 というメッセージが出てきました。 スクロールを使わない(出力を1度だけにする)と問題無く出力出来ています。 この現象の対処に付いてどなたかご存知の方、教授願います。
basicとかshellスクリプトとかとかperlとかスクリプト型の言語ずっと使ってたから、 いまいちオブジェクト指向な考え方になれなくて、javaやっててもプログラムがフローな感じになって結局わかりづらいソースになってしまうんですが。 こんなんじゃ駄目ですよねぇ。 どうしたらオブジェクト指向な思考になれるでしょうか。 プログラムくむ前にきちんとした設計ってやっぱり必要なんでしょうかねぇ。
>>973 ファイナライザ用スレッドと GC はそれぞれ独立してる。finalize の中
で無限ループしても GC は機能するだろうが、今度は finalize される
インスタンスが無くなるんでメモリは減らないかも。
>>975 むかーし俺も同じこと考えた。まあ Java 流儀を矯正と思ってやってみ。
JDK のソースを読んだり API リファレンス読んだりして、なるべく
「作った人が何を意図してるか」を実際に汲み取ってみると良いかな。
レス遅れてすいませんです。あれから寝てしまったので・・・。
んで結局
>>927 さんので解決しました。
ファイル名String.javaにしてました。えへへ。
他にもレス下さった皆さん、ありがとうございました。
>>974 スクロールなどのJDBC2.0の機能はドライバによって
実装してないものもあるよ。
>>978 sqlを二度投げて回避してみます。
どうもありがとうございます。
finalの使い道が分りません public void hoge(final int i)とpublic void hoge(int i)の違いは何でしょうか? iは常に同じポインタしか見ないのでメモリの節約になるってことでしょうか?
>>980 iの値を変えられない。
メソッド内からは定数に見える。
>>981 分りました。
ありがとうございました。
AccessにつなぐJDBCドライバってあるの? ODBC-JDBCブリッジじゃなくて。 それともODBC-JDBCブリッジで十分なの? 教えて下さい。猛者様方。
984 :
不明なデバイスさん :02/05/16 19:30
jdkをインストールしてセットアップしたのですが、最初の設定とかわからなくてコンパイルできません。 コンパイルさえできればいいのですが、どうやって設定するんでしょうか?
985 :
デフォルトの名無しさん :02/05/16 19:36
986 :
デフォルトの名無しさん :02/05/16 20:11
このスレ、消費早いね…。
988 :
不明なデバイスさん :02/05/16 20:45
>>987 win2000です。
環境変数を設定するということがわかったのですが、調べてもよくわかりません。
'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
このようにでてしまいます。
ちなみに、今、セットアップした状態ですが、「c:」という場所にjdk1.2.2というファイルがあります。
正しくは、C:\という場所です。
990 :
デフォルトの名無しさん :02/05/16 20:48
>>989 pathが設定されてない
詳しくは
検索すれ
( ´3`)ムーン
まずアプレットから独学中です。 ところで、JAVAの命名亀頭とか、おおっと命名記法ないですかね。 Cでいうところのハンガリー記法みたいなの。 アドレスおねがい。
@ノノヽヽヽ@ ミ _ ドスッ ( 0^~^)─┴┴─┐ / つ. 9 9 6 │ /_____|└─┬┬─┘ ∪ ∪ ││ _ε3
@ノノヽヽヽ@ ミ _ ドスッ ( ・^▽^).─┴┴─┐ / つ. 9 9 7 │ /_____|└─┬┬─┘ ∪ ∪ ││ _ε3
1000
~oノハヽo~ ミ _ ドスッ ( ^▽^) ─┴┴─┐ / つ. 9 9 8 │ /_____|└─┬┬─┘ ∪ ∪ ││ _ε3
@ノノハ@ ミ _ ドスッ ( ‘д‘) ─┴┴─┐ / つ. 1000 │ /_____|└─┬┬─┘ ∪ ∪ ││ _ε3
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。