1 :
デフォルトの名無しさん :
03/12/17 07:21
2
1
5
6 :
デフォルトの名無しさん :03/12/17 11:36
import宣言文の import javax.servlet.*;が解決できません。 CLASSPATHの環境変数でservlet.jarは通してあります。 javaファイルは\examples\WEB-INF\classesへ置いています。 ご教授お願いいたします。 (環境) windows2000 tomcat4.0.3 j2sdk1.4.2_02
>>6 classes は class をおくとこ。
jar は lib におくもの。まずそれでやってみ。
環境変数なんか使うな
>>7 jar を classes に置いたなんて書いてないぞ
読み間違い
補足です。 servlet.jarファイルはtomcat\common\libへ格納しています。 宜しくお願い致します。
12 :
デフォルトの名無しさん :03/12/17 14:32
コマンドラインでやってるのか? ならためしにecho %CLASSPATH%とやってみ。
ご返信ありがとうございます。 コマンドプロンプトで[echo %CLASSPATH%]を実行したところ、 echo %CLASSPATH% C:\Tomcat-4.0.3\common\lib\servlet.jar 上記のように表示されました。
クラスパスは環境変数に設定するよりも、 javac -classpath で設定したほうがいいよ。 昔はともかく、このやり方が今の流行。 完成したアプリを実行するときも環境変数はいじらないのが、 推奨されていたやりかただったとおもうよ。 jarファイルにまとめて、 マニフェストファイルのなかにクラスパスを記述しておくとかね。 -classpathとタイプするのがめんどくさかったら、 Eclipseとか、Antを使えばいいんだし。
前すれの↓わかるひといませんか? ネットワークゲームのチート対策で使えると思うんですが。 > 770 名前:デフォルトの名無しさん[] 投稿日:03/12/12 17:29 > > 署名つきjarファイルのJavaアプリがあるとして > 実行時に今動いているアプリの自分自身の署名を取得して > チェックする方法を知っている方いませんか? > > たとえばURLClassLoaderなどで動的にロードされるプラグイン側から > ホストJavaアプリの署名をチェックしたいのですが。
16 :
デフォルトの名無しさん :03/12/17 18:10
下のような感じで書いてあるプログラムがあったのですが、1 : 0はどういうことを しようとしているのかが分かりません。参考書も調べたのですがありませんでした。 どなたか教えて頂けませんか? int i = button.isSelected() ? 1 : 0 ; if(int i == 1){・・・} if(int i == 0){・・・}
ウヒョ かぶったよ。 しかし下の2行はなんなんだろう・・・。
ああいう宣言でも0で初期化されるってことでない?
22 :
デフォルトの名無しさん :03/12/17 21:21
javaでtxt内の指定の文字列を検索して その数を抽出する方法を教えてください BufferedReaderとかfileWriterなど 使ってもうまくいかないです
>>22 readで全部読んで数えるしか方法がないかもね。
それにしても
>>23 は不親切だね
25 :
デフォルトの名無しさん :03/12/17 22:03
>>24 すいません
一文字ずつreadで読んで
equalで一個一個照らし合わせるって事でしょうか?
もしそういうサイトとかあれば教えてください
1文字づつではなくて指定サイズの文字列づつです。 readを繰り返してEOFに達したらそのサイズを合計すればよいです。 skipを繰り返してEOFに達したらそのサイズを合計する手もあります。 java read skip eof などでググればいいですよ。
>>6 エラーメッセージは本当にそれだけか?
と、疑いをかけてみるテスト
28 :
デフォルトの名無しさん :03/12/17 23:31
ゲームを作っていまして ボタンを押したらデータを初期化するっていう風につくりたいんですけど 初期化の具体的な例を教えてもらえませんか?
29 :
デフォルトの名無しさん :03/12/17 23:33
>>28 どんな環境でゲーム?
ブラウザ専用?
JavaApplication用?
JavaApplet用?
Servlet用?
J2EE用?
>>28 その聞き方でぴったりの具体例が出てきたら逆にすげえ
31 :
デフォルトの名無しさん :03/12/17 23:39
void 初期化() { 体力=初期値; }
32 :
デフォルトの名無しさん :03/12/17 23:41
33 :
デフォルトの名無しさん :03/12/17 23:43
ゲームのデータって何?ランキングとかのこと?
念のためアプレットを起動したクライアントのハードディスク のデータを初期化することはできません。JAVAの仕様です。
>>28 具体的でない質問に具体的な答えはできません。
38 :
デフォルトの名無しさん :03/12/17 23:47
>>36 カジノゲームでプレイヤーが所持金を持って賭けをするわけですが
そのボタンを押すと所持金が最初の所持金に戻るようにしたいんです
>>36 クライアントがハードディスクの初期化を許すならできるような…
>>38 それができなくて、他の部分がどうしてできるのかがわからず
42 :
デフォルトの名無しさん :03/12/17 23:50
void 初期化() { 所持金=初期値; }
43 :
デフォルトの名無しさん :03/12/17 23:50
>>38 shojikin = FIRST_SHOJIKIN;
>>38 お前を初期化した方がいいね。
まず睡眠薬を用意しな
配列aには12:00から15:00まで1分刻みで時間(String型)が格納されていて、 配列bには1から9の数字(int型)が格納されているとします。 配列aの長さは12:00から15:00まで3時間の間1分刻みなので181で、 配列bの長さも同じです。 コマンドラインから入力した時間(String型)とa[i]の値が同じとき、 b[i]を返すようなプログラムを作りたいのですが、制御文をつかって どのように作ればよいのでしょうか?
46 :
デフォルトの名無しさん :03/12/17 23:54
50 :
デフォルトの名無しさん :03/12/17 23:59
>>38 そういうのは初期化とはいわんような。
たとえば
>>31 のような適当な仕様の場合、
初期値が500円だとして
ある程度金がたまった(10万円程度)ところで一旦ゲームを中断し、あとからゲームを再開するのに
たまった金がなんで金が500円に戻っているんだ? 納得いかん!(バグだ!)ってことになる。
53 :
デフォルトの名無しさん :03/12/18 00:26
コンストラクタ以外のメソッドって 100%、voidかreturnのどっちかがあるのでしょうか? intもvoidもStringもreturnもないメソッドってありえないのでしょうか? もしある場合どういった場合に使うのでしょうか?
>>48 頭をバールのようなものでたたけば初期化される可能性は高い。
今すぐやってみな。
>intもvoidもStringもreturnも イミガワカラン
56 :
デフォルトの名無しさん :03/12/18 00:36
>右側ってカットできるのでしょうか? >上記でやって一応コンパイルも通りましたけど 答えが出てるのに質問しないでくれる?
58 :
デフォルトの名無しさん :03/12/18 00:42
>>57 味はコンパイルは通るけど
「初めて見たけどforの右側はカットするのは常識なの?」
「その場合、わざわざfor文にする意味」
味?
60 :
デフォルトの名無しさん :03/12/18 00:50
>>56 できる。普通は for(/*初期化*/; /*条件*/; /*更新*/) だが、
初期化・更新が空欄だと何もされず、条件が空欄だとJavaの場合はtrueと見なされる。
どこが空欄でも構わない。C言語でも空欄にできる。
ただ>56のリンク先のソースでは、最初にiを0で初期化してもムダ。
62 :
デフォルトの名無しさん :03/12/18 01:14
staticなメンバ変数が、一つしか存在しないというのは分かりましたが、 staticなメソッドの中の変数はどうなんでしょうか?
63 :
デフォルトの名無しさん :03/12/18 01:14
64 :
デフォルトの名無しさん :03/12/18 01:30
前スレの982で >HelloWorld.javaからHelloWorld.classを作り、HelloWorld.mfファイルを作って >>jar cfm HelloWorld.jar HelloWorld.mf *.class >とコマンドラインに入力するとjarファイルは出来たのですが、 >Fatal exception occurred. Program will exit. >と出て実行出来ません。何の問題でしょうか? という質問をしたものです。 どうやらHelloWorld$1.classというファイルが出来ており圧縮していなかった ためだと思われます。985さん、987さん、ありがとうございました。
>>64 インナークラスとか使うといろいろできちゃうからね。
そういった意味でもeclipseとかを使うといいのかもね。
>>62 あなたどなた?
なんに対してのレス?
>>62 ローカル変数はスレッドごとに割り当てられると思っておけばよい
>>65 HelloWorld$1.class だと匿名クラスだね。
68 :
デフォルトの名無しさん :03/12/18 02:06
ソースのコンパイルという作業は 具体的にj2dkのどのファイルが行なっているのでしょうか?
70 :
デフォルトの名無しさん :03/12/18 02:24
>>69 実際にコンパイルがどのファイルを通じて行なわれているか
単純な疑問です
java で書かれたコンパイラクラスが tools.jar にあって それがコンパイルしてます。
javacを覗いてみたら「com.sun.tools.javac.Main」っていうクラス名っぽいものがでてきたから、これかもね
74 :
デフォルトの名無しさん :03/12/18 06:58
複数のVMであるファイルを更新・参照します。 この時にロックファイルを使って、他のVMが そのファイルを更新しているときは、 他のVMがファイルを触れないようにしたいです。 VMが多くなるとロック待ちが長くなってしまったり、 ロックファイルの生成中に他のVMがロックファイルを 作ってしまったりとなかなかしっくりこないです このあたりで参考になるサイトとかありますか?
排他制御はアトミックな処理ですので、 排他ファイルでなくて、排他ディレクトリにしましょう。 ディレクトリ作成を試みて作れなかった->既に有るときには ロックされているものとして扱いましょう。 秘密の呪文synchronizedを忘れずに。
eclipseとTomcatを使ってhtmlからServletを呼び出すんですが、 パスの指定のやりかたがわかりません。 WEB-INFのclassファイルを示せばよいのでしょうか? それともURLから呼ぶときみたいに/servlet/HelloServletってな感じでよべばよいんですか? いろいろ試したんですがうまくいきません。教えてください。 ファイル構造は、 Prg -- Web-INF/src -- HelloServlet.java | |- Web-INF -- HelloServlet.class | --Index.html ってな感じです。 (本当はパッケージに入れたいんですが、やっぱりやり方がよくわからないのでこうなってます)
>>22 亀レスだけど、これでやってみそ。Java1.1でも動く(と思うw)。
暇な時に java.lang.String のメソッドを眺めてるとイイ!!かも。
String str="hogeabchogeggghogeunyahoge";
int i=0,j,k=0;
while(true){
j=str.indexOf("hoge",i);
if(j<0)break;
i=j+1;
k++;
//System.out.println("i="+i+" j="+j+" k="+k);
}
System.out.println(str+" の中に hoge が "+k+" 個ありますた。");
80 :
デフォルトの名無しさん :03/12/18 12:34
Javaで、OSをシャットダウンするプログラムってかける?
>>80 メモリリークで・・・
あとは・・・わかるな?
>>81 メモリーリークさせてもJava VMのバグでつつかない限りは、
その被害はJava VM内に留まり外部には影響しないのではないかな。
-メモリーリークさせてもJava VMのバグでつつかない限りは、 +メモリーリークさせてもJava VMのバグでもつつかない限りは、
>>81 ワラタ
>>80 システムコールで shutdown -h now とかじゃダメ?
以前Winでやったのは JNIでC使っちゃった。
純粋にJavaだけでってのは聞いたことがない。あったら教えて>他の人
85 :
デフォルトの名無しさん :03/12/18 13:11
し、システムコール!?
>>85 ん、システムコールって言葉の使い方、なんか間違ってる?
システムコールって聞くと INT 21h を思い出すんだが・・・・ もっと高レベルなシステムコールがあったら教えて、頭の新しい人
>>87 お前の知識が深いのは解ったから黙っててくれ。知識自慢なぞ誰も
求めちゃいない。お前みたいな香具師が会議を長引かせる。
これごときで「知識自慢」なんて呼ばれるのかよ 俺自分で思ってるより物知りなんだな ハハ
> 自分で思ってるより物知りなんだな その通り! 21h じゃないアーキテクチャもあるとかそーいう事は 気にしないで突っ走ってくれ ハハ
お前ら皮肉になってないよ
>>80 さんに伝わればいいでし。ガキの喧嘩は好きな人が好きなだけ続けて下さればいい。
>>80 補足しとくね。次の記述でOSのコマンドラインが動きます。
java.lang.Runtime.getRuntime().exec("dir");
try-catch は必要。import java.lang.*; も必要。プロンプト画面は起動しない。
リダイレクトできたりできなかったり、パラメータの引渡しが上手く行かなかったりと、
割とクセが多い。Javaでシェルスクリプトなりバッチファイルなりを生成して、
それをコールするようにすると確実。
UNIX系のシェルの場合は実行属性を忘れないでね。先に実行属性を付けたファイルを
ダミーで作っておいて、Javaプログラムから同じファイル名で生成すれば確実。
あと、カレントディレクトリに注意。シェルのアタマで cd で目的のディレクトリに
移動するように記述しておけば確実。
> import java.lang.*; も必要。 …
>>92 動かねえぞ、ボケ。
public class SystemCall {
public static void main(String[] args) throws IOException {
java.lang.Runtime.getRuntime().exec("dir");
}
}
java.io.IOException: CreateProcess: dir error=2
at java.lang.Win32Process.create(Native Method)
at java.lang.Win32Process.<init>(Win32Process.java:66)
at java.lang.Runtime.execInternal(Native Method)
at java.lang.Runtime.exec(Runtime.java:566)
at java.lang.Runtime.exec(Runtime.java:428)
at java.lang.Runtime.exec(Runtime.java:364)
at java.lang.Runtime.exec(Runtime.java:326)
at SystemCall.main(SystemCall.java:18)
Exception in thread "main"
>>95 > java.lang.Runtime.getRuntime().exec("dir");
java.lang.Runtime.getRuntime().exec("cmd.exe /c dir");
97 :
デフォルトの名無しさん :03/12/18 15:18
Javaでミリ秒を正確に取得できる方法ってありますか? Date.getTime() System.currentTimeMillis()はうちの環境(XP 1.4.2_02)だとだいたい10msの精度しかありませんでした。 無限ループで経過時間を出力すると .... 10ms 10ms 20ms 20ms .... って感じです。より精度の高い時間の取得(日時などは必要なし)があれば教えて頂けますか?
いろんなお返事ありがとうございました。 もう1つ、質問があります。 逆に電源をつけることってできますか?リモートとかで。
>>98 なんですと〜っ。
無いんですか・・。
Log4Jでログ出力は**ナノ秒しかかからないとか書いてあったのでてっきりそこまで精確な時間取得方法があるものだと・・。
ちょっとしょんぼり&レスサンクス。
>>101 =Yahoo社員さん?
Yahooのチャットがどうやって実現してるのかがキニナル
アプレットとサーバで通信したり、サーバから他のクライアントへ発言を
コールバックしたり、どうやってるん?
>>102 サーバ側で ServerSocket 使えりゃ簡単に実現できるような…
>>103 試しに作ってみそ。生半可ではできないことが解るから。
105 :
デフォルトの名無しさん :03/12/18 21:03
すいません while文で Stringの変数 != null: はnullになるまでってわかるんですが、 int型の変数 != -1; の意味がわかりません なんで-1なのでしょうか?
106 :
デフォルトの名無しさん :03/12/18 21:20
すいません 例外でthrowsの意味がよくわかりません メソッド単位で例外処理するってのが どういうことなのかよくつかめないのですが…
(*^.^*)
109 :
デフォルトの名無しさん :03/12/18 21:39
>>108 数値の終了が表示はされないけど-1ってこと?
>>109 「数値の終了」
なんて文学的な表現なんだ。
>>106 throws は、メソッドで例外を処理する、ではなく、
「このメソッドはこれこれの例外を投げる可能性があるよ」
という宣言です。
あえていうなら、
「このメソッドはこの例外を処理*せずに*投げてしまいます
(だから使う人が受け取ってなんとかしてね。)」
という意味です。
>>109 Stringの変数 != null: に合わせるなら
Integerの変数 != null: なんだけど、それじゃ使いにくいので
便宜的に null の代わりに -1 を使ってるだけ。なんでも良い。
114 :
デフォルトの名無しさん :03/12/18 22:52
>>112 ありがとうございます
つまり自分勝手な奴ってこと?
後一つ
try〜catchとthrowsの使い分けってありますでしょうか?
こういうときはtry〜catch(自分で処理します)、
こういう処理はthrows(処理してください)
ってどういう処理で使い分けているのでしょうか?
>>114 > try〜catchとthrowsの使い分けってありますでしょうか?
自分で処理できる時は catch する。
自分で処理できない時は throws で投げる。
一般的にコンポーネントの作成者は throws で投げる。
コンポーネントのユーザは catch で捕まえる。
>>114 そのメソッドをコールするユーザが物凄くバカな引数を与えたことが
原因でにっちもさっちも逝かなくなったのに、ちゃんと動いているふり
をしろと???
117 :
デフォルトの名無しさん :03/12/18 23:16
FileReader fr = new FileReader(args[0]); int i; String s = null; While((i = fr.read()) != -1 ){ すいませんこういう処理があって ファイル内の文字列を読み込んだとき文字がなくなるまで読み込みたいのですが この場合int型ならファイルの中味が全て数字で取得されてしまいます。 これを文字列として読み込みたい場合どうしたらいいのでしょうか? FileReaderのreadメソッドはString対応はないみたいで While((s = fr.read()) != null){ のようにStringで取得しようとしたら コンパイルエラーが出てしまいます またintで取得したのをInteger.PaeseInt(i)にしても意味がないし 教えてください
>>117 > FileReader fr = new FileReader(args[0]);
BufferedReader br = new BufferedReader(new FileReader(args[0]));
> While((i = fr.read()) != -1 ){
while(null != (str = br.readLine())){
ああ、そこで!=-1が出たのか?
120 :
デフォルトの名無しさん :03/12/18 23:26
>>118 ありがとうございます
ただ、一文字ずつ読み込んで文字列判定のプログラムを作りたいのですが…
if(s.equals("k")){
counter++;
}
にように特定の文字がいくつあるかカウントしたいのですが…
ReadLineなら一行ずつで処理は早くなるけど文字列判定って出来るのでしょうか?
それとも違うやり方とかあるのでしょうか?
>>120 > 特定の文字がいくつあるかカウントしたいのですが…
FileReader fr = new FileReader(args[0]);
int c, count = 0;
while(-1 != (c = fr.read())) if(c == 'k') count++;
> ReadLineなら一行ずつで処理は早くなるけど文字列判定って出来るのでしょうか?
大文字小文字は正確に。
一行ずつで処理するからといって速いとは限らない。
「文字列」判定はできるよ。
122 :
デフォルトの名無しさん :03/12/18 23:46
>>121 ありがとうございます
うまい事いきました
勘違いしてたのですが
intでもreadで読み込んだときって数字だけじゃなく
文字列も読み込めるんですね
というか
変わったのって
if(i.equals("k")){
↓
if(c == 'k')
だけなんですが
>>122 > intでもreadで読み込んだときって数字だけじゃなく
> 文字列も読み込めるんですね
Reader のサブクラスでは read() で「文字」を読み込む。「文字列」は読み込めない。
> だけなんですが
まぁ質問者がアレな上にアレだったので仕方ないよね。良くあることだし。
>>122 intの下位バイトを使うちゅうだけかと。
Javaはcharとintで実行時のメモリ効率変わらない(実行時はどっちも
4バイト)から、intで受けるようにしている、つうことでは。
>>124 > Javaはcharとintで実行時のメモリ効率変わらない(実行時はどっちも4バイト)
おいおい…
> から、intで受けるようにしている、つうことでは。
Reader#read() の戻り値が char だったらどうやって ストリームの終端を返すつもりだ?
>>125 >Reader#read() の戻り値が char だったらどうやって ストリームの終端を返すつもりだ?
EOFExceptionで充分では。
>>126 > EOFExceptionで充分では。
ストリーム終端は異常状態じゃないので
理由が無いなら例外は使うべきじゃないね。
new String(null); // ←あいまい
あいまいの具体例
133 :
デフォルトの名無しさん :03/12/19 00:42
インターフェイスの意味がわかりません interface GreetingInterface { void greet( ); } class Japanese implements GreetingInterface { public void greet( ) { System.out.println("こんにちは"); } } class English implements GreetingInterface { public void greet( ) { System.out.println("Hello"); } } public class Greeting { public static void main (String[ ] args) { Japanese insJ = new Japanese( ); English insE = new English( ); insJ.greet( ); insE.greet( ); } } とあったときに インターフェイスをimplementsする必要性というか クラス名.メソッドだけで普通に実行を処理できると思うのですが… 具体的にインターフェイス部分のvoid greet(); は各クラスにどのようなかかわりを持ってるのでしょうか?
>>133 > クラス名.メソッドだけで普通に実行を処理できると思うのですが…
static メソッドじゃないので無理。
上の例だと、 GreetingInterface を implements したクラスは 必ず void 型の greet( ) というメソッドを持つので 使う側は void 型の greet( ) だけはガチ!と叫びながら安心した日々を送れる。
>>133 そんな例しかかいてない糞教科書は、さっさと捨てましょう。
記述方法が分かっても、なんの役に立つのかさっぱりわからんよね。
>>133 本当にただ「動かすだけ」なら抽象クラスもインターフェースもいらないんだ。
はっきり言って設計の問題なんだ。そこを理解してくれ。
>>133 全く同じ質問を見たことがある。これってやっぱり一度はつまづくのかな?
でもどっちもクソ教科書のせいっぽいな。
例としては Comparable を使ったほうがいいと思うんだよね。
電池クラスも分銅クラスも、「比較」できるので TreeSet に扱わせることができます、みたいな具体例。
139 :
デフォルトの名無しさん :03/12/19 01:00
>>136 というかほとんどの教科書で
色を塗るとかわけのわからん例えばっかだし
書き方は載ってるがなぜ必要なのか?
あることによって何が可能なのかが全く書いていない
そこらへんの詳しいサイトとかないの?
>>139 まともな教科書教えたら書いてあることが分からんとか
抽象的なことしか書いてないとか言いだしそうな予感。
>>139 GOFのデザインパターンを読むと分かるかも。
ただ、早いうちにアレに関わると、単なる整理のための手段であること
を忘れて狂うバカがいるんだよな…
インターフェースの存在意義について触れてる本はあまりないよね。 せいぜい「Javaには多重継承がないがインターフェースならいくらでも実装できる」とか ピントのズレた解説だったりして。 だから List list = new ArrayList(); とかこういうの見ても「何の意味が?」とか思っちゃうんだよね。
インターフェースって単なる補助的なものだろ 別になくても困らない ただ後々面倒かもしれないが
最近は Interface に対してプログラムする。 TDD する場合 Interface じゃないと MockObjectが作りにくい。
>>144 実装を簡単に交換できることによる効能の一つだよね。
ヤヴァイネタの割にマッタリ進行。
>>133 つか、その例がそれ以上発展しないんであれば、教科書が糞。喪前は悪くない
148 :
デフォルトの名無しさん :03/12/19 01:55
>>148 典型的な「半可通の自己満足」です。それで人様から金とるつもり
というのは、犯罪的だとさえ思います。お茶濁しバレバレなので
捨ててオケ。
水泳インターフェースを埋め込まれたxxxは全て泳げるようになるのか。すげー
>>148 説明がおかしいので気にすることないです。
「外部のクラスに利用(アクセス)させるために、
そのクラスが要求しているインタフェースを実装する必要がある」
という方が分かりやすいと私は思います。
利用の幅が広がるのではなく、単に実装の必要性があるだけです。
前者の言は「外部の、ありとあらゆる未知のクラス」という印象がありますが、
実際上は「外部のうち、利用を想定しているある特定の既知のクラス」に対する実装であることが主です。
#Button 以外のクラスから actionPerformed を呼ばれても困るんだから、
public クラスでぽんぽん ActionListener 実装すな、とか、具体例にいずれ出会うでしょう。
>>151 泳げなかったら DrownException 投げるんだよ。多分。
皆のもの、Java が静的型付け言語であるから インタフェースが必要だと認識しているか?
>>156 とか言いながら、世の中JavaBeans+リフレクションで型の動的解決
しまくりなフレームワークにミチミチているけどね。
>>157 まあ、まったく静的型付けがないよりは選択の自由があるとも言えるなw
静的型解決するコンパイル言語ってのが時代遅れなのかもと思う今日この頃。
静的型付けができる方が堅固。 実行するまで何が起こるかわからないもんで大規模エンタープライズシステムとやらを作れるか? 動的解決にすれば実行時の柔軟性・拡張性が増す。その方面に最大限進めたのがRuby 要はバランスの問題なんだが、 ベースの静的型付け+リフレクションでちょっとだけ動的解決 ってのはいい落としどころだと思うよ。 リフレクション使いまくり動的解決しまくりってのは一見自由な世界に見えるけど、 逆に言えばJavaの最大の利点である堅固性を低くしてしまっている。 つまり俺はStrutsが嫌いだと。
難しい理由をつけているが、たんにstruts-configを書くのがめんどくさいだけとみた。
そのstruts-configが正しく書けているかどうかは誰がいつ保証してくれるんだい?
163 :
デフォルトの名無しさん :03/12/19 15:31
Hmac-MD5を使いたいのですが
ttp://java.sun.com/j2se/1.4/ja/docs/ja/guide/security/jce/JCERefGuide.html#HmacEx のサンプルを実行するとAlgorithm HmacMD5 not availableとエラーが出て使えません
phpでmd5を使ってhmacを実装するソースがあるのでどなたか移植してもらえませんか?
ttp://jp2.php.net/manual/ja/function.mhash.php public static String md5 (String text) {
String crypt = "";
try {
MessageDigest md5 = MessageDigest.getInstance("MD5");
crypt = toHexString(md5.digest(text.getBytes("ASCII")));
} catch (Exception e) { }
return crypt;
}
private static String toHexString(byte[] buf) {
StringBuffer sb = new StringBuffer();
int n;
for (int i = 0; i < buf.length; i++) {
n = buf[i] & 0xff;
if (n < 16) sb.append("0");
sb.append(Integer.toHexString(n).toUpperCase());
}
return sb.toString();
}
164 :
デフォルトの名無しさん :03/12/19 15:44
javaゲームを外部から仕様を変えてしまうツールって どういったツールでしょか? 裏ワザみたいにやってみたいです
ある文字列を暗号化して、また復号するにはどうすればいいのでしょうか? byte[]だけならうまくいくのですが、文字列で同じようにすると javax.crypto.BadPaddingException: Given final block not properly padded というエラーが出てしまいます。
167 :
デフォルトの名無しさん :03/12/19 19:40
JavaでフリーのDTD、XML Shemaのパーサーってないですか?
まただ
パーサじゃないだろ。JAXB でググれ。
JSPってコンパイルする時 Javaファイルに変換されると思いますが そのファイルへの変換をする実行ファイルはJDKのどこでやっているのでしょうか? また変換されたJavaファイルはJDK1.4ではどのディレクトリに作られるのでしょうか?
171 :
デフォルトの名無しさん :03/12/19 22:23
FileReaderであるファイルの指定した行だけを読み込みたい時、 具体的には3行目、7行目、12行目だけを読み込みたいのですが 教えてください
172 :
デフォルトの名無しさん :03/12/19 23:15
自宅で作って、完成したプログラムを、学校で実行しても、java aaa.class not found (正確じゃないかも) とIEの左下に出て、実行されないのですが、何故でしょうか。灰色の四角だけ出ます。 もちろんアプレットでです。 管理者権限じゃない IEのバージョンが低い(でも、学校もIE6だった) javaをインストールしてない?(ネットサイトのjavaは実行できる) など考えましたが、理由が不明です。
173 :
デフォルトの名無しさん :03/12/19 23:24
レイアウト構成など表示するのはJSP 実際のSQLはjavaに書きたいのですが こうすることで表示レイアウトの設定はJSP一つで その時のデータの条件で 見るjavaファイルさえ変化すれば比較的、楽になると思うのですが それの接続方法はどうすればいいのでしょうか? JSP側でjavaのSQLを引っ張ってくるのに何を設定しなければいけないのでしょうか? 教えてください
おまえら! 質問が分かりにくいぞ!!
DTD、XML スキーマを解析してJavaのオブジェクトにマッピングしてくれるライブラリを探してます。JAXBはXMLをJavaのオブジェクトにマッピングしてくれるものだと理解してるのですが。
>>172 それはFAQの類だとおもうけど、
>>172 の作ったプログラムが、バージョン1.4のJava VM向けにコンパイルされているからだろう
学校のIEのVMが1.4でなければ、当然動かない。
javac -target 1.1 とか、そんなオプションをつけてコンパイルしなおせば、学校のIEでもたぶん動くよ。
ただ、最初から、VM自体入っていなかったら、動かないだろうけれど。
>>171 readLine() で3行目、7行目、12行目の時だけ読み込む
178 :
デフォルトの名無しさん :03/12/20 01:19
>>177 それをどうすればできるか聞いてるんですが
それもできないようじゃここで質問する以前の問題。やり直せ。
>>178 いや、まあ死ななくてもいいとはおもうが、
普通に1行目から12行目まで、1行ずつ読みとっていけばいいのではないかな。
必要な行だけ、String型の変数にいれるなり、
3行目,7行,12行目を読みとったときに、その都度必要な処理をするなり
>>171 BufferedReader br = new BufferedReader(new FileReader(filename));
int lineNumber = 1; //0オリジンでなら 0 にする。
String line;
while(null != (line = br.readLine())){
switch(lineNumber){
case 3: System.out.println(line); break;
case 7: System.out.println(line); break;
case 12: System.out.println(line); break;
}
lineNumber++;
}
br.close();
物体をRotationInterpolatorを利用して回転させているのですが 今まではスクロールバーに変化が生じたときに universe.getLocale().removeBranchGraph(scene); scene = createSceneGraph(); scene.compile(); universe.addBranchGraph(scene); このように切り離して再び繋いで、回転速度を変えていました。 スクロールバーに変化が生じたときに、再描画させずに回転速度を変えることは可能でしょうか?
Java3Dは知らないけど、スクロールバーってのはスライダーか何かのことではないかと思った
JavaのプログラムでOracleのデータベースに文字を入れるときに、 全角と半角が混在した文字だとバイト数がオーバーしてしまいます。 例えば、CHAR(10)と定義してあるところに、 「あいうえお」「0123456789」は入るのですが、 「あい12えお」が入らないのです。 「あ1」とかだと入ったりするので、全角と半角が混在したときに 見た目よりバイト数が増えてるような感じなのですが、 理由分かる方いらっしゃいましたら教えて下さい。
>>186 JIS なのかもな DB板で聞いた方がいいと思うが
>>186 PostgreSQL+JDBCだと日本語は1文字3(20bit)バイトになった覚えがある。
UNICODE扱いのSJISだとか何とか。。。よくわからんかったけれど、そういう
症状だった。
ごく普通のutf-8
190 :
デフォルトの名無しさん :03/12/20 15:11
JDBCとservletを接続して、DBに格納されている値をブラウザに表示したいのですが、処理結果としてブラウザ画面が真っ白になります。 servlet内のHTMLも記述に間違いはないと確信しています。クライアント側にてJDBCとDBの接続は確認しています。 誰か解決策を教えて頂けませんか? 動作環境OS:windowsxp Tomcat4.1.29 MySQL4.0.17 j2sdk1.4.2_01 mysql-connector-java-3.0.9-stable
J2MEについてなですが、QVGAに対応させて開発したいのですが、 方法がわかりません。 あと、実機テストとエミュレーター画面とでは表示が違います。 この違いをどうやってカバーしていったらいいのでしょうか? 初歩的なことですがよろしくお願いします
>190 >処理結果としてブラウザ画面が真っ白になります。 >servlet内のHTMLも記述に間違いはないと確信しています。 とりあえず、真っ白になってるときの HTML のソースを、 ブラウザで参照することをお勧めする。 (IE なら [表示]->[ソース])
>>190 もっと具体的に、場合によってはソースを出さないと、解決は無理だね。
その前に
>>192 みたいな確認作業はたくさんあるからね。
>>191 携帯Java のスレで聞いた方がよさげ
195 :
デフォルトの名無しさん :03/12/20 15:42
190です。192さんのご忠告通り、 HTML のソースを、ブラウザで参照したところ、問題なく作動しました。 おそらく,mysqlデータベースの設定自体に問題があると思うのですが私には全くわかりません。
>>195 >問題なく作動
意味不明。閲覧できたのがソースなのかレイアウトなのか。
197 :
デフォルトの名無しさん :03/12/20 15:51
190です。192さんのご指摘通り、HTML のソースを、 ブラウザで参照してみたところ、問題なく作動しました。私はmysql4.0.**シリーズには 特別な作業を施す必要があると思うのですが、誰か分かる人がいたら教えていただきませんか?
何をどうするための特別な作業なのかがわからん
>>197 だからはっきり書けよ。
ソースがブラウザまで来てるのは分かったが、
それはソースが悪くて表示できないのか、
それともコピペで *.html に保存しなおしたらレイアウトもできたのか。
200 :
デフォルトの名無しさん :03/12/20 16:10
>HTML のソースを、ブラウザで参照したところ、問題なく作動しました。 >HTML のソースを、 >ブラウザで参照してみたところ、問題なく作動しました 同じ表現を繰り返してもわからないよなあw
責任転嫁癖のある初心者は上達が難しいぞ。
>>201 「IEでソースが参照できるかどうか」が重要だと思ってるんだよ。
import java.applet.*; import java.awt.*; public class FontTest extends Applet{ public void paint(Graphics g){ Font font = new Font("Serif", Font.PLAIN, 30); g.setFont(font); g.drawString("こんにちは世界",15,40); } } というアプレットを作ったのですが、日本語の表示が□になってしまいます。 どうすれば解決できますか。環境はjdk-1.4.2、FreeBSD-5 教えて下さい。
>>204 font.properties について調べると吉。
環境変数 LANG も関係あったはず。
フォント確認は xfontsel など使うとよい。
<head>〜</head>内で<title>や<style>とかきちんと閉じてないと、
ブラウザの表示は真っ白、でもページのソースを表示させると
HTMLソースは表示されるってケースになるんだけど
>>190 >servlet内のHTMLも記述に間違いはないと確信しています。
らしいので、たぶん違うんだろうな。
>>206 よしんば servlet (ないし JSP) で書いた HTML が正しくとも、
mysql が < > を返してて、それを予測してないんじゃなかろうか?
なんにしろブラウザに渡った HTML が間違ってないか
報告できない時点では、我々はなーーんもできん。
「mysql がブラウザの動作に影響を直接及ぼす」と考えてる雰囲気が濃厚で・・・
>>206 ブラウザがIEだと文字エンコーディングの指定が
間違っていても真っ白になるときあるね。iOfficeが昔
タコなエンコーディング指定やってて使うたびにいらいら
した。カスタマイズしたうちの情報システム部が悪いのかも
しれんが。
>>205 font.properties.jaに指定されているフォントがxfontselで表示できませんでした。
そこでそのフォントをfonts.dirに登録したところ表示できるようになりました。
ありがとうございました。
210 :
デフォルトの名無しさん :03/12/21 00:47
サーブレットでのsendRedirectの使い方でわからないことがあるんですが・・・ 画面を上下にフレーム分割をしていて上のフレームの中のボタンを押したときに セッションがタイムアウトでないなら下のフレームにページが表示され、 タイムアウトなら認証画面に戻すという処理をしているんですが、 タイムアウト時にフレームのターゲット指定を_topにする事は出来ないのでしょうか? 今の状態だと下のフレームに認証画面が出てしまうんです どなたかわかる方がいらっしゃれば教えていただけないでしょうか?
intの数値をStringの数字に置き換えたいのですが、 桁をそろえるために0を補完してくれるような便利な メソッドとかってないんですかね? 例えば、4桁として、 211→"0211" と置き換えたいのですが。 やっぱ自前実装かなぁ…
age忘れ
213 :
デフォルトの名無しさん :03/12/21 02:05
import java.text.DecimalFormat; public class SampleFormat { private static DecimalFormat myFormat = new DecimalFormat("#0000"); public static void main(String[] args) { int number = 211; System.out.println(myFormat.format(number)); } }
MessageFormatも便利かもね
>>213 >>214 ありがとうございます。解決しそうです。
パターンの記述法覚えればいろいろ使えそうっすね>***Formatクラス
1.5 からは printf もどきが導入されるぞ
>>210 どのウィンドウに表示するかはクライアントの処理、どの画面を出力するかはサーバの
処理、なのでサーバ側で制御することはできません。やるとしたら、JavascriptのOnLoad
イベントで上側のフレームにログイン画面を出力するHTMLを出力するとかかな。
>>210 _top にリダイレクトする HTML を出力する。
java2日本語APIドキュメントを、ネットが使えない出先に持って行きたいのですが どこでダウンロードできますか。 現在sunのHPで迷子になっています。
>>220 わ、さすがに。。33Mあるんですね。
スティックに入れて持って行きます。
大変助かりました。アリガトウございました。
222 :
デフォルトの名無しさん :03/12/21 13:25
223 :
デフォルトの名無しさん :03/12/21 13:46
win2000を使用しています。 環境変数でpathを追加しようとしていますが、 perlを使っていて、c:\perl\binが環境変数に存在するので、 c:\jdk\binが無効になってしまいます。 環境変数pathにはbinフォルダは一つしか指定できないそうなので、 jdkかperlのbinフォルダを名称変更しようと思いますが、 それによる不具合などはあるのでしょうか、 また、フォルダの名前を変更せずに解決する方法はあるのでしょうか?
>>223 >環境変数pathにはbinフォルダは一つしか指定できない
そんな制約はない。「;」で区切って任意のフォルダを複数指定できる。
そのデマの出所はどこだ?
>>223 >c:\jdk\binが無効になってしまいます。
そこがよくわからんのだが、
path=c:\perl\bin;c:\jdk\bin
ではいかんの?
>>217 >>218 どうもありがとうございます
>>218 氏の方法でやってみようと思うのですが、うまく出来ませんでした
<META HTTP-EQUIV="refresh" CONTENT="5;URL=/groupware/mu13a105/project_33/index.html target=_top">
のような書式ではないのでしょうか?
>>223 おなじく、よくわからんのですが、ユーザー環境変数で、
システム環境変数が・・・ってことかも。システム環境変数
にc:\perl\binが入っているなら、ユーザー環境変数には
c:\jdk\bin;%Path%
とするとよいかも。
229 :
デフォルトの名無しさん :03/12/21 15:06
>>181 これつかうのはどうよ?
java.io.LineNumberReader
JSPのページを30秒おきに更新とかってできますか?
>228 誤訳。 You should only have one bin directory for a Java SDK in the path at a time (those following the first are ignored), so if one is already present, you can update it to j2sdk1.4.2_<version>\bin. PATH中に指定できるJavaSDKのbinディレクトリは一個だけ (2個目以降は無視される)。 だから、すでに存在するときは j2sdk1.4.2_<version>\binに更新すべし。
232 :
デフォルトの名無しさん :03/12/21 16:35
if条件文ですが、 if(number.equals("1")==true) だとうまくいき、 if(number=="1") だと何故うまくいかないのかを教えてください。
>>232 同じ内容をもつ別のStringオブジェクトというものがありえるから。「"" != new String("")」とか。つーか
>if(number.equals("1")==true)
は
>if(number.equals("1"))
でいいだろ
>>232 そのnumberのタイプは何?
質問をするのなら情報は正格に。
numberをString型だと勝手に解釈させてもらうが、
object1 == object2 というのは、
object1とobject2の二つの変数が、同じオブジェクトを指し示しているかどうかの比較。
string1.equals(string2)は、
string1とstring2の二つのString型の変数が所持する文が同じであるかどうかの比較。
もちろん、二つのString型の変数が同じオブジェクトを指し示しているときには、
この両者は、同じ文を持つわけではあるが。
二つのString型の変数が違うオブジェクトを指し示していたとしても、
同姓同名の人間がいるように、それぞれ違うオブジェクトが同じ文を所持している場合がある。
>>234 >string1とstring2の二つのString型の変数が所持する文が同じであるかどうかの比較。
より正確には、
string1とstring2の二つのString型の変数がそれぞれ指し示している、
ふたつのオブジェクトが所持する文が同じであるかどうかの比較。
ではないかな
String number = "1"; こういう場合は number == "1" が true になるけどな。
文??
>>234 > そのnumberのタイプは何?
型は関係ない。equals メソッドをオーバライドする場合の動作は
厳密に規定されている。
>>222 auto-boxing/unboxing と可変長引数が導入されるついでに
*Format 系のクラスも C/C++ の printf 系関数みたいに使えるように
拡張されるらしい。
242 :
JAVA初心者 :03/12/21 21:06
243 :
デフォルトの名無しさん :03/12/21 21:11
すいません以前にも質問したのですが レイアウト構成など表示するのはJSP 実際のSQLはjavaソースに書いて こうすることで表示レイアウトの設定はJSP一つで 条件でjavaソースを読み込めば比較的、楽になると思うのですが それの接続方法はどうすればいいのでしょうか? JSP側でjavaのSQLを引っ張ってくるのに何を設定しなければいけないのでしょうか? すいません、本当に教えてください
>>243 この辺でも読んでみて。
ttp://www.atmarkit.co.jp/fjava/rensai/jsp10/jsp10.html この手のいわゆるビジネスロジックはJSPでやらないのがベストプラクティスなんだが、
生憎@ITにはサーブレットとJSPの連携の方法を書いた記事がない。
そこは手元の本を読んで参考にして。
ヒントはjavax..servlet.ServletRequest#getRequestDispatcher(String)と
javax..servlet.RequestDispatcher#forward(ServletRequest, ServletResponse)
245 :
デフォルトの名無しさん :03/12/21 22:02
javaでデバッグの方法について教えてください デバッグの方法って従来だと 「System.out.print(〜);でデータが通ってるか」 「ログなどを見てそのデータがどこまで通ってるか」 が多いと思いますが そのほかにバグを見つけるコツというか デバッグの方法を教えてください eclipseで内部のクラスに見に行ってるのもいまいちよく分からないし 今やってる奴でどうしても理由がわからないのがあるのですが
>>245 Eclipseのデバッガ使って納得いかないならお前には無理だと思うんだが。
247 :
デフォルトの名無しさん :03/12/21 22:15
>>246 納得してないわけじゃなく
eclipseで内部の方まで行って何をしてるのか(見ているのか)
がいまいちわからないんですが
ブレークかけて…とかならわかるんですが
プログラムがどう動くのか、コンピュータがどう動くのかがイメージできないんだろう。 assertionについて勉強するというのはどうだろう。
249 :
デフォルトの名無しさん :03/12/21 22:18
なんかJakartaのサイトに繋がらないんですが… OROの正規表現パッケージが今すぐ激しく欲しいのですが… どうしましょ?どっかのFTPサイトとかありませんでしょうか?
>>245 というか、eclipse のデバッガはもちろん使ってるんだよね?
>eclipseで内部のクラスに見に行ってるのもいまいちよく分からないし
というのが何の話をしてるのかようわからん。
>今やってる奴でどうしても理由がわからないのがあるのですが
具体的にどういった問題が起きているのか、説明してもらわないと、
アドバイスのしようがないが。
原因が複雑なものでない限り、問題が起きてる(と予想される)箇所の
直前にブレークポイントつけて、動作を追っていけば、
対外の問題はわかると思うけど。
>そのほかにバグを見つけるコツというか
>デバッグの方法を教えてください
■王道
全てのクラスの全てのメソッドについて、テストケースを書き、
JUnit 等でテストして、エラーが出なくなるまで修正する。
>>242 なにかかんちがいしてるんじゃないかな。
既にMSVMが入っているとかそういうことはない?
かたっぽが1.1向けにコンパイルしてあるからSunのJREを
インストールしてなくてもMSVM上で動くが、他方は1.1向けじゃないから
SunのVMがないと動かないとかそういう話じゃないの?
本当になにもVMが入っていないブラウザで動かしてもらうなら
JavaPluginを使ってください。
>>255 ぉぉおおおおっ!!!かっこいい!!!!
すいませんですた。どうもアリガトウございました。
258 :
デフォルトの名無しさん :03/12/22 00:45
Tomcatのwindows版に簡易apacheが入っているように見えるのですが、 (Apache+tomcat連携ではなく) そのTomcatでphpモジュールを導入することは可能なのでしょうか? Tomcat4.1をWindows2000に単体Tomcatをインストールして、 Java自体の動作は確認しています。
>Tomcatのwindows版に簡易apacheが入っているように見えるのですが、 ('A`)?
260 :
デフォルトの名無しさん :03/12/22 00:55
Tomcatの単独インストールでjava以外のリソースが表示されるのは 簡易Apacheなるものが入っているという認識は間違ってるんですかね?
ようするにwebサーバとして使えるってことだろ
262 :
デフォルトの名無しさん :03/12/22 01:02
ということは、やっぱりphpモジュールを導入することは無理ですかね?
CGIのPHPならTomcatでも動かせるな。
264 :
デフォルトの名無しさん :03/12/22 01:06
TomcatでCGIを動かせるんですね その路線で調べてみます。 ありがとうございました。
265 :
デフォルトの名無しさん :03/12/22 02:00
認証成功したらセッションを作成し、jspに飛ばすものを作っています そのjspの中で、もしタイムアウトなら認証画面に戻すという処理をしたいんですが、 どうもうまくいきません jspの具体的なコードは <% session = request.getSession(); if(session.isNew()){ session.invalidate(); response.sendRedirect("認証ページのアドレス"); }else{ %> ---htmlのタグ--- <% } %> というようになっています また、認証する時のサーブレットと上記のjspの中でgetId()をしてみたところ、 全く同じIDでしたのでセッションは同一のものだと思われます 一体どこが間違っているのでしょうか?
266 :
デフォルトの名無しさん :03/12/22 02:05
スーパークラスとサブクラスの関係って extendsしたら ただサブクラスでスーパークラスが参照が可能になるだけでしょうか? それとも他に重要な関係とかあるのでしょうか?
isNewはブラウザにとって新規かどうかを判断するものらしいので、 それが原因かと思い以下のように修正しました <% session = request.getSession(false); if(session == null){ session.invalidate(); response.sendRedirect("認証ページのアドレス"); }else{ %> ---htmlのタグ--- <% } %> ですが、結果は同じでした ただ、一つ気になった事があって、 タイムアウト後にrequest.getSession(false);を実行するとnullが返ってくるはずなのに 新しいセッションが作成されていました これも何かうまく動かない原因なのでしょうか?
268 :
デフォルトの名無しさん :03/12/22 08:10
java で自分のホスト名を知るにはどうすればよいのでしょうか? 外部関数 hostname などを呼び出すことなく、java のなんらかのクラスを 使ってできるのでしょうか? よろしくお願いします。
java.net.InetAddress
270 :
デフォルトの名無しさん :03/12/22 12:43
文字入力判定ソフトみたいのをSwingの練習で つくってみようと思ってるのですが、 TextAreaとか使わずに、文字入力の履歴を取ることって できるんでしょうか?教えてください。
Integer 型の要素がいくつか入っている ArrayList を int[] にしたいのですが、自分で普通に配列を new して 要素を1個ずつ入れていく以外に、スマートな方法はありますか。 String 型の要素が入っているListの場合は、 (String [])list.toArray(new String[0]) って1行で書けるのに。
>>272 ワタクシはあきらめて88M落としました(´д`;
275 :
デフォルトの名無しさん :03/12/22 13:45
jsp内でセッションを開始していない状態でsession.getId()をやっても IDが取得できてしまうのは何故でしょうか? 勝手にセッションが作成されるのですか?
277 :
名無しさん@Linuxザウルス :03/12/22 14:12
JavaMailで、GnuPGを簡単に使う方法はないでしょうか? 解説サイトなど、ご存じのかたいらっしゃいましたら、ご教授ください。 よろしくお願いします。
>>276 確か、Sessionオブジェクト生成時に、デフォルトで無ければ新たに生成する、
という仕様になってたような…
コンストラクタにfalseを渡せば、無い場合には生成しないように出来たはず
コンストラクタじゃなかったHttpServletRequest.getSession()だった罠 >コンストラクタにfalseを渡せば… getSession(false)とすれば、の間違いでした
>>278 試しに
session = request.getSession(false);
としてからgetId()をしてみたのですが、やはりIDが取得できてしまいました
何かやり方が間違っているのでしょうか?
RequestDispatcherのincludeの使い方がわかりません。 AServlet → JSP → BServlet で BservletでAservletをincludeしたら、 AServletで宣言したコンテナとか使えるんですか? またどうやって使うんですか?お願いします。
282 :
デフォルトの名無しさん :03/12/22 17:56
すみません、質問させていただきます。 awtでJavaのGUIエディタを作ってるんですが紙からはみ出ない印刷と コンパイルのプログラムがわかりません・・・・。 サンプルがあるので必要でしたら転載します よろしくお願いいたします。。
ファイルに座標データを出力しているのですが、 そのデータを読み込むときの為に何行書き込んだかを知りたいです。 (配列として読み込む) データの書き込みが終わったあとに行数をファイルの1行目に書き込む方法 がいいと思うのですが、1行目に書き込む方法がわかりません。
>>283 適当に空白など書き込んでおいてデータ全部書き込んで最初に seek してバイナリで書き込みなおす。
もしくは読み込むときに固定長の構造には取り出さず Collection をつかう。
>>282 印刷のほうは全部コードを晒すんじゃなくて、
紙からはみ出てしまう印刷のコードのサンプルを作って
さらしたほうがいいのではないかと。コンパイルのほうは
SunのSDKツールに含まれているsun.tools.javac.Mainを
使うかもしくは他のコンパイラを使うかまず方針を決めないと
先に進めないのではないかと。
>>283 やりかたはいくつかあると思うけど、そのまえに
読みこむときに配列じゃなくてコレクションに入れるか
とかは検討しましたか?
>242 何のブラウザで見たのかは知らんが,VINE LINUXのネスケで見ても, 最初のは見れて次のは見れんね.ちなみにmozillaで見たらどっちも プラグインを入れろと出るし….問題は別のところにありそうね. ごめそ,286のカキコは無視って.
>>280 んー
こっちで確かめたらちゃんとnullが返ってきたけどなー
そのページに到達するまでの遷移でどっかでSession作ってたりしません?
遷移毎に明示的に作って渡して、ってしなくてもSessionって持続された気が…
>>289 いえ、jspを直接呼んでいるので途中でセッションは作っていません
また、request.getSession(false)とsession.getId()をjspでやるとIDが取得できますが
サーブレット内でやるとちゃんとnullが返ってきました
ますますわけがわからなくなってしまいました
>>290 スマソ
どうせ一緒だろうとServletでしか試してなかった罠;
そうかーJSPとServletでは違うのかーまだまだ初心者だなー漏れも
>>290 pageディレクティブの属性でsessionってのがあるらしく、そいつのデフォルトがtrueなので
JSPだと生成を明記せずともSessionが存在するみたい。
<%@ page session="false" %>
で無効に出来るんだと。
ぶっちゃけServlet はよく作るんだがJSPは数えるほどしか作ったこと無かったです。
知ったかブリでしたスマソ
俺は初心者なのでフォローできなかったが、最初に思いついたのはそれだった。 >jsp内でセッションを開始していない状態 でもこの表現では既にその点はクリアしてると思うんだが。
>>292 <%@ page session="false" %>
を試してみたところ、セッションを無効にする事が出来ました
本当にどうもありがとうございました
>>293 紛らわしい表現をしてしまって申し訳ありませんでした
>>286 ありがとうございます!問題が解決しました!!
JSPがJSPコンテナにロードされた時に暗黙オブジェクトであるsession等が自動生成される訳ですね。
>>284-285 レスありがとうございます。
1行目に改行を入れて
RandomAccessFile raf = new RandomAccessFile(filename, "rw");
raf.seek(0);
raf.writeByte(n); //nの値は10000等の整数
としてみたのですが、1行目には文字化けしたものしか表示されません。
何がまずいのでしょうか
298 :
デフォルトの名無しさん :03/12/22 23:42
コンパイルエラーの無くしかたのコツってあるでしょうか? やっぱこれならこれ、あれならあれってすぐわかるぐらいの 慣れしかないのでしょうか?
>>298 Eclipse使おう。ソース保存時にコンパイルするして原因を見やすく
一覧表示してくれるから便利。
>>298 エラーメッセージ読めば大体わかる。
と、いうか、実践にはエラーメッセージでわかるくらいの知識は必要だと思うぞ。
302 :
デフォルトの名無しさん :03/12/23 00:31
すいません 指定のディレクトリに新規ファイルを作成するメソッドってなんでしょうか? 度忘れしてしまって、教えてください googleで探しても範囲が広すぎて、なかなか見つからないです・・・
>>302 google で探すな API リファレンスで探せ
ファイルのことは File クラス
>>302 キーワードを元にgoogleで全文検索かけるなら
site:java.sun.comを追加して検索すると絞れる。
やっぱり情報ないですかねぇ(汗
306 :
デフォルトの名無しさん :03/12/23 01:18
JBuilder(Personal)をダウンロードして使おうと思っているのですけど、 ユーザー登録してシリアル番号の書いてある添付のテキストファイルがど届いた まではいいんですけど、そのファイルがなぜが開けれません。 どうしてでしょうか?ちなみにOutlookを使っています。
308 :
デフォルトの名無しさん :03/12/23 01:20
BEA Web logic、IBM WebSphereなどがあるけど何が違うの?NO1はIBMらしいけど、 値段、ブランド、いろいろあるけど選択するにあたって何を目安にするんだろ・・・購入するときに
>>306 修正:なぜが開けれません→なぜが保存できません
310 :
デフォルトの名無しさん :03/12/23 01:22
すいません 便乗して質問です fileクラスで新規ファイルの生成は createTempFileになると思うのですが for(int i=1 ; i < 1000; i++){ } で1.txtから1000.txtまでの空白ファイルを同じフォルダに作りたいのですが なかなかうまい事いきません 教えてください
>>307 あれ?ここ初心者質問スレじゃなかったんですか?!
>>306 PC初心者板から引用
・ 名称の省略(例えば"Outlook 2002"と"Outlook Express 6.0"は別ものです)
>fileクラスで新規ファイルの生成は >createTempFileになると思うのですが ちがう。
>>312 失礼しました。Outlook Expressです
316 :
デフォルトの名無しさん :03/12/23 01:27
>>316 よく読め よく見れ とにかく使え
思い込みは禁物
>>316 Fileのコンストラクタに引数を指定する。
319 :
デフォルトの名無しさん :03/12/23 01:35
>>318 それも試したのですが
引数がStringなので
for文でintで1000回周すってのがうまくいきませんです
>>319 君は System.out.println でいろいろ試したり遊んだりしなかったのか
普通の初心者本とかなら応用できる書き方が一例としてあるはずだがなぁ
>>315 winfaqで解決しました。
無だ書きしてすいませんでした。
322 :
デフォルトの名無しさん :03/12/23 01:46
>>320 5冊ほどありますが
全然載ってないです
for文の回し方も載ってるし
createNewFile() でファイルを生成するのは載ってますが
for文で1〜1000個ファイルを別名で生成するのはどこにも載ってないです
for文のintでどうしても引っかかります
>>277 >>305 情報って言ってもなあ。JNIで呼び出す技量がなければ
Runtime#execするしかないでしょ。PGPだとJava向けのラッパークラス
あるみたいだけど。
>for文で1〜1000個ファイルを別名で生成するのはどこにも載ってないです
そりゃそんな具体的なのは載ってないよ
それはプログラマが頭からひり出さなきゃいけない
もう少しヒント(直接は教えてあげない)
とにかく File のコンストラクタには文字列を与えなきゃいけないんだから
int を String に変換できりゃいいわけだ
つまり 100 とかいう数値が "100" という文字列になればいい
こっから下は println メソッドでおそらく経験があると踏んで言うんだが
そこでやったことと同じことをすればいい
つまりメソッドって言うのはオブジェクト型(ex. String) かプリミティブ型(ex. int) しか与えられない
式を与えることなどできない
つまり int な変数などが途中で現れる式をメソッドに与えているとすれば、
実際はその式の結果のみが与えられている。結果はオブジェクトもしくはプリミティブでしかありえない。
そういうものの中で int (正確には int と他の文字列の結合)が String に変換されている、という例を見てるはずだなぁー
見てなかったら経験不足
ここの 15.7.1 でも見てくれ
http://www.y-adagio.com/public/standards/tr_javalang/
325 :
デフォルトの名無しさん :03/12/23 02:20
>>324 ありがとうございます
しかしながら、そもそも
http://java.sun.com/j2se/1.3/ja/docs/ja/api/ でFileのコンストラクタのとこ見ても
コンストラクタでインスタンスは生成されるが
ファイルが生成されるとは一言も書いてないんですが…
その辺でどうしても止まってしまいます
for(int i=0 ; i < 100; i++){
File file = new File(Integer.toString(i));
}
にしても何もおきないし
教えてください。 ひとつのクラスにstaticなメソッド(AAA)とstaticでないメソッド(BBB)があります。 しかし、AAAメソッドからBBBメソッドを呼び出そうとすると コンパイル時に「BBBはstaticではありません」みたいなエラーが発生してしまいます。 この場合、AAAからBBBを呼び出したい場合どのようにすればうまくいくのでしょうか? また、その逆(BBBからAAAを呼び出す)はいかがなものでしょうか?
>コンストラクタでインスタンスは生成されるが >ファイルが生成されるとは一言も書いてないんですが… 頭悪いな ファイルを生成するメソッドがあるだろう
328 :
デフォルトの名無しさん :03/12/23 02:46
for(int i=0 ; i < 1000; i++){ file = new File(Integer.toString(i)); file.createNewFile(); } すいません、ありがとうございます これでできましたけど でもこれじゃtxtなどの拡張子がでないんですが・・・
>>326 >AAAからBBBを呼び出したい場合
そのクラスのインスタンスを作って使う
>その逆(BBBからAAAを呼び出す)
できる
さっきからの話を総合したら for(int i=0 ; i < 1000; i++){ file = new File(Integer.toString(i).concat(".txt")); file.createNewFile(); } になった なんだかなぁ
"" + i + ".txt" prefixはいらんのか
>>329 解決できました。ありがとうございます。
ちなみに、逆のやり方の場合はメソッド名を指定のみでOK?
>>325 応用力がまったくないところを見ると中学生だと思うからバカなのはしょうがないが
最低限自分のバカさを謙虚に受け止められるようでないと成長しないぞ。
336 :
デフォルトの名無しさん :03/12/23 04:43
今、さらっと全部読んできたんですが
>>281 にだれもレスがありません。
もしよかったら、誰かレスしてもらえませんか?
自分も知りたいなと思ったものでして
しらんけど、AServletの中で request.getRequestDispatcher ("BServlet").include (request, response); とかやれば、AServletの出力の中に、BServletの出力(別の文書でもいいけど)が丸っと埋め込まれるってだけでしょ? つかったことないけど。それ以上の深いやりとりは、RequestDispatcherの仕事ではないと思われ
>>310 馬鹿は馬鹿故に馬鹿な質問を繰り返す・・・・か
339 :
デフォルトの名無しさん :03/12/23 12:22
JETの体験版って結局JREがいるって本当ですか?
textファイルやhtmlファイルを開くのにファイルに関連付けられているアプリケーションを起動して開きたいんだけど どうしたらいいんですか?Windowです。
SWTなら Program program = Program.findProgram("xls"); program.execute("./test.xls"); でできるっぽい。 Swingはシラね
Windowsならコマンドラインからc:\test.htmlとか実行しても勝手に関連づけられてるのが起動するっぽい。こっちの方が早い。
344 :
(;´Д`) :03/12/23 15:11
アプレットで質問なんですけど、 IEで表示させたときに、プログラムの変更が 反映されなくて困ってます。 インターネット一時ファイルの削除もしました。 なんででしょうか? ***** Javaソース ***** import java.awt.*; import java.applet.*; public class HelloWorldApplet extends Applet { public void paint(Graphics g) { g.drawString("Hello World",20,20); // → g.drawString("Hello World!!",20,20); に変更しますた。 } } ***** HTMLソース ***** <html> <title></title> <body> <applet code="HelloWorldApplet.class" width=100 height=100> </applet> </body> </html>
345 :
デフォルトの名無しさん :03/12/23 15:15
>>344 プロキシのせいかも。
IEのメニューバー>ツール>インターネットオプション>「接続」タブ
「ローカルアドレスに対してはプロキシサーバーを使用しない」の
チェックを入れてIEを再起動してみよう。
346 :
(;´Д`) :03/12/23 15:18
>>345 すんません。
ローカルでHTML開いてるんで
プロキシじゃないと思われます。
347 :
(;´Д`) :03/12/23 15:21
あと、今プロキシ使ってないんす。
キャッシュが残ってるんだろ
349 :
デフォルトの名無しさん :03/12/23 15:25
>>344 その様子だと「ページを表示するごとに確認する」にもチェック入れてるんだろうな……。
なら、
コンパイルしたclass/固めたjarファイルがちゃんと書き換わってるか、日付を確認してみれ。
「上書き」されていないというのは、ありがちな状況だ。
350 :
(;´Д`) :03/12/23 15:30
>>348 キャッシュって
ツール→インターネットオプション→全般タブ
→ファイルの削除ボタンで消せますよね?
>>349 「ページを表示するごとに確認する」にチェック入ってます。
コンパイルしたclassを削除して、やってみますたが
ダメでした(´Д⊂グスン
351 :
デフォルトの名無しさん :03/12/23 15:33
質問いいですか? Eclipseってタダで手に入りますか? ダウンロードページに行って見たが、いまいち確信が持てない。 散々タダだって話は聞いてるんですが。
352 :
344(;´Д`) :03/12/23 15:34
>>342 GUIはSwingだけど
import org.eclipse.swt.program.Programしたらできました。ありがとう。
>>343 確かにコマンドプロンプトからなら起動するけど
Runtime r = Runtime.getRuntime();
try {
r.exec("G:\\index.html");
}
とかや
r.exec("cmd.exe G:\\index.html");
じゃできませんでした。
どこがおかしいのかな?まあswtつかってできたからいいけど。
356 :
デフォルトの名無しさん :03/12/23 15:37
>>352 ありがとうございます。
早速ページに行ってダウンロードしてきます。
Jbuilderは使いにくいんで。
>>351 何故だかは知りませんが、無料です。
素直にダウンロードして、IBMの政治的戦略の恩恵に与ってください。
358 :
344(;´Д`) :03/12/23 15:41
IEを起動しなおしたら 更新されました。 アプレットってそういうもんなんですか?
>>358 やっぱメモリ上にキャッシュが残ってたんじゃん
363 :
344(;´Д`) :03/12/23 15:55
>>361 Ctrl+更新 で更新されたんですけど、
Ctrl+更新 だとなんで更新されて、
ブラウザの更新だけだと更新されないんですか?
>>356 Language Pack は 2.1.2.1 落とせよ。
あとで、ちゃんと金は払えよ。捕まるぞ。
365 :
デフォルトの名無しさん :03/12/23 17:33
こんどSJC−P受けるんですけど、 たくさん例題ほしいです。
367 :
デフォルトの名無しさん :03/12/23 17:49
>>363 聞きたいか?本当に聞きたいか?なら教えてやる。
仕様です。
368 :
デフォルトの名無しさん :03/12/23 19:04
OC4Jってどんなものですか? 利点とかってあるでしょうか?
369 :
デフォルトの名無しさん :03/12/23 20:46
SQLの埋め込みで StringBUfferで分けて書く人と Stringで一気に書く人いますけど どっちがいいのでしょうか? 見やすい、修正しやすいではStringBufferだと思うけど マシンにかかる負担とかなどを含めてそれぞれのメリットを教えてください
>>369 SQLをStringBufferで組むやついるの?
Stringで書けばいいじゃん。
基本的に固定の文字列だろ。
StringBufferで見やすい・修正しやすいっていのもよくわからない。
それに、そんなところの負荷より、比べモンにならんくらいDBアクセスの負荷があるから、そんなこと気にしない。
>>370 StringBuffer sb 〜
sb.append("select ")
・・・
なんていくらでも存在するぞ
>>369 入力条件によりwhere句にやたら変数をくっつけて使う場合だとStringBufferかね。例えば
String a = "select kuso from unko where geri = '1' ";
if (条件1) a += "and benbi = 0 ";
if (条件2) a += "and paper is not null";
こんなんだったらStringBufferだろう。
>>372 1000行もそんな行が続いたり、ループの中に入っていたりするなら
StringBuffer を使うだろうが、高々数個の条件を結合するなら String で十分。
使い捨てのオブジェクトをそんなに気にすることはない。
>>372 それをStringBufferにすると、見やすくなったり修正しやすくなったりするのかなぁ。
>>374 見やすくなったり修正しやすくなったりは全然しないが、無駄な中間オブジェクトはなくなるだろう、
っていうか
>>372 程度なら特にそのままでもいいと思うけど、こういった条件が10も20も
指定されたり、インラインビュー使ってそこでもいろいろな条件の指定があったりするケースも多いから
そういう場合はStringBufferを使うべきだろう。
ステップ数を稼ぐためにStringbufferを使ってる人多いんじゃないの? 一個一個のSQLは大した数ではないが合計したら結構いくし
Javaでステップ数もねー気がするけど
>>377 総計が5000→6000になって
それで貰えるお金が変わる契約なら
ちょっとでも稼ぐ
引数とかも一個一個改行する
そうじゃなくて、Javaの仕事でステップ数換算の契約なんかあるのか?
>>379 少ないかもしれないけど、あることはある
もちろん露骨なステップ伸ばしはクレーム来るけど
お金も言うほど違うわけではないし
381 :
デフォルトの名無しさん :03/12/23 22:23
IEで2ちゃん見てるんだけど、同じコピペAAの連投荒らしの書き込みをJAVAで見た目上消せないものか?と オモタんやけどどないでしょう? ↓で置換するのは長すぎてむりやった。 JavaScript:document.body.innerHTML=document.body.innerHTML.split('').join('');focus();
>>382 んーやっぱそれしかないんだろうなと思うけど、それじゃマ板住人の回答として不適切かも。
絶対にJAVAじゃ無理なんだったらそう答えて。
>>383 ここはム板なんですが。
初心者スレにおいて、質問に対してもっとも手間のかからない解決策を示すのに何か問題でも?
385 :
デフォルトの名無しさん :03/12/23 23:22
javaで「API」ってよく聞きますがこれって何を指しているのでしょうか? APIリファレンスのことでしょうか?
386 :
デフォルトの名無しさん :03/12/23 23:28
>>384 失礼。ム板ですた。しかし初心者スレじゃなくて初心者歓迎なだけよ。
JAVAでの解決策を問うてるのだが。JAVAスレですから。
387 :
デフォルトの名無しさん :03/12/23 23:28
PrintWriterとBufferedWriterの使い方の違いについて教えてください。 Platformには、下みたいな使い方とか出てたのですが, PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("foo.out"))); PrintWriterだけでもfileに書き込めるみたいですし、、 BufferedWriterを使うのと何が変わるのでしょうか? また、 BufferedWriter out = new BufferedWriter(new PrintWriter(new FileWriter("foo.out"))); なんてこともできるのでしょうか? よろしくお願いします。
>JavaScript:document.body.innerHTML=document.body.innerHTML.split('').join('');focus();
おまいはアホか
そりゃJavaじゃないだろ
板違いだ
>>1 を見ろ
だめぽはぬるぽ、ぬるぽはだめぽなのじゃぁぁ!!
>>369 もしかしてSQLパラメータをStringの+やStringBufferで結合してるならPreparedStatement使ってください。
もしかするともしかするので
そうじゃなけりゃどっちでもかわらん。Stringの方が見やすいかな。
お邪魔します。偉い人どうかおしえてください。 javamailを使ってメールを送る簡単なプログラムを作っています。 一応、ちゃんと動いてはいるんですが、送信中であることをラベルに 表示している部分がうまく動きません。 (送信が終わってしまってから表示が更新されます) コードはこんな感じです。 jLabel1.setText("おくってます"); jLabel1.repaint() ; SendMailThread thread = new SendMailThread(namae,from,to,smtpHost,subject,mesgTxt); thread.run() ; 「SendMailThread」は 中でjavamailを呼び出しているだけです。 最初はスレッドにせずに直接コードを書いていたのですがラベルが更新されないので 試しに書き換えてみたのですが・・・ どうせしょうもない事を間違えてるんだとは思うのですが・・・ あと、表示はともかくとして、JARファイルにして実行するとなぜかメールの送信ができません。 たぶん、JARファイルに追加してるクラスが足りないのだと思うのですが・・ あ、環境はJBuilder9(Personal版)+JDK1.4.2+javamail1.3.1です。
どうでもいいけどJBuilder9(Personal版)を使う理由は? Eclipseを使う気はなかった? JARファイルにsmtp.jarとか追加してる?
395 :
デフォルトの名無しさん :03/12/24 22:53
以下の内容の、linuxのバッチファイル(hoge.bat)が有り、 java -classpath (絶対パスでのクラスパス)・・・ hoge.hogemain . hoge.bat で入力しても、 ・・・NoClassDefFoundError:hoge.hogemain となって実行できない クラスパスが通っていないようだ しかし、バッチファイルの内容を直に入力すると実行できる わかる人いませんか
>>393 > どうせしょうもない事を間違えてるんだとは思うのですが・・・
重要な事を理解していない。
シングルスレッド と invokeLater で検索しれ。
その無理矢理付けた repaint もいらない。
Javaでフォルダを作りたいのですができません。 Googleで Java フォルダを作成 とかで検索すると、Javaを使用するための設定方法ばかり出てきてしまいました。 また、JDKのドキュメントをダウンロードして検索しましたが、文字コードがUTF-8だったので検索できませんでした(´д`;) 簡単でいいので教えてください。
>>395 それってクラスパスっつーか、hoge.hogemainが見つかんないって言われてるんじゃない?
クラスパスにカレントディレクトリ入れてます?
>>398 Linuxと同じコマンドでしたか。
さっそくやってみます。ありがとうございます。
>>395 質問と関係ないが Linux って .bat とか普通つけるのか?
>>397 File#mkdir
JDK のドキュメントは ISO-2022-JP だが?
どっから落としたの?
402 :
デフォルトの名無しさん :03/12/24 23:11
FileReader fr = new FileReader(args[0]); FileWriter fw = new FileWriter(kakikomi); String line; int j; for(int i = 0; i<100 ;i++){ int counter = 0; while(( j = fr.read()) != -1){ if(i == j){ counter++; }} でファイル内の文字がそれぞれ1〜の場合、 カウントアップして読み込む それを1〜100まで繰り返す処理をしたいのですが うまくいきません 全て0になってしまいます java初心者なので上級者からしたらソース記述も下手と思いますが、 もっと違ううまい書き方があれば教えてください
>>395 質問と関係ないが . コマンドはカレントシェルで実行するコマンドだから、
ちょっと違うぞ。
環境変数が書き換えられるのは普通は望ましくないので
./hoge.bat で実行しろよ。
もちろん xビットは立てとけよ。
404 :
デフォルトの名無しさん :03/12/24 23:23
>>402 文が変だった・・・
ファイル内ある文字をそれぞれ読み込み
それをforで1〜100まで繰り返し
forのintとファイル内の文字を照らし合わせて
もし一致したらカウントアップしたいのです
ありがとサン 明日試してみます
395=405でした
家でコンパイルしたアプレットが、家のPCでは動くんですけど、 他のPCでは動かないんです(つд`) アプレットの画面が灰色のままなんです。 バージョンは1.4.1でOSはwindowsXPです。 何か助言をください。。
1.1で動くようにするか、他のパソコンに最新のJRE入れるかしなさい。
>>408 と、いうことは他のPCに最新のJREが入っていないと
最新のバージョンで作られたアプレットは見れないということですか?
410 :
デフォルトの名無しさん :03/12/25 02:30
Javaって標準入出力ストリームのバッファサイズって変更できる?
>>395 hoge.shの間違いとかでねえよな?
>>402 1行1行追って見れ。
>int counter = 0;
位置がおかしい
>>394 様、ご回答ありがとうございます。
すみません、書き方がおかしかったです。
自分の作ったアプリだけをjarファイルにして、マニフェストに
Class-Path: mail.jar activation.jar
の1行を追加して、自分の作ったjarファイルと、mail.jar activation.jar
を同じディレクトリに置いて実行するとうまく動くのです。
しかしjarファイルにmail.jarとactivation.jarも追加すると、ClassPathが通らないみたいなんです。
クラスが足りない、というのはマニフェストにこの場合どうやってクラスパスを指定
したらいいんでしょうか?ってことです。すみません。
>>396 様 ご回答ありがとうございます
仰せのとおり検索したところ解決策をハケーンいたしました。
うまいこと動きました、ありがとうございます。神様仏様!!
414 :
デフォルトの名無しさん :03/12/25 15:39
1秒たつまでカウントをインクリメントして FPSを表示させるプログラムを作りたいんですけど 時間をはかるAPIってありますか?
>>414 >時間をはかるAPI
java.util.Timer とか java.lang.Thread とかその辺
>>413 Jarファイルのクラスパスについてなら、いくつか前のスレに書き込みがあった。
その時の結論では、Jarファイルの内部に、別のJarファイルを入れても、
内部のJarファイルには、クラスパスを通すことができないというものだったとおもう。
内部にいれたいJarファイルは、いったんばclassファイルに分解するのがいいかと。
>>416 了解いたしますた。
素直にあきらめまする。
すみません、ついでに質問です。、
JBuilderってカスなんでしょうか?たしかに動作おそいなーとか思ったんですが・・・
Eclipse使ってみたんですが、GUIビルダーがないのがちょっと不便かなって・・
プラグインかなにかでなんとかなるもんでしょうか?
>>417 classpathとjarについては、JavaWebStartなどで、
必要なjarファイルをネットワークからダウンロードするという解決法も、
場合によってはあるとおもう。
JBuilderについては、自分の手慣れた物を使えばよろしいかと。
JAVA(アプレット)で文字を描画したいんですけど drawString(文字列,開始X座標,開始Y座標) を使うと、アプレットの領域を越えて描画するんです(折り返してくれない) 色々と調べて、LineBreakとか調べたんですけど、GUI用みたいだし… 判る方がいらっしゃいましたら教えて頂けませんか?
>>420 オライリージャパンのJavaプログラムクイックリファレンス
にそのものずばりなサンプルがのっている。
424 :
デフォルトの名無しさん :03/12/25 21:07
javaをマスターするコツって何でしょうか? 小さいプログラムをひたすら組んでいくことでしょうか? 大規模になものになると一人じゃ無理だし 本だけの知識だけでは業務では全然ついていけないですよね?
>>424 まずは、マスターというのがどういうことか。
たとえば、日本語をマスターするのはどういうことか?
日常生活で日本語に不自由してなくても、小説のような作品や、科学論文は書けないだろう。
Javaを知ってても、モノを作るには、そのモノに対する知識が必要なのだよ。
426 :
デフォルトの名無しさん :03/12/25 21:36
>>425 モノの知識があっても
javaをある程度知らなければ話にならないだろ
本だけの知識じゃなくね
ある程度体で覚えなきゃいけないだろ
427 :
デフォルトの名無しさん :03/12/25 21:46
textファイルの文字列をBufferedReaderで読み込んで Excelのシート1に上から書き出していくにはどうすればいいのでしょうか?
beansコンポーネントが入ったA.jarファイル(全クラスmybeansパッケージに含まれている)とA.jarを使っているB.class(mainあり)があるとき、プログラムを実行するにはどうすればよいでしょうか?
java B では実行できませんでした。
431 :
デフォルトの名無しさん :03/12/25 22:34
引数で method(1 + "String"); とあれば引数はint型でしょうか?String型でしょうか?
Nullpo型
>>431 仮に int だったとしてどんな値になるんだろ?
>>431 エラーだと思ったけど。違った???
確か基本データ型とオブジェクト型が合いませんとかなんとかコンパイラー
がいってくるような気がしたけど。
435 :
デフォルトの名無しさん :03/12/25 22:55
インスタンスの作り方って クラス 変数 = new クラス; 以外にもあるのでしょうか? たとえば クラス 変数 = クラス.メソッドみたいな処理は すでにインスタンス化されたのを省略して書いているのでしょうか?
>>435 staticメソッドの戻り値がインスタンス化されたクラスの参照値
こういうソース書いてます(貰ったそのまま) for ( int i=0; i<15 && Load_Text[i]!=null ; i++ ) { g.setColor( Color.black ); g.drawString( Load_Text[i], 5, (i*22)+22); } Load_Text[]にはBufferedReaderで読み込んだ文字列が入ってます でも、このソースだと(当たり前ですが)右端で改行されません 422さんの言うようにトークンで区切って、そこで改行するのが現実的ですかね 最初は一文字ずつ書いていって、文字数*フォントサイズがアプレットのwidthを 超えたら改行するとかも考えたんですけど…訳がわかりませんでした
>>436 海に行ってきまつ・・・
String型で定義されている多数のオーバーロードメソッドによりString型と
して扱われます。
method(1 + "String"); うおぉぉぉっ コンパイルエラーにならねぇ! いつから?
ばか >440
>>440 Java Language Specification first edition の頃から
443 :
デフォルトの名無しさん :03/12/26 01:04
親クラスと子クラスの継承関係がいまいちわかりません 子クラス extends 親クラス とあった場合 「子クラスは親クラスのメソッドやフィールドを参照できるようになる」 の他に何が出来るのでしょうか?
444 :
デフォルトの名無しさん :03/12/26 01:20
rmicのエラーに対処できません。ご教授お願いします。
ttp://www.hellohiro.com/rmi.htm ↑このページにあるRMIのサンプルをやってみたんですけど、
rmicのコンパイルがうまくいきません。
このページの
HelloWorld.java(インタフェース)
HelloWorldObj.java(オブジェクト)
をまずコンパイルして、classファイルを生成させました。
次に rmic HelloWorldObj と入力したら
error: クラス HelloWorldObj が見つかりません。
エラー 1 個
だそうです。他のページのサンプルをやっても、こうなります。
>>444 やってみたが特に問題なく***_Skel.classも***_Stub.classも出来たぞ?
環境に問題があるのでは?
J2SEのバージョンとかクラスパスとかもっかいチェックしてみては?
>>445 やはり、私の環境に問題があるみたいですね。
J2SEは1.4.2_01です。環境変数の登録は問題ないです。
とりあえずバージョンを変えて、もう一度トライしてみます。
>>446 >他のページのサンプルをやっても、こうなります。
フーン
すみません。Java のプログラムを作る場合、Applet と Swing どちらが いいのでしょうか?個人的には Swing が好みなのですが、 ネットで配布して Win や Mac などの各機種で使ってもらう場合を考えると Swing は簡単には実行できないのかな、と考えています。
>>448 Swing と Applet は互いに排他的な技術じゃないと思われ…
まあ言いたいことはわかる。アプレットとアプリケーションてことだろな
>>443 親クラスの型で子クラスのインスタンスを参照できる。
ポリモーフィズムとか多態性とか聞いたことないですか?
>>424 実際なんか作れ
モチベーションが続くように
難しすぎず自分が興味のある物がいい
大抵簡単なゲームってことになるが。
>>438 >訳がわかりませんでした
そのわけのわからんのでも、実際やってのけてる人は現実にたくさんいる
それに自分も挑戦して「プログラミング能力」として糧にするのか、
それとも Java2D なんかを活用して「Java通の知識」として糧にするのかってことだな
時間のある限りはどっちもやるのをお勧めする
失礼します。 現在独学でJavaを勉強し始めて1ヶ月の者で、try・catchでエラー処理をする必要性が理解できた所です。 オブジェクトを参照している限りオブジェクトの領域が解放されないとの事なのですが、オブジェクトを参照している状態でエラーが発生した場合、 catch文中で明示的にインスタンス変数にnullを入れるというのは一般的に使われているのでしょうか? また、使われていないのならば、一般的にどのような処理を行うのでしょうか?
>>455 場合に依りけりだが、
不要なものをそれ以上参照してても意味がないなら、
さっさと null にしてしまっていいし、まだどっかで使うなら当然そのままにしておけばいい。
「不要になったけど、破棄する前に別のクラスが後始末をしたいかもしれない」とかなら、
破棄用のメソッドを用意して、利用者に破棄する旨を通知してから null 代入・・・
なんて設計も考えられるが、似たようなことをする API にそのうちお目にかかるだろうから、
それから勉強してみてもいい。
すみません。Swingでプログラムを作ったのですが どのように配布すれば皆さんに使っていただけるでしょうか インストーラ付きのパッケージングとかはできないでしょうか
>>457 jar 化して jar だけで起動できれば使う側は楽
Win 向けに bat など用意してもよい
Java Web Start も勉強してみると吉
ただ何にせよ JRE はインストールしてもらわなきゃいけない
JET を使ってもいいけど高いからねぇ
アプレット版(必要に応じて機能限定)も作って、
体験版的に使ってみてもらうと後押しになるかも
<body>
<a href="
http://www.hoge.com/hoge/ " onClick="func()">foo</a>
<a href="hoge/hoge.html">bar</a>
<img src="img/hoge.gif" alt="hoge">baz</a>
</body>
こういうHTML文書がありましたら、リンクしているところの文字列だけを取得したいのですがどうすればいいでしょうか。
上記のホームページの場合 func() を取得したくないのです。
javaのライブラリにそういうのを取得してくれるライブラリはありますか?
無ければ正規表現で自力でやるしかないのですが...
>>459 使ったこと無いけど HTML を扱うクラスがある。その名も HTML。
眺めてみてはどうか。
XML を扱うやつもあるけど、
こいつは XHTML (<br> を <br /> にするとか) でないとダメだろうから使えないかな?
>>459 javax.swing.text.html.HTMLEditorKit.ParserCallbackを使えばある程度の
ことはできると思う。本格的なパースに使うとはまると思うけど。
最近、Javaのスレ乱立してない? いつからなのか___
464 :
デフォルトの名無しさん :03/12/26 19:55
SwingのJOptionPanelのshowxxxDialogで表示されるダイアログのフォントを設定する方法を教えてください。 引数で渡す親パネルのフォントが引き継がれるかと思ったら、結局デフォルトのフォントが使われてしまい、困っています。
>>461 ,462
ありがとうございます!
さっそくやってみます!
466 :
デフォルトの名無しさん :03/12/26 20:37
java.awtとjava.utilをimportしてコレクションのListを使用すると Listへの参照が曖昧とでるんですがどうしたらいいですか? 使いたいのはutilのほうです。
java.awt.List awtList = new java.awt.List(); java.util.List collectionList = new java.util.List();
>>456 遅くなりましたが、ありがとうございました。
470 :
デフォルトの名無しさん :03/12/26 21:56
java1.4の予約語がわかりません。 もしよかったらすべて教えてください。お願いします!!
472 :
デフォルトの名無しさん :03/12/26 22:10
rmicでのコンパイルができました。 以下のコマンドで成功しました。 rmic -classpath .;%CLASSPATH% HelloWorldObj カレントディレクトリはHelloWorldObj.classファイルがある場所です。 クラスパスはちゃんと通っていたのになぁ。一応ご報告ということで。
Q. javac Hello.java でコンパイルはできるのですが、 java Hello を実行しようとすると 『Exception in thread "main" java.lang.NoClassDefFoundError: Hello』 と表示されて実行できません。 これを見てやってみましたが、できません。。 コマンドプロンプトで set CLASSPATH=%CLASSPATH%;. と、やりましたけど、それだけじゃだめなんですか?
ソースコードを見せてもらわないと何とも言えない
>>475 俺のCLASSPATHはこうなってる。
.;C:\j2sdk1.4.2_03\lib\tools.jar
478 :
デフォルトの名無しさん :03/12/26 23:32
今日、コンパイルをしたところ、”コードが大きすぎます。” というエラーがでたのですが、このエラーはどのような条件で起こるのでしょうか? ちなみにコードは変数が一つのみ、これといった処理は行っていません。 その変数が4次元配列で、かなりの量の要素数です。 環境はjdk1,4.2です
>476 ソースコードとは、コンパイルしたJAVAのソースですか? >477 tools.jarって何ですか?(つд`) 何も知らなくてすいません○| ̄|_ 生まれてきてすいません○| ̄|_
>>478 そのとき、
(Code of a method longer than 65535 bytes)
とか出てなかった? それならそういうこと。
482 :
デフォルトの名無しさん :03/12/26 23:56
>>481 そういうメッセージはでませんでした。
でもやっぱりそういう内容のエラーなんでしょうね。
ちなみに変数1つで500kバイトあります。
この方法はあきらめます。
483 :
デフォルトの名無しさん :03/12/27 00:27
アプレットについて教えてください。 Microsoft VMでは、System.out.println()でJavaコンソールに 文字列を表示出来るんですが、JRE(?)では、何も表示してくれません。 コンソールに文字を吐くにはどうしたらいいでしょう?
485 :
デフォルトの名無しさん :03/12/27 01:05
tomcatをインストールした時にデフォルトである binってフォルダがあると思いますが binって何の事でしょうか?
486 :
デフォルトの名無しさん :03/12/27 01:17
>>484 表示されてました。すみません(汗
import java.applet.Applet;
import java.awt.*;
public class MyApplet extends Applet{
public void paint(Graphics g){
System.out.println("Hello from Java!");
g.drawString("Hello from Java!", 60, 100);
}
}
ちなみに上のコードで、次のメッセージが出ます。
「java.lang.NullPointerExceptionHello from Java!」
本をそのまま写しただけのつもりなんですが、どこか
まずい部分があるんでしょうか?
488 :
デフォルトの名無しさん :03/12/27 01:46
>>487 あれ?表示されますか?
Microsoft VMならうまくいくんですけど、JRE(?)だと
なぜかexceptionが表示されちゃいまして。。。(泣
今JREのバージョンが1.3.06なので、新しいのを落として
試してみます。有難うございました。
490 :
デフォルトの名無しさん :03/12/27 02:03
>>487 解決しました!
今JRE1.4.1_06を入れたところ、きれいに表示できました。
有難うございました。
>>464 UIManager.put("Label.font", new FontUIResource(new Font("Sans-serif", Font.TRUETYPE_FONT, 32)));
JOptionPane.showMessageDialog(・・・
とかすれば一応ダイアログのラベルのフォントは変わる。
>>485 binはbinaryの略・・・実行ファイルを格納するディレクトリです。
UNIX系OSで、FHSっていうディレクトリ構造を統一する規格があります。
・・・説明がめんどうだ。後は自分で調べろや。
493 :
デフォルトの名無しさん :03/12/27 03:44
javaでスレッドやガーベッジコレクションって 必ず参考書にあるけど 実際よく使うのでしょうか?
494 :
デフォルトの名無しさん :03/12/27 03:52
ttp://age.tubo.80.kg/upl2/img/576.txt ↑のプログラムを書いたのですが、
コンパイルは成功するのですが
問題に間違えると例外が発生します
i_orを1にすると
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at Or.orshori(Quizbox5.java:96)
at Sub_q.submain(Quizbox5.java:31)
at Quizbox5.main(Quizbox5.java:7)
がでて、
i_orを2にすると
Exception in thread "main" java.lang.NullPointerException
at Or.orshori(Quizbox5.java:96)
at Sub_q.submain(Quizbox5.java:31)
at Quizbox5.main(Quizbox5.java:7)
がでます
どうすればいいのでしょうか
>>495 全体読んでねぇから間違ってるかもしれねぇけど、
s_ans=new String[i_or];
ってのでi_orを1にしたなら要素数は1個でs_ans[0]のみ。
s_ans[1]はない。
i_orを2にした場合は
>>500 に任した。
すみません、解決しました。i_orの数値は1でよかったです。 それ以前に、 for(int i=0;i<s_defoans.length();i++) のところを for(int i=0;i<i_or;i++) になおせばうまくいきました //s_defoansの長さを測ってどうするつもりだったんだろ、漏れ…
×for(int i=0;i<s_defoans.length();i++){ ○for(int i=0;i<s_ans.length;i++){ じゃねーの? i_orの初期値は1のままで。 あと、変数を全部クラスのメンバにするのはすぐにやめるべき。 ローカル変数というものを覚えなさい。
_| ̄|○
MessageBoxを使おうとコンパイルしたら シンボルを解決できません、のエラーが出るのですが インポートの指定が足りないのでしょうか、それともクラスパスが 設定できていないからなのでしょうか IDE には NetBeans3.5.1 を使っています インポートの指定は java.awt.* としています。
MessageBoxってどのパッケージにあるわけ?
>>500 import先がjava.awt.*って・・・。
MessageBoxは標準でサポートされていなから、自作するか誰かのを持ってくるしかないんだがね。
>>503 それはAWTじゃなくてSWT。
www.eclipse.orgからライブラリ持ってきて
import org.eclipse.swt.widgets.MessageBox;
する。
ですね、よく読み進めるとそう書いていました。Swingの省略かとてっきり。
http://y-yutaka.cool.ne.jp/tec/java/swt/ ところでこの便利そうな SWT ですが、ランタイムは簡単にインストールできる
ものでしょうか?ネットで作ったプログラムを配布するときに利用者がわで
インストールが難しいと困るなと思う次第です。
あと、結構使われているものなのでしょうか、商用・非商用、 Java の世界で。
>>505 SWT、Windowsだと配布はさほど面倒じゃないね。
zipファイルにswt.jarとdllと他のjarをまとめて
配布。展開後にjarをクリックすればカレントディレクトリの
dllは共有ライブラリの検索パスに含まれるから。
ただ他の環境のことも考えたらJava Web Startの
利用も考えたほうがいいかも。
よく使われているかというとIBMの製品でしか
みたことないなあ。WSADみたいなEclipse系以外だと組み込み系.
Palmにライセンスが付属しているJava環境で使われている
みたい。
>>506 貴重な情報ありがとうございました。
各機種での利用が面倒かもしれない、また使用をそんなに見かけないという
ことなら SWT の使用は先送りにして自分でなんでも作ることにしたいと思います
Java も 1.5βはかなり評判が良いようなのでこちらを期待したいと思います
正式リリース時には見違えるように重くならなければいいな〜。そういうの多いから。
どうもありがとうございました。
たびたびすみません。
複数のファイル(クラス)から構成されるプロジェクトを作り
プログラミングしているのですが分からないことがあります
インターフェース(Frame)を主クラス側に作り、主クラスから
従属するファイル(クラス)を処理を実行させ、その経過を
主クラス側のインターフェース(Frame)のテキストエリアに
出力させたいのですが、従属側でどのような命令を書けばよいのでしょうか
従属側からインターフェース(Frame)へ直接アクセスできれば良いのですが
どうも出来ないようです。getFrames()でオブジェクトを取得できないかと
調べていますがイマイチいい例が見つからず困り果てています。
これぐらいしかサンプルを見つけきらない
http://www2s.biglobe.ne.jp/~yumi-ii/orange/contents/htmls/[email protected]
>>509 それは多くの初心者が陥る最初の関門
「従属するクラス」にインスタンス変数作って、
コンストラクタにでも自作フレームを渡せ
それができるようになったら、
クラス・インスタンス同士の係わり合いは自分でいちいちメソッドを書いて、
API の各メソッドは極力無いつもりでいたほうがいいかもいれん
javaで作ったアプリを配布するにはどうすればいいの?
>>510 出来ました。主クラスから従属クラスの呼び出しに
テキストエリアをパラメータ渡して、従属クラス側で TextArea.append ...
処理の都度、経過を表示するようになり少しづつソフトらしくなってきました。
ありがとうございました。助かりました。
>>513 見たよ。ありがとう
Javaを普通の人がやるのには抵抗がありそうだね。
JDBC + ORACLE + TOMCATでの環境構築に関する質問です。 コネクションを作る前にInitialContextの設定を行っておりますが、 lookUpというメソッドをCallしたところで例外となってしまいます。 (javax.servlet.ServletException: ?? java: ?????????????????????) どこらへんの設定を確認したらよいのでしょうか。 ご存知の方がいらっしゃいましたら教えてください。 Context initContext = new InitialContext(); Context envContext = (Context)initContext.lookup("java:/comp/env");
516 :
nokai :03/12/27 16:26
517 :
デフォルトの名無しさん :03/12/27 16:46
何回も出てる質問で申し訳ありませんが pathの設定がよくわからないのですが set classpath=.;%classpath% と打ち込んで javaを実行しても Exception in thread "main" java.lang.NoClassDefFoundError: test (wro t) at java.lang.ClassLoader.defineClass0(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:537) at java.security.SecureClassLoader.defineClass(SecureClassLo 3) at java.net.URLClassLoader.defineClass(URLClassLoader.java:2 at java.net.URLClassLoader.access$100(URLClassLoader.java:55 at java.net.URLClassLoader$1.run(URLClassLoader.java:194) at java.security.AccessController.doPrivileged(Native Method at java.net.URLClassLoader.findClass(URLClassLoader.java:187 at java.lang.ClassLoader.loadClass(ClassLoader.java:289) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java: at java.lang.ClassLoader.loadClass(ClassLoader.java:235) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java: とでます。これもやはりpathが通ってないってことですか?
すんません出来ました。無駄書きすみませんでした。
519 :
java厨 :03/12/27 16:54
eclipseのプラグインから、JDBCを触りたいんですが、Class.forNameで Class not foundになります。 java.class.pathを表示させると、「Startup.jar」しかなく、ここにpathが通るようにする方法がわからず 困ってます。 っていうか、classpathなんて動いてる最中に追加や削除って出来ないですよね? やりたいことは特定のドライバをロードし、それでアクセス可能なデータベースに コネクションを張りたいだけなんですが…。 どなたかご教授ください
1.package名を全部列挙することに成功しました。 Package.getPackages() 2.package名から中のクラス名を列挙する方法がわかりません。 3.class名から中のフィールド、コンストラクタ、メソッドを列挙することに成功しました。 Class c = Class.forName("java.lang.String"); c.c.getFields() etc. 2.の部分ができればJavaの全てのフィールド、コンストラクタ、メソッドが列挙できるようになりますが, どうすればできますでしょうか。よろしくおねがいします。
>>519 プラグインクラスローダがクラスを検索する範囲の設定は
plugin.xmlのrequire要素で。
あと、URLClassLoaderについて調べておいても損はないよ。
522 :
デフォルトの名無しさん :03/12/27 17:32
自分でクラスを作るとき、そのメソッドをstaticにするかしないか、というのはどういう基準で判断するのでしょう? staticにするとインスタンス作らなくても使えて素人にはやりやすいのでついメソッドをstaticにしてしまうのですが、何か弊害はあるのでしょうか。
523 :
java厨 :03/12/27 17:35
>>521 早速のレスありがとうございます。
しかし、pugin.xmlにあらかじめ列挙しておかないといけないということは
自作のpreferenceのGUIで取得したクラスパスで
動的に検索範囲を設定しなおすようなプラグインは作れないんですね…ショボン
WebLogicのコネクションの設定みたいな・・・
524 :
デフォルトの名無しさん :03/12/27 17:48
妙な質問させてください。どういう文で質問すればいいかよくわからないので。 メインのJFrameで色々処理を行うプログラムを組んでいるのですが、 例えば『プロパティ』を押して、新しくJFrameが画面に出て、 そこで色々入力したり変更したりしたあと、『OK』か『キャンセル』か クローズイベントが起こった瞬間にメインのフレームに処理を 返したいのですが、困ってます。 メインウィンドウの方でプロパティ用のJFrameとかボタンとか テキストフィールドとかオブジェクトを作ってしまうと、 メインウィンドウに配置するボタンオブジェクトとかと 一緒に宣言するので煩雑になってしまいます。 しかし、新しくプロパティ用にJFrame継承したクラスを作ってしまった場合、 OKなどが押されたイベントをメインウィンドウに気づかせるのはどうやるのか わからないで困ってます。 一般には、プロパティみたいなウィンドウはどのように組むのでしょうか?
>>524 フレーム間通信はとりあえず考えないで、その程度のことなら
JDialog使ったら?
527 :
デフォルトの名無しさん :03/12/27 17:57
>>526 ありがとうございます。
JDialogって言葉すら知らない初心者でした。
今から調べてみます。
528 :
デフォルトの名無しさん :03/12/27 18:04
>524 もしJDialogでは機能不足で、もう一つJFrameを使いたいなら、子フレームと親フレームは同じクラス内で宣言しとけば互いに参照できると思う。 でもそのクラス凄いでかくなると思うけど。
あ、・・でもそれをやりたくない、ってことで質問してたのね。ごめん。わすれて。
530 :
デフォルトの名無しさん :03/12/27 19:32
質問です。 JAVAアプリケーションでJPanel上にGIFイメージを表示して、それをJFrameに 組み込みたいのですが、それは可能でしょうか。(一応組んでみたのですが、表示できませんでした) それと、画像ファイルの表示についてですが、 Toolkitや、イメージオブザーバーは具体的にどのような役割を果たしているのでしょうか。
>>393 =413=417
>jar ファイル内部の別のjarファイル
jar ファイルの中身をクラスファイルとして読み込む自作クラスローダを作れば可能。
>>520 ですができませんか
Packageを見回してもClassを見回しても・・・
533 :
デフォルトの名無しさん :03/12/27 23:31
前にも質問したのですが
忘れ去られたのでもう一度質問します
J2EEって
あくまでもEJB、Servlet、JSPなどが入ってるミドルウェアで
あくまでもJ2EEそのものには実体はなくあくまでも範囲としての総称なんでしょうか?
それともJ2EEという何か「モノ」があるのでしょうか?
http://www.sw.nec.co.jp/word/az/az147.html など見てもJ2EEそのものはいまいち書かれてないし
>>530 >JPanel上にGIFイメージを表示
JComponent の方がよいだろう。paintComponent メソッドなどをオーバーライドして、
Graphics#drawImage する。
Toolkit は仮想的に存在するコンポーネントや画像のデータと、
画面上に実在として表示されるコンポーネントや画像の姿を結びつける役割などを持つ。
表現として使える色数などの問題があるので、Toolkit は Image に密接に関係を持つ。
画像の実像を作るためのヒントや具体的なデータを提供するのが Producer で、
そこからサイズなどのデータを受け取りたがるのが Observer 。
Observer は描画に先立ち Producer が準備OKかどうかを調べるなどのためのもので、
実際のピクセルを受け取るのは Consumer。
537 :
デフォルトの名無しさん :03/12/27 23:43
javaプログラマーって やはり本でのjavaの知識やコーディング能力はあっても デバッグ能力がなければやはり致命的なんでしょうか?
yes
>>539 どこが不具合か「すばやく」特定する力だろ
必ずしもeclispeとか便利なもんがあるとは限らないし
>>525 URLClassLoder使ったらロードできました。
どうもありがとうございました。
htmlを解析&変換したいのですが、フリーのパーサーというのは 存在するのでしょうか?
javaでDBにデータを追加する方法はいくらでもあると思うのですが テキストに書かれている文字列をボタンを押したら 指定のExcelに書き込むのはどうすればいいのでしょうか?
つまりJavaでは絶対に不可能?
547 :
デフォルトの名無しさん :03/12/28 03:51
親クラスと子の子クラス(つまり孫クラス)の関係ってどうなんでしょうか? 子の子クラスから親クラスへ参照とかできるのでしょうか? それともあくまでも参照は親と子だけしか無理なのでしょうか?
学生です。
JAVAを勉強して早9ヶ月になります。
テキストエディタなんか作ったり
ネットに乗っけるのは、ネットゲームのHP計算なんかを作ったりやってたのですが
実際にこれを仕事に使ってる方は、どんなものを作ってるのですかね?
9ヶ月やってるうちにJAVAの新しい機能もどんどん出てる感じがして
自分には基本だけで手一杯なのに、全部追ってる人なんているのかな?
と疑問に持ったので質問させてもらいます。
実社会では、、、いったいどんなことにJAVAは使われてるのですかね?
>>506 でIBMの製品と具体的に出てきているのですが
IBMがどんなことに使ってるのでしょうか?
また、そういうのは、いくらぐらいでやり取り?されてるのでしょうか?
変な質問すいませんです。
>>548 >自分には基本だけで手一杯なのに、全部追ってる人なんているのかな?
>と疑問に持ったので質問させてもらいます。
「全部追ってる」のは、研究者、教育者、出版関係者あと、企業でも、
技術調査を任されてる人ぐらいでしょうね。
現場のプログラマは、
どんな機能があるかのか(出たのか)概要だけ掌握しておいて、
必要になったときに調べる、というのが普通だと思います。
>実社会では、、、いったいどんなことにJAVAは使われてるのですかね?
Javaの専門誌が何誌が出ています。
本屋へ行くか、各誌の HP を見て、最近の号の目次をみるなりすれば、
おおざっぱなことはわかるのではないでしょうか。
業務用の用途としては、やはり、EJBでサーバを構築するという分野が、
今大きいと思います。
>>544 Jakarta POIで簡単なことなら出来るが、
機能実装が足りなさ過ぎるのでやめたほうがよい。
おれ的にも545さん案に賛成だな
>>547 親子とはどういう関係のことよ?
継承のことだったら子も孫も変わらんよ。
553 :
デフォルトの名無しさん :03/12/28 09:57
JDialogで色々ユーザから入力受け付けて、そのデータで処理を行なった後、JDialogを閉じたタイミングで親フレームにその結果を反映させるにはどうすればよいのでしょう。 下のソースのように、ダイアログにWindowListenerをつけようとしたら、「内部クラスで他のクラスは参照できません」というエラーが出てしまいました。 dialog.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { //親フレームに結果を反映させる処理 } });
>>553 他のクラスの参照に final をつける。
>>553 >>554 の方法でなきゃ、観念して、
WindowAdapter の無名クラスでなくきちんと名前を付けてクラスを作り、
コンストラクタでローカル変数の参照先(だろ?たぶん) を教えてやる
557 :
デフォルトの名無しさん :03/12/28 17:12
今Webサーバからデータを受け取ってきて、 それに対して処理をするJava Appletを書こうとしています。 問題はそのデータをWebサーバからダウンロードされたAppletだけが読むことが できるようにしたいと思っています。 Appletのコードのパスワード仕込めば一番簡単なのでしょうが逆コンパイルされると。。。 何か良い仕組みはないでしょうか?
>Appletのコードのパスワード仕込めば一番簡単なのでしょうが逆コンパイルされると。。。 ???
559 :
デフォルトの名無しさん :03/12/28 17:57
Windows用の(Java2対応の)Java VMってSunのを 入れるのが普通なんですか?
普通
>>557 Cookie使うかencodeURL使ってURLにセッションを追加すればいい。
>>Appletのコードのパスワード仕込めば一番簡単なのでしょうが逆コンパイルされると。。。
変数やコードを一語一句完全に逆コンパイルできるコンパイラーあるなら教えてくれ。
>>557 言いたいことは分かる。根本的に無理。
その気になれば、Applet が今何をしてるか全部分かる VM を設計できるんだから。
サーブレットと絡めるという前提があるなら
>>562 のセッション云々でやればいい。
でもその場合はデータを処理するのは Applet だけじゃないわな。
564 :
デフォルトの名無しさん :03/12/28 22:22
そのデータにアクセス制限かけて データを読み込めるCGIをJavaAppletでたたく. CGIコードはJavaAppletからの参照時のみ データの中身を返すようにしておく必要があるが, 俺はやり方を知ら(ry
>554 ありがとうございます。finalを付けることで動きました。
>>564 Exception : 実行時に起こる可能性をどうしても回避しきれないもの
Assertion : 実行時には絶対起こらないはずのもの
デバッグが終われば Assert は必要なくなる・・・・はず
.javaファイルと.classファイルとバイトコードの違いを教えて下さい。
au形式のファイルって、auコンバータ以外では作れないんでしょうか? auコンバータはエラー出すぎて、何も変換できません(´・ω・`)
>>568 .javaファイル→ソースコード
.classファイル→.javaファイルをコンパイルするとできる実行形式
バイトコード→.classファイルを構成するアセンブラレベルの言語
これからお仕事でJava使うんで勉強しなきゃならんのですが、今までVB.NET とC#ばっかり使ってきたので、.NET開発者用のJava解説本みたいなのってあ ります? 逆はよく見るんだけど・・・
まともな開発者なら特に要らない
575 :
デフォルトの名無しさん :03/12/29 10:19
トランザクションマネージャなどを使わず、スタンドアロン アプリケーションからXAを使って2フェーズコミットを行う ことって可能なんでしょうか? また、参考になる資料ありませんか?
>>571 ありがとうございます!
ありがとうございます(つд`)
変換できました〜
いつもお世話になります。 みすません。Javaでドライブレターを取得するにはどのようなクラスを 使えばよいのでしょうか ダイアログ画面でドライブレターを指定してコピー処理等を行いたいと考えています
>>577 File#listRoots() を使うとか。
>>578 教えていただいた方法であっさりできました。
ありがとうございました。
調べ方が足りないな〜。未熟だ。
580 :
デフォルトの名無しさん :03/12/29 15:24
最近javaをやりはじめた初心者ですが、静的変数とインスタンス変数ってどう 違うんですか?静的がクラスと結びついていて、インスタンスがオブジェクト と結びついてるとかなんとか入門書には書いてあって、初期化や使い方が書い てあるんですが、違いがいまいちわからないです。どういうときに静的変数や インスタンス変数を使うのでしょうか?
>>580 "ヒト"クラスがあるとして
このときクラスは人類を表しインスタンスは個人を表す
人の身長体重はインスタンスに属する数値情報
世界人口はクラスに属する数値情報
>>580 例えば
class Human {
//生物分類とかは人類全体に帰属するのでクラス変数とする。
static biological_classification bio_class, order, family, genus, species;
//性別、年齢、名前などは個人に帰属するのでインスタンス変数とする。
Sex sex; int age; String name;
}
Class Person { static long wp = 9000000000; //世界人口 String name = "田中"; //個人 } こんな感じですか?
*class
>>583 田中以外の名前の人間は居ない、と。
世界人口って60億ぐらいじゃなかったっけ?
>>583 いつから 90億になったのやら・・・
60億に決め付けたければ static final にする
プログラム上変動しうるなら final にはしない
でもまぁ、シミュレータなんかでは、全人口を long に取るのではなく、
地域インスタンスから getPopulation() したものの総和を取る・・・なんてことをするだろうから、
人口データを static にする機会は考えにくいかもしれない
誰か正解かいてやれよ
正解っつーか単純かつわかりやすい例が思いつかないんだろ。
>>580 静的変数(static変数)は、「クラスが持つ変数」、
インスタンス変数は、「インスタンスが持つ変数」。
「クラスが持つ変数」を何に使うかというと、
全てのインスタンスにまたがった値を保持したい場合。
「プログラミング言語Java」には、
インスタンスに生成順にシリアル番号を振る場合などが
例として挙げられている。
つうか、私の主観だけど、
「静的変数」という呼び方はあんまりよくないと思う。
「クラス変数」と呼んだほうが、
意味をよくあらわしていると思う。
590 :
デフォルトの名無しさん :03/12/29 16:45
JOnASってなんていうの?
staticフィールドと呼んでやれよ
論点がずれてますよ
>>580 クラス変数な。まあいろいろ使い出はあるぞ。
・実行環境ひとつに対してひとつしかいらない値 (例:定数、System.out、、)
・あるクラスのオブジェクト全体に関する値 (例:オブジェクトの総数、最後にオブジェクトを作った時刻、、)
・クラスが表す「現実のクラス」に関する値 (例:「人間」に対する総人口、、)
とか。
定数をstaticにしないと、オブジェクトを作った分だけ定数をもつ領域ができて無駄。だからstaticで1個にまとめる。
595 :
デフォルトの名無しさん :03/12/29 19:18
HDDがとんだのでいろいろ再インストールしているのですが、 Sun,IBM,Blackdownと選択枝に迷ってます。 違いなどを教えてください。
クラスごとに存在するのがクラス変数、クラスメソッド インスタンスごとに存在するのがインスタンス変数、インスタンスメソッド
ただし自分が優秀だと勘違いしている開発者は 嘘書いてあるのも鵜呑みにする
NullPointerExceptionが起きたとき、どのインスタンスがnullであるために起きたのか、そのインスタンス名を厳密に捕まえることはできるでしょうか。 こんなことを聞くのも、この例外が起きる行は特定したのですが、そこで使っているどのインスタンスもnullではないからです。 listbox.setListData(items[]); とやっている行で、どうもJListBoxのインスタンスがnullであるということで例外が発生しているようなのですが、 直前で if (listbox == null){ System.out.println("nullだぞ"); } とやっても別に引っかかりません。
>>599 普通に考えれば見間違いか思い込み。でなきゃ他スレッドの所為。
まずは stacktrace 晒せ。
>>599 listbox.setListData(items[]);
これコンパイル通るのか?
コンパイルに失敗して、
修正前の class で実行していると思われるがどうか
デバッガも使っています。 デバッグで追うと、 listbox.setListData(items[]); の行で例外が発生します。 しかし、この行を listbox.setListData のように同じリストボックスを使って適当なメソッドで書き換えても例外はおきません。 また、items配列をfor文で回して一つづつ表示させても、例外は起きません。
あ、正確には、 listbox.setListData(items); と書いています。 あと、直前のレスで、 >しかし、この行を > >listbox.setListData > >のように同じリストボックスを使って適当なメソッドで書き換えても例外はおきません。 と書いてしまいましたが、 listbox.removeAll(); のような適当なメソッドで、と読み替えてください。
デバッガで追ってるんだったら 各変数の値もでるだろうに そこは見てるのか?
>605 うお。気付きませんでした。見てみます。
気づかなかったんじゃなかろう。 使い方知らないだけ。
似たようなもんじゃねーか。ケツの穴の小せー追い込みかけてんじゃねえ
見たまえ!うんこがモンブランのようだ!
ふー、だめや。あかんかった。 setListDataを使った場合だけlistboxの評価に失敗するようです。 しかしここは一発自分で解決してみます。>607さんありがとう。
>>610 で、itemsがnullかどうかは調べたんだろうな。
612 :
デフォルトの名無しさん :03/12/30 01:08
ちょっと質問。 sdk1.4.1をインストして使ってたんだけど、統合開発環境のNetBeansに変えようと思い sdk1.4.2の入ってるNetBeansをインスト。 パスを通そうと思って環境変数を変えたんだけど、javacコマンドが通らないんだな。 ちなみにsdk1.4.1の時は、PATH = D:\java2\bin でちゃんと使えてた。 sdk1.4.2の時は、PATH = D:\java2\j2sdk1.4.2\bin でエクスプローラーでコピペもしたんだけどダメ。 長い名前がダメだと思って、D:\java2\j2sdk1~1\bin ってしたけどダメ。 なんで? NetBeansインストするときJREをアンインストしなかったのがまずかったのかな?
>>612 = の前後に空白が入っているのに深い意味は無いんだろうな。
>>612 D:\java2\j2sdk1.4.2\bin このフォルダ本当にある?
615 :
デフォルトの名無しさん :03/12/30 01:55
>>613 ここで書くために"PATH ="としただけで、実際は環境変数のpathのところに
;D:\java2\j2sdk1.4.2\bin
と追加しただけ。
>>614 コマンドプロンプトでちゃんと確認したよ。
ちなみに本機は、Win2000 SP4なんだけど。
616 :
デフォルトの名無しさん :03/12/30 04:01
ひょっとしたらスレ違いかもしれませんが・・・ TEXTAREAタグの内容を送信し、サーブレットでAccessに書き込みさせたいんですが、 Accessを直接開いて見てみると改行されているんですが、 jspで読み込んだときに改行がされていなくて困っています そこで、正規表現を使って改行コードを<BR>に変換しようとしているのですが、 \r\n、\r、\n全てに対応させる方法がわかりません pattern = Pattern.compile("\r\n|\[rn]"); 上記のようにやっているのですが、エスケープ文字が不正だと言われます そもそも正規表現の仕方が間違っているような気もしますし・・・ わかる方がいらっしゃればどうか教えていただけないでしょうか? また、もし正規表現以外で出来るのでしたらそちらも教えていただけないでしょうか?
617 :
デフォルトの名無しさん :03/12/30 04:26
インターフェースについて質問です implementsをつけることでそのインターフェースの中のメソッドを 必ずつけなければならないのはわかるのですが 何のためにつける意味があるのでしょうか? あってもなくてもメソッドは使えるのに わざわざ必ずつけなければならないという制約をつける必要性とかあるのでしょうか? もちろん何かメリットがあるからつけると思うのですが 教えてください
618 :
デフォルトの名無しさん :03/12/30 05:36
>>617 PS1とPS2のコントローラーが別々だったら困るだろう?
だから同じ仕様じゃないと駄目なの
>>617 >あってもなくてもメソッドは使えるのに
いや、なければもちろん使えませんよ。
620 :
デフォルトの名無しさん :03/12/30 06:24
>>619 そんなことないだろ
たとえば
interface a{
method1;
}
とあった場合
implementsしてもしなくても
method1は使えるだろ
>>620 interface a 型として使えませんね。
っつか、
> method1;
コンパイルエラーになるね。
>>616 パターンの中に「改行文字」を含めることは出来ないかも。
文字列「\r\n|\r|\n」を表すには、"\\r\\n|\\r|\\n" と書けばいい
・・・という解釈でいいのかな?
>>622 今試してみたところ、うまく置換する事が出来ました
どうもありがとうございました
また、\r\n|\r|\nでも試してみましたが、こちらでもうまくいきました
しかし、\\r\\n|\\r|\\nの方が間違い無いと思うのでこちらを使わせていただきます
>>617 例えば何かの理由で複数の TableModel を Collection にためておいて、
TableModel al = (TableModel)iterator.next();
こうする。
next() メソッドで得られた Object が ActionListener として適合しない場合、ClassCastException が発生するが、
TableModel として必要な 9つのメソッド全部を持つかどうかを、このとき調べるよりかは、
コンパイル時点で「これはTableModelだよ」とマークしておいた方が、手っ取りばやい。
第一、用途に沿ってクラスを設計するならば、
それがどんな用途なのか明記した方がいいに決まっている。
履歴書に運転免許やら資格やらがあるかどうか明記しておけば、
人事異動のときいちいち本人に訊かなくて済むのと同じ。
> Object が ActionListener として適合しない場合 TableModel の間違い。書き換えのこし。
626 :
デフォルトの名無しさん :03/12/30 12:10
すいません。 SunのJava VMがインストールされているかをコマンドプロントで確認する方法を 教えてください。 Microsoft VMは jview と入力すれば確認できますが、Sunは 違う表示が出るのでしょうか?
627 :
デフォルトの名無しさん :03/12/30 12:24
すいません、アプリケーションについての質問です。 Java自体が経験不足の素人ですが、現在SWTを利用してGUIを作成しています。 既にImage(サイズ大)を貼り付けた上にさらにImage(サイズ小)を貼り付ける方法を探しています。 現在、setBoundsという座標指定メソッドで描写済み画像上への上書きを試みたのですが、上手くいきませんでした。 画像自体は参照しているようで、画像以外の空白領域ならば問題なく貼り付ける事が可能です。 そこで、SWTではなくSWING、AWTでも構わないので、この辺りの問題について書かれている日本語サイトをご存知の方がいましたら、紹介願えないでしょうか。
628 :
デフォルトの名無しさん :03/12/30 12:30
>>626 これじゃ駄目?
$ java -version
java version "1.4.2_01"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_01-b06)
Java HotSpot(TM) Client VM (build 1.4.2_01-b06, mixed mode)
629 :
デフォルトの名無しさん :03/12/30 12:58
>>627 どうやらImage表示の実行順序が早いもの程前面にくるようで、
書き込み時毎に大きい画像を解放し、小さい画像表示、大きい画像表示とすることで、解決できました。
お騒がせしました。
>>520 ですが
あるパッケージの中のクラス名を取得したいのですがどうすればいいのでしょうか。
レスが付かないのは、単純に見えて実は難しいからなんでしょうかね。
IDEなら import java.lang. とした時に,クラス名を全部列挙するという使い道があるから単純な方がいいのに・・・
うーん おねがいします。
>>631 java.lang.Class とか java.lang.Package とか java.lang.reflect.* とかでは
そんなメソッドは提供されてないので自力で検索するしかないと思われ。
633 :
デフォルトの名無しさん :03/12/30 13:19
>>627 Canvasでならできるがw
GraphicsクラスにdrawImageってメソッドがあるから、
それ使ってImageオブジェクトを指定座標に描画だ。
634 :
デフォルトの名無しさん :03/12/30 13:35
配列を使わずに処理したいんですが、 for文などで変数名に連番をつけることはできるのでしょうか。 例えば String str1=new String(); String str2=new String(); String str3=new String(); : などをつくりたいんですが。
> for文などで変数名に連番をつけることはできるのでしょうか。 無理。
636 :
デフォルトの名無しさん :03/12/30 13:41
>配列を使わずに処理したいんですが 大丈夫ですか? しっかりしてください! 気を確かに持って!!!
>>520 1.は間違い。Package#getPackages() ではロードされたクラスが属するパッケージの列挙しかできない。
試しに API リファレンスに記述されてるパッケージが全部列挙できてるか確認してみろ。
3. だけだと隠蔽、上書き、その他もろもろを全然考慮できてない。
JavaスレとVBスレの伸びは異常に早いねぇ
>>637 ホントだ、使い物にならない。
ありがとうございます。
640 :
デフォルトの名無しさん :03/12/30 14:19
>>621 確かにその書き方じゃコンパイルエラーになるが
別にコンパイルエラーの話じゃないし
何が言いたいことはわかるだろ
620も適当に書いたぽいし
インターフェースのメソッドをつける話をしてるのに
話の流れからして空気の読めないって奴って嫌い
揚げ足取りとか
641 :
デフォルトの名無しさん :03/12/30 14:39
a extends b b extends c c extends d ・・・ とあった場合 aクラスがd以降のクラスを参照することは可能でしょうか? たとえば a aa = new d(); z zz = new a(); などあくまでも親クラスと子クラスの関係なので aとbの関係と同じくそれぞれキャストしながらでも参照は可能でしょうか?
>>641 >aクラスがd以降のクラスを参照することは可能でしょうか?
型が a である変数 hoge が、d のインスタンスを参照する、
の意でしょうか?
a hoge = new d();
それなら可能です。お分かりのとおり、d は a でもありますから。
クラス、変数、インスタンスなどの語を丁寧に選んで使ってくださいね。
それとクラス名は例え仮想のものであっても大文字ではじめて下さい。
その方がずっと読みやすいので。
643 :
デフォルトの名無しさん :03/12/30 14:57
ありがとうございます
ということは、たとえば
A hoge = new D();
とあった場合
AとDの関係は
A→B→C→Dのような関係になるのでしょうか?
それともBCは飛ばしてAが直接Dを参照してるのでしょうか?
>>641 の場合、あくまでもAはBしか拡張してないわけなので・・・
>>640 >>621 は interface の話してるのにメインじゃない方の話で揚げ足取りかよ。
っつか、
>>640 は自分が嫌いだって宣言してるだけだな。
> aクラスがd以降のクラスを参照することは可能でしょうか? 「参照」をどーゆー意味で使ってるかわからん。
646 :
デフォルトの名無しさん :03/12/30 15:20
A型の変数がD型のインスタンスを参照しています。 BCはメソッド呼び出し等で意味を持ちます。(DがBCのメソッドをオーバーライドしていない時など) しかし、A型の変数とBCは直接には関係ありません。
>>643 C, D も、れっきとした「A を拡張したもの」です。
A→B→C→Dのような関係にも当然なっています。
C でメソッドを増やせば、D のインスタンスに対してもそのメソッドを使用できます。
A のメソッドを B がオーバーライドして、C と D がそれ以上オーバーライドしなかった場合、
hoge に代入された D のインスタンスは、
そのメソッドを実行されれば B で実装したように振舞います。
D のインスタンスを参照している変数が何であれ、A → D のように飛び越すようなイメージではありません。
これをポリモーフィズムと言います。C++ は少し複雑なのですが、
Java の場合は徹頭徹尾、振る舞いは「そのインスタンスが何のクラスであるか」に規定されます。
648 :
通りすがりのオバQ :03/12/30 15:26
>>642 なんでやねん!
>お分かりのとおり、d は a でもありますから。
a は d やけど、 d は a とちゃうわ!
a が子で d が親(ひいじいちゃんくらい?)やさかいに、 d hoge = new a();
なら大丈夫。
>643
騙されるなよ!
ちなみに D foo = new A ();
とあった場合、
A と D の関係は、
A→B→C→Dのような関係になる。 ( 考えると当然だよね )
642の馬鹿やろうが a hoge = new d (); が大丈夫だと
ほざくから643さんの頭が混乱したんだろうけど・・・。
アルファベットと記述の順に惑わされてしまいました 平素 B が A を継承する例を出してくる方が多いので・・・ 首を吊って死にます
652 :
通りすがりのオバQ :03/12/30 15:35
>>649 >a aa = new d();
>z zz = new a();
>などあくまでも親クラスと子クラスの関係なので
>aとbの関係と同じくそれぞれキャストしながらでも参照は可能でしょうか?
読んだけど↑の意味が理解できない・・・。
653 :
通りすがりのオバQ :03/12/30 15:37
>>649 >>650 俺が馬鹿かと思って641を100回読みなおしたのに・・・。
間違いかよ〜。 泣
654 :
デフォルトの名無しさん :03/12/30 15:48
ネストクラスとか インナークラスとか実際に多用されているのでしょうか? 今まで書かれているソースを実際見たことないのですが
655 :
通りすがりのオバQ :03/12/30 15:52
>654 多用されているかどうかは別として、 TOMCATのソースとかインナークラス使ってたような。
>> 640
>>621 は私ではないですが、
仮に、
public interface a{
void method1();
}
と書かれていても、 method1() が実装しない限り使えないことには
かわりがないですよ。
私が
>>219 でいいたかったのそのことです。
657 :
デフォルトの名無しさん :03/12/30 17:02
String s = new String; のようにStringをインスタンス化するのを見ますが インスタンス化するのはどうしてでしょうか? objectなのでStringはインスタンス化しなくても使えると思いますが
> objectなのでStringはインスタンス化しなくても使えると思いますが 何言ってるのかわからん。
>>657 全般的に、言わんとしていることが分かりません。
>objectなのでStringはインスタンス化しなくても使えると思いますが
せっかくのオブジェクト指向言語なんですから、
インスタンスを作らないとプログラミングしにくいですよ。
確認しますが、
"Hello, World!" ←これも String クラスのインスタンスだというのは知ってますか?
660 :
デフォルトの名無しさん :03/12/30 17:36
>>659 String s;
s.concat("__")
String s = new String();
s.concat("__")
でも同じじゃん
インスタンス化しなくてもString使えるのに
じゃインスタンス化するのはなぜ?
って事です
>>660 String s;
s.concat("__")
( ・∀・)
と ) | | ガッ
Y /ノ | |
/ ) .人
_/し' < >_Λ∩
(_フ彡 V`Д´)/
/ ←
>>660
662 :
デフォルトの名無しさん :03/12/30 17:45
>>660 cancatは適当に書いたので
そこはなんでもいいわけで
String s = new String();
言いたいのはこれをする意味です
これがある処理とない処理ではどう違うのでしょうか?
参考書とか見てもStringの説明の部分で普通ないですよね
だいたい
String s;
>>662 そういや
String s = new String();
って意味ないよな
>>662 > String s = new String();
初期化されてる。
> String s;
初期化されてない。
>>665 その説明だと
String s = null;など初期化したら
String s = new String();
と「同じ内容である」という事になってしまうぞ
参照型のデフォルトはnullなんだし
667 :
デフォルトの名無しさん :03/12/30 18:16
TomcatやpostgreSQLなどのwebアプリケーションで DB登録型の買い物サイトとかを作っているのですが 今までStrutsしかやったことないのですが たとえば同じ内容の物を作るのにStruts以外では他にはどういう方法がありますでしょうか? リクエストの受信 起動時生成 アクションマッピング、メッセージリソース アクションフォームBeanの決定 リクエストデータセット アクションクラスの決定 ・・・ みたいにどんどんい行くと思うのですが なんか多くのサイトとか参考書でちょっとした買い物サイトなどを作るには ほとんどがStrutsしかないみたいな書きかたなのですが
668 :
デフォルトの名無しさん :03/12/30 18:42
tomcat3.xと tomcat4.xって 何が違うのでしょうか? 3→4だから大きく変わったのだと思いますが
Tomcat 3: Servlet API 2.2 / JSP 1.1 Tomcat 4: Servlet API 2.3 / JSP 1.2 Tomcat 5: Servlet API 2.4 / JSP 2.0
>>661 ローカル変数に見えるのでコンパイルエラーだと思われ。
>>666 > 参照型のデフォルトはnullなんだし
ローカル変数ならデフォルトは関係ないね。
ああ、初期化しないとコンパイルエラーになるからか。
『初期化しないと』じゃなくて、 値を使用(参照)する前に、『値が確定していない』とコンパイルエラーになると 言ったほうが正確かな。
s.concat("__") ; このコードはナンセンス。初心者用の落とし穴です。
>>675 sがStringだから
s + "__";
でいいって事か?
論点がずれてますよ。
> s.concat("__") ; しても s 自体は変化しないって事。 s = s.concat("__"); とかしないと無意味なだけ。
そもそもその行に意味は無い。
ここは・・・(・∀・)イ〜イスレだなぁ・・・
String s = new String(); Stringクラスの引き数なしコンストラクタは 空文字列シーケンスを指すオブジェクトを生成する、 ことになってるから String = s; と違ってオブジェクトが生成されている。 だからまるきり同じじゃないけど、わざわざそう書くべきケースは思いつかない。
じゃなかった String s;
あれじゃん、その場合 s == "" がfalseになるじゃん、String s = ""; とやった時と違ってさ。 だから・・・ えっと、何だっけ?
>objectなのでStringはインスタンス化しなくても使えると思いますが こんな早合点の馬鹿に付き合わなくてもよし
>>681 つまり
String s = new String();
などしてもあまり意味はないと?
全く意味が無い
というか、もともとObjectのStringをプリミティブとして使うために 簡単に宣言できるように、 String s=new String();をString sでOKにしたんじゃないの?
じゃ多くのソースで String s=new String(); みたいにわざわざ使ってるのは何なのだろう わざわざ =new String(); をつけてるのは 意味があるからやってるのだろうと思うけど
>>688 >>じゃ多くのソースで
>>String s=new String();
>>みたいにわざわざ使ってるのは何なのだろう
うそだろ・・・
パッケージlang の意味知ってる???
690 :
デフォルトの名無しさん :03/12/30 23:29
すいません、最近、アプリケーションサーバ(SunONEApplicationServer 7)に手を 出した者ですが、リスナーのHTTPデフォルトポートが81なのはなぜでしょうか。無 線LANを介してネットワークに繋げているのですが、やはりこのポートが80番を占有 しているからですか?だとすれば、ネットワークに繋がっていない状態だと80番を取 る事ができると思いますが、今度はHTTPトランザクションに繋げない状態ですよね。 Webで検索すると、どこも普通はポート80(リスナー)なんですが、私の状態というのは特殊な のでしょうか。普通にルータを通して無線カードに繋げているだけなのですが。。とり あえずポート80を確保しないと、「Webアプリケーションのプロセスを起動できません。」 とか言われます。ポート80と関係があるのかは微妙ですが、他のプロセスは何度見 ても間違っていないので、おそらく問題はここかと思いますが、いかがでしょうか? なにぶん、Javaを始めたばかりのネットワーク初心者ですが、よろしくお願いします。 IDEはSun ONE Studio 5 SE です。Sunのチュートリアルで引っかかりました。
692 :
デフォルトの名無しさん :03/12/30 23:58
ドキュメント読めよ… String s = new String(); ↓ String s = ""; String s; ↓ String s = null; 全然意味違う。
>>683 文字列比較はequals()メソッドで。trueになるよ。
空文字列と null の区別もつかない馬鹿が巣食うスレはここですか?
>>696 空文字列とnullの違いが分かるなら
String s;
と
String s = new String();
の違いも分かるだろ
>>660 付近から馬鹿のスパイラルが始まってるな
論点ずれたり意味不明だったりのスレの応酬
ダイヤグラム(進行グラフ)をJavaで 作りたいのですが、何について学べば よいのでしょうか?
Stringの件、誰かずばっとまとめてくれ
1. 「""(長さ0の文字列)」と「null」は別物。 2. 「String s = new String();」は「String s = "";」と同じ。 変数sには""(長さ0の文字列)が入る。 「s = ""」では、sにあらかじめ用意された「長さ0のStringインスタンス」への参照が代入される。 「s = new String()」では、その瞬間に新たなStringインスタンスが生成されるので、速度的にも容量的にも単なる無駄。 だから通常「new String()」が必要になることは無い。 3. (ローカル)変数sを String s; と宣言した場合、sは「まだ初期化されていない状態」になる。これは「null」とは明確に違う。 後にsの値を参照する前に何らかの値を代入する必要がある。 (初期化されない可能性のある変数を使おうとした場合、コンパイルエラーになる。(・∀・)イイ!) 4. フィールドとなる参照型変数は宣言時に初期値が与えられない場合、nullで初期化される。 class Hoge { String s; } というクラスがあれば、 class Hoge { String s = null; } として扱われる。
だから String s; と String s = null; が同じなんていってる奴は馬鹿。馬鹿。大馬鹿。氏んだ方がいい 暗黙的にsがnullで初期化されるのはsがフィールド変数である場合のみ s = new String();が必要になる場面は、全くといっていいほど無い。 唯一、『「new String()」そのものに興味がある』ときのみ String s1 = "", s2 = new String(); 「s1 == s2」がtrueになるかfalseになるか調べたい、とか、 for (int i = 0; i < 1000000; i++) { s = ""; } for (int i = 0; i < 1000000; i++) { s = new String(); } どちらがどのぐらい速いか調べたい、とか、 こういう変態的な場面で使われる。
「文字列」ってのは「Stringクラスのインスタンス」な。混在してるけど読み替えてくれ String#concat()メソッドにはなんの意味も無い。+でつなげばよし。 String s, s1 = "foo", s2 = "bar", s3 = "baz"; s = s1 + s2 + s3; ←これで十分 s = s1.concat(s2).concat(s3); ←無駄、馬鹿、アホ
J2SDK内にあるMathクラスやStringクラスの.javaファイルそのものが読みたいです。 APIみたいな箇条書きじゃない、コードそのもの。 ファイナル変数や色んなメソッドがたくさん記述されてて、 java初心者はオーバーライドなんかについて すごく理解が深まると思うんだけどな。 (もし読めたら、の話だけど)
src.zip
>>699 馬鹿と初心者の区別は?
上級者から見て
初心者=馬鹿ならここはお前の来るとこではない
偉そうに答えてる奴が豪快に間違えてたり論点ずれたりしてるということだろう。 660の前あたり見当違いのレス続きじゃないか。わからないのか?
>660の前あたり
訂正
>>699 の前あたり見当違いなレス続きじゃないか
710 :
デフォルトの名無しさん :03/12/31 05:28
JSPってjavaソースに変換して生成するのだと思いますが そのJSPをもとに生成されたファイルってJDKのどこに作られるのでしょうか?
>>710 コンパイルを指示するのはServletコンテナ。JSP→Javaソース変換を
行い、そのあとjavacでコンパイルする。ソースやコンパイル後のクラス
ファイルをどこに置くのかは、実装依存だっけ?Servletコンテナから
見える場所に置くだろうね。君がサーバーアプリとしてデプロイしてい
るコンテクストルートの下のWEB-INFのあたりとか。
>JDKのどこに
意味わがわからんが、JDKって場所があるの?
2. 「String s = new String();」は「String s = "";」と同じ。 変数sには""(長さ0の文字列)が入る。 "同じ"じゃないな。"同値"だけどさ。 って、こういうこと言うと混乱するのかな? >s = new String();が必要になる場面は、全くといっていいほど無い。 >唯一、『「new String()」そのものに興味がある』ときのみ new String()で生成されたインスタンスの存在意義ねえ… Object o = new Object()をMUTEX LOCKのモニタに使うことがあるけど、 そのかわりにnew String()しているソースを見たことがある。 意味があるのか?Objectでいいじゃん、と思うけどさ。
713 :
ぼるじょあ ◆yBEncckFOU :03/12/31 11:43
new String()に意味があるのは、 既存のインスタンスと全く関係の無いStringクラスのインスタンスが 欲しい時だけだYO! この場合常に if ("" != new String()) {System.out.println("Not equal.");} なんだYO!
アプレットを動作させたら止まっては動いて止まっては動いてで不具合があるんですが、何か原因あるんでしょうか? OS:XPpro Java:J2SDK.1.4.1_02(最新の日本語のものがダウンしてる為これ使ってます プラグインはアップデートやってインストールしたんですがそれでも駄目でした。
716 :
デフォルトの名無しさん :03/12/31 13:40
String tempに格納した文字列と指定した文字列と比較して 値を返すメソッド名教えて下さい ↓こんな感じの temp.メソッド名("文字列");
718 :
ぼるじょあ ◆yBEncckFOU :03/12/31 15:30
>>716 (・3・) エェー equalsとcompareToがあるYO!
前者は一致比較に、後者は辞書式比較に使えるYO!
ちなみにボクは、
"文字列".equals(temp);
って書くYO!
tempがnullでも落ちないほうが都合がいいCー。
特定のフォルダにあるファイルを順に読み込む方法って どうやったらいいんでしょうか? Serializeしたオブジェクトを1ファイルずつ読み込んでいきたいんですが。
>>719 File#listFiles() でファイル列挙して順に処理すれば?
>>719 もし処理順序が重要なら、java.util.Comparatorを継承したクラスを定義して
java.util.Arrays.sort(files, comparator);
すると良いぞ。
535氏の通りJComponentをextendsして実行してみたのですが、paintComponent()が 呼び出されません。 このような感じで組んでみたのですが…。 class A extends JFrame{ A(){ B b=new B(); Container c=getContentPane(); c.add(b); } } class B extends JComponent{ Image img; public void b(){ Toolkit tool=Toolkit.getDefaultToolkit(); img=tool.getImage("test.gif"); } public void paintComponent(Graphics g){ super.paintComponent(); g.drawImage(img,0,0,this); } } public class test{ public static void main(String[] args){ A a=new A(); a.setVisible(true); } } イメージオブザーバーにはとりあえずthisを入れていますが、これはコンポーネントを 指定しているのでしょうか。その場合、特定のJPanelなどを指定することも出来るのでしょうか。
>>722 Bのコンストラクタどこいった?
public void b()じゃコンストラクタのシグネチャじゃないぞ。
あけましておめでジャバ
今年こそJ2SDK1.5がリリースされますように。
あけましておめでとうございます。 本年もよろしくお願いいたします。 早速ですが、文字列をバイト単位で数えたいのですが length以外、どのような命令で出来るでしょうか すみませんがお願いいたします
なんでこのようなことをお尋ねするかというと 日本語の全角文字も含んだ文字列をカウントしたいのですが length() ですと正確なバイト数が分からないためです やはり Unicodeをデコードするところからしないといけないのかなぁ〜
getByte() つかえ間抜け!! はい、すみません。 ありがとうございました(自己完結)。
>723氏 すみません、 B(){ b(); } です。
public static void main(String args[]){ ClassA obj_a = new ClassA(obj_b); ClassB obj_b = new ClassB(obj_a) } あたりまえですがこのコードは通りません。 ◇──> B A <──◇ このような関係にしたいのですが、一番スマートな方法はなんでしょうか。
同じクラスにしちゃいけない理由を書かないと
JDBCについて質問なんですが SQLの例外のなかにEJBで言う所のDuplicateKeyExceptionみたいなものはないでしょうか 現在はe.getMessage()で取得した文字列から「duplicate」の文字を探して(今使ってるDB以外でも通用するかわかりませんが) 見つかったら「キー重複」のメッセージ出してるんですが、これが妥当なやり方なのか迷っていまして・・・
>>731 この本に「ドメインとプレゼンテーションは切り離せ」って書いてあるんだよおおおおお
734 :
デフォルトの名無しさん :04/01/01 14:44
>>730 Domain d = new Domain();
Presentation p = new Presentation();
d.initPresentation(p);
p.initDomain(d);
723氏、すみません、自己解決しました。
736 :
デフォルトの名無しさん :04/01/01 14:56
すんません。初歩の初歩聞かせて・・・・_| ̄|○ 低レベルAPIとかの、『低レベル』『高レベル』って何でしょうか・・・
多分 低レベル・・・ハードウェア寄り、ハードに依存することが多い 高レベル・・・ハードに対して抽象的、ハードごとの依存が少ないが代わりに細かい操作や速度が劣ることが多い という風に考えればいいのでは・・・
>>734 やっぱり、コンストラクタじゃ無理ですよね。
ありがとうございます。
739 :
デフォルトの名無しさん :04/01/01 15:16
740 :
デフォルトの名無しさん :04/01/01 16:03
WSAD上でstrutsのwebアプリ開発してるんだが、DB2との接続がうまくいかぬ・・・! struts-config.xmlでの記述方法について知っておられる方、心温まるアドバイスきぼんぬ。。
>>732 エラーコードで判別するのが普通でっしゃろ。RDBMSに依存するので、
そっちの仕様書読みなはれ。
>>740 「接続がうまくいかぬ・・・! 」だけじゃなんとも。
何をどうしたらどううまくいかないのかを書かないと。
実行時にどんなエラーメッセージが出るのか、とか。
おおかた、struts-legacy.jarが実行時クラスパスに入ってないとか
じゃないかと思うが。
ちなみに、Struts1.1では struts-config.xmlの記述による
DataSourceの使用は非推奨で、コンテナのDataSourceを使用
することが推奨されている。JNDI使え。
743 :
デフォルトの名無しさん :04/01/01 17:45
なんかJAVAにバグがあるらしく 年明けにそのバグが発動するという噂を聞いたんですが 本当なんですかね?
745 :
デフォルトの名無しさん :04/01/01 18:05
スレ違いだったら無視してください。 他の言語と比べて、javaへの不満というか、 機能が足りない部分というものを教えてください。 例えば、 『C++と比べて、演算子のオーバーロードが無い』 等です。お願いします。
746 :
デフォルトの名無しさん :04/01/01 18:27
重い
>>746 「重い」っていうのは「起動が遅い」っていう意味ですか。
クラスの多重継承ができない
win32API使えない・・・ と思ったr MicrosoftがVMでJ/Directを出してた。 でもさすがにMFCは使えないだろ。
751 :
デフォルトの名無しさん :04/01/01 23:35
javaでXMLファイルを読み込んでから、データを追加して書き込んでいます。 書き込んでいる処理は以下のコードで行っているんですが、その際にXML内に 含めてあるDTD定義が消えてしまうんです。 どのようにすれば消えないようにできるのでしょうか? いくら調べてもわからなかったのでどなたか知っていたら教えてください。 保存処理のソースコード //ソースツリーの設定 javax.xml.transform.dom.DOMSource src = new javax.xml.transform.dom.DOMSource(); src.setNode(document); //出力ストリーム(出力結果)の設定 javax.xml.transform.stream.StreamResult target = new javax.xml.transform.stream.StreamResult(); target.setOutputStream(new java.io.FileOutputStream(xmlfile)); // 書き出したいストリームを設定 javax.xml.transform.TransformerFactory tff = javax.xml.transform.TransformerFactory.newInstance(); javax.xml.transform.Transformer tf = tff.newTransformer(); //ソースツリーを出力結果 tf.transform(src,target); ターゲットのXMLファイル <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE item [ <!ATTLIST item id ID #IMPLIED > ]> <list> <item id="1"> ・・・ </item> </list>
752 :
デフォルトの名無しさん :04/01/02 02:12
私は、まだプログラミングの初心者なんですけど、 この年末に1週間くらいで、Javaの結城本の上を、一通り読み終えました。 理解度としては、練習問題を、時折、前のほうを読み返しながら解く程度で、 まだ、あやふやな箇所が多いですが、なんとなく全体像は捉えたと思います。 この場合、再度、読み返すのか、それとも、すぐにJava結城本の下のほうへ進むか、 どちらが良いと思われますか? Java結城本の下を学習すれば、同時に上のほうの復習に成るでしょうか?
753 :
デフォルトの名無しさん :04/01/02 02:16
お勧めのJAVA開発環境はどれですか? Windowsで開発します。eclipse の普及率ってどのくらいなんでしょうか?
755 :
デフォルトの名無しさん :04/01/02 02:25
>>752 本読むのもいいけどひたすら書べしだよ。
少しわかるようになったんなら、本はリファレンス的なモノとして使うように。
>>753 作るアプリの種類によってかわってくるんでないかと。
eclipseの使用率はすごく大雑把だけど、感覚的には10人中2人って感じ。
756 :
デフォルトの名無しさん :04/01/02 17:05
JNDI使ってDatasource取得しようと思うんだけどpropertyファイルの 記述がなぜか無視されてcontext初期化用のクラスでNoClassDefFoundError が出るんだけどなんで? tomcat3.3.1 JDK1.2 DB2
ゲームとかで実行速度を一定に保ったまま描画だけ 処理落ちさせる方法について勉強したいんですけど 適当なサイトか書籍ありませんか? とりあえず「フレーム数」とか「処理落ち」とかで ぐぐったけどイマイチよいページがひっかかりませぬ。
758 :
デフォルトの名無しさん :04/01/02 19:14
わたしも描画関連で質問。 Javaって実はかなり環境依存ありますよね。 アプレットでアニメーションさせるとき、勝手にアンチエイリアスかけるブラウザだと めちゃくちゃ描画が遅くなってしまい困っております。 解決方法はないものでしょうか?(遅い方にあわせる以外で・・・)
759 :
デフォルトの名無しさん :04/01/02 19:57
>>757 処理落ちさせる、ってのは描画が中途半端になる、ってことじゃなくて
コマ数を減らす、ってことだよな?
repaintって描画完了までブロッキングするわけじゃなくて
再描画のキューを入れるだけで、再描画が終わらないうちに
もう一度repaint呼んでも一度しか再描画はされないんじゃなかったっけ?
ちょっと記憶があいまいだから詳しい人いたら補足キボンヌ。
仮にそうだとしたらpaintに内部処理を書かず、純粋に描画の処理を書いて
別のスレッドで内部処理をすればいいんじゃないの?
760 :
デフォルトの名無しさん :04/01/02 20:09
コンストラクタの修飾子について質問です。 public修飾子はほかのクラスからアクセスできるコンストラクタ と入門書にかかれていたのですが、publicをつけないでも 他のクラスから呼び出せます。いまいちpublicの意味がわからない です。どなたかお助けを。。。
761 :
デフォルトの名無しさん :04/01/02 20:19
>>760 修飾子無しだとデフォルトのアクセス権を持ったコンストラクタになる。
別のパッケージから呼んでみな。呼べないはずだよ。
<frameset cols="200, *"> <frame src="foo.html" /> <frameset rows="50%, 50%"> <frame src="bar.html" /> <frame src="baz.html" /> </frameset> </frameset> JFrameでウィンドウを上記のように区切りたいと思っています。 GridBagLayoutだと思うのですが、GridBagConstraintsには幅の絶対値を指定するものがありません。 どうすべきでしょうか。GridBagじゃないのでしょうか。
どうでもいいけどJavaってヌルポが出ても強制終了しないから好き。
別のパッケージとはなんでしょうか?別のクラスの集まりって意味ですか? すみません初心者で...
765 :
デフォルトの名無しさん :04/01/02 20:30
>>764 パッケージってのは名前空間のようなもの。
java.lang.Stringとかの「java.lang」の部分。これをjava.langパッケージと言う。
public - 無条件にアクセス可能
デフォルト(何も書かない)- パッケージ内でアクセス可能
だから、あらゆる場所から利用するコンストラクタはpublicに
しないとダメなのですよん。
>>765 ありがとうございます。
あともう一つわからないことがあります。
Objectクラスのメソッドについて質問です。
getClass()メソッドというのがありますがこれは入門書に
現在のオブジェクトのClassオブジェクトを返しますとありますが
どういう意味なのでしょうか?
>>766 getClass()メソッドの戻り値はjava.lang.Classクラスのインスタンスです。
これはインスタンスが所属するクラスのクラス定義を表すクラスです。
よく使われるのは、object.getClass().getName() です。
あらゆるインスタンスに対し、クラス名を取得することができます。
Object o = "String"; でも、 o.getClass().getName() によって
"java.lang.String"を得ることができます。便利ですね。
>>768 作り方は簡単だ。
>必要な条件はID、PASSを管理できること、
htaccessのやつかCGI独自のものか知らんが単純にユーザに入力させてファイルに保存すればよし。
>OpenJaneみたいな三面型の見た目。
JSplitPaneでも使え。
>簡単にローカライズできるように言語ファイルを採用
設定ファイルを外部で持たせろ。
作成依頼ならスレ違い。
ttp://age.tubo.80.kg/upl2/img/725.txt こんな風に、ボタンが二つ表示されて、
押したボタンによって反応を変えたいのですが、
これをコンパイルして実行すると、button2しか表示されません。
c.add(l,BorderLayout.CENTER);
b1=new JButton("no.1");
b1.addActionListener(this);
b2=new JButton("no.2");
b2.addActionListener(this);
c.add(b2,BorderLayout.SOUTH);
ここら辺を入れ替えると、button1のみになるので、
順番が関係してると思うのですが
どうすればいいのでしょう。
>>770 c.add(b1,BorderLayout.SOUTH);
・・・
c.add(b2,BorderLayout.SOUTH);
b1をSOUTHに配置して、その後b2もSOUTHに配置しとるぞ。
Yahoo!ファイナンスにみられるような株の売買の様子をかいた 2Dのチャートをつくりたいのですが、どのように実装すればよいのでしょうか?
>>771 とりあえずb2をEASTに配置したらうまくいきました。
でも、同じところにボタンを配置できないということは、
ボタンは最大で5こまでしか置けないということですか?
>774
そう。だから、それ以上やる時は Panel を作ってそれを貼る。
というか、今回はグリッドレイアウトでいいんじゃないかな?
ttp://msugai.fc2web.com/java/applet/awt/GridLayout.html とか偉そうに言っておきながら俺も困ってるんですが、
class A{
public static void main(){
A hoge = new [サブクラス](); }
するコードって書けますか?
つまり、
class B extend A{}
とかやって
コマンドライン> java B
するとBのインスタンスをつくるような。
>773 せっかく教えていただいたのですが、 英語で書かれているのでよくわからないです。 とりあえず落としてみて実行してみたんですが、エラーだらけでした。 ソースを読んでみたのですが、jfree.org内のクラスを使用 しないと実行できないようでして、jfree.org内のクラスを 使用しない形で2Dのチャートを作りたいです。
>>775 % cat A.java
public class A {
public static void main(String[] args) {
A hoge = new B();
}
}
class B extends A {
}
% javac A.java
% java A
コード自体は別に問題ないが main メソッドは A クラスに属するんだから
実行は java A だ。
778 :
デフォルトの名無しさん :04/01/03 02:50
質問あげ。 ものすごく初歩的な質問で申し訳ありません。 int型の値を型に変換するにはどうしたらいいのでしょうか。 double a、int bとしてa=(double)bとやっても駄目で、 ラッパ(?)を試みましたがことごとく失敗しています。 APIで確認して、ぐぐってもみましたが解決できません。 きっと探し方が悪いんでしょうけど… よろしくお願いします。
すいません、 ×int型の値を型に変換するにはどうしたらいいのでしょうか ○int型の値をdouble型に変換するにはどうしたらいいのでしょうか です。
これならできました。 Javaでは初期化してない変数の参照は 認められてません(エラーメッセージの通りです) public class test { public static void main(String[] args) { double a; int b; b=0; a = (double)b; } }
>>780 ありがとございます。
ですが、bにはすでに値が入っています。
ついでにaも初期化しているのですが…
> 実行は java A だ。 えーと、mainを流用したまま各サブクラスのインスタンスを作りたいんです。
>>782 args の値で場合わけするなりリフレクションを使うなりしろ
>>781 普通はできないはずがない。とりあえずエラーメッセージを書け。
doubleじゃなくてDoubleの悪寒
doubleの小数点以下2桁までを出力するには、どうすればいいんでしょうか。 2桁以下を切り捨てたいんですが。
100倍してintに入れて、再度doubleに代入してから100分の1にする。 ・・もっとスマートな方法がありそうだね。
切り捨てる理由が表示だけならこんなのも。 double dValue = 1234.56789; System.out.println(new java.text.DecimalFormat("##########.##").format(dValue));
ありがとうございます。
>>788 さんのはよくわからないので、
>>787 さんの方法でやろうと思います。
すいません、できました。 doubleの値を文字列にしてラベルに表示する、という方法をとっていたのですが、 int->doubleではなくdouble->Stringのとこがまちがってました。 死のう…
791 :
デフォルトの名無しさん :04/01/03 19:45
Javaの勉強しようと本を買ってきたばかりなんですけど、 現在sunのホームページからSDKダウンロード出来ないようです。 英語のページからだとダウンロードできるんですけど、 日本語のページからダウンロード出来るものと同じ物ですか?
>>791 たぶん同じ。日本語のダイアログが出ると思う。
>>792 たぶん同じですか。
これからインストールしてみます。
ありがとうございます。
794 :
デフォルトの名無しさん :04/01/03 20:53
テキストファイルの行(例えば100行目とか)を指定して、その1行を削除する方法を探しています。 Writerのメソッドを調べていたのですが、ぴったりなものがなくて困ってます。
>>794 いったん全部読み込んで100行以外を除いてファイル作り直せばいいんじゃない?
なるほど。そんな方法もありますね! ファイルサイズが大きくなければいけそうです。やってみます。
>>796 というか、そういう方法しかないと思うが。
>>775 ご回答ありがとうございます。
しかし、リンク先のグリットレイアウトというのはアプレット
見たいなので、パネル使います。
配列について質問です。 配列はどのクラスに属するんでしょうか? public class ArrayTest { public static void main(String[] args){ byte[] obj = new byte[256]; System.out.println("The class of " + obj + " is " + obj.getClass().getName()); } } // #java ArrayTest => The class of [B@194df86 is [B とりあえず、byteの配列をgetClass.getNameしてみたら [B が返ってきました。 ???.length とかあるので一応クラスなのではないかと思っているのですが。
ユーザーインターフェイスでButtonを押したらウィンドウがクローズするようにするにはどうすればいいですか
>グリットレイアウトというのはアプレット ?
>>801 あのリンク先がアプレットについて書いたページだったんで、そうだと思っていましたが実はそうではなかったんですね。すみません。やっぱりグリットレイアウトでやってみます。
javaの実行時に java app aaa.txt bbb.txt みたいに パラメータとして2つのファイル(aaa.txt、bbb.txt)を渡すようにしているのですが そのパラメータが入力されたかどうかのチェックを行いたい場合、 どのようにすればいいでしょう? いちいちBufferedReaderとか使って取り込んでException発生させないとできないでしょうか? aaa.txtはすぐに使うので良いのですがbbb.txtはプログラム後半で必要になるので bbb.txtを使うときに「パラメータ指定してねぇぞ」ってエラーを発生させてしまうのは なんか嫌なので・・・。
>803 先に args.length を調べとけ。 (public static void main(String[] args) の場合ね。)
すみません。 java.awt.GritLayoutを調べたところ、やっぱりアプレットでつかうようなのです。 普通のときに使うにはどうすればいいのですか?
807 :
デフォルトの名無しさん :04/01/03 22:53
char a='あ'; char b='い'; System.out.println(a+b); をやると実行結果は、24710です。 文字列同士の+は有効でも、文字同士は駄目だということでしょうか?
>807 いかにも。
>>805 どこをどう調べたのかは知らないが、
Appletで使用できるがそれ以外では使用できないレイアウトマネージャは標準APIに存在しない。
>>804 こんな簡単にできたんだ・・・。
ありがとうございます。
>>806 そんなところに詳細が書いてあるとは・・・。
確かに配列は配列型みたいですね。
すんまそん。ありがとうございました。
>>791 遅レスだが、Windows Offline Installation, Multi-languageと
書いてあるから多国語対応、つまり日本語もOKだね。
オフラインインストーラを選ぶかオンラインインストーラを選ぶ
かは好みで。漏れはいつもオフラインインストーラだけど。
770の欲しいソースはこんな感じか? import java.awt.*; import java.awt.event.*; import javax.swing.*; public class GridLayoutSample extends JFrame { public static void main(String[] args) { GridLayoutSample app = new GridLayoutSample(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); app.setSize(200, 200); app.setVisible(true); } // 続く
//813の続き public GridLayoutSample(){ Container pane = getContentPane(); pane.setLayout(new BorderLayout()); JPanel panel = new JPanel(); pane.add(panel, BorderLayout.CENTER); panel.setLayout(new GridLayout(4, 4)); for(int i = 1; i <= 16; i++){ JButton button = new JButton(String.valueOf(i)); button.setActionCommand(String.valueOf(i)); panel.add(button); button.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { JOptionPane.showMessageDialog(GridLayoutSample.this, e.getActionCommand()); } }); } JButton button = new JButton("終了"); pane.add(button, BorderLayout.SOUTH); button.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { System.exit(0); } }); } }
>>808 駄目じゃないだろ。+は有効。
文字を連結するという効果は無いけど。
new GridLayout(4, 4)見たくやればいいのですね。 ありがとうございました。
817 :
デフォルトの名無しさん :04/01/03 23:40
_| ̄|_| ̄|○ どこで質問したらいいかわからず、体の構造が変になってます。 『”』←これって、『ダブルクォート』と『ダブルクォーテーション』、どっちの呼び名が正式ですか?
>>807 +の片方か両方のオペランドがString型のときだけ連結をすることになっている。
char型の場合はその文字コードをint型の数値と読み替えて加算してしまいます。
回答ありがとうございました さっぱりわかりました
821 :
初心者です :04/01/03 23:49
質問させて下さい。 JAVA使用のゲーム(yahoo将棋など)をしてる最中によく駒が動かなくなることがあります。 マウスポインタは動くのですが、、 いろんなところをクリックしてると治ります。(なぜそうなるのかは分かりません) 解決方法があればご教授お願いいたします。
Javaのプログラムで,デフォルトの音楽のプレイヤー(WindowsMediaPlayerやWinampなど)を立ち上げ演奏したいと思っています。 やり方が全く分からないので何かヒントをください(クラス名とか)。よろしくお願いします。
Runtime.getRuntime().exec("start hoge.mpg");
>>823 ヒントって言ったのに答えやんけ!!!
って嘘です、ごめんなさい、どうもありがとうございます。助かりました。
>>821 ガベージコレクションでもしてんじゃね?
ぜんぜん知らんけど
hffp://age.tubo.80.kg/upl2/img/756.txt 上のように組むと、左のボタンを押すと、一回表示が代わりますが、 その後反応しません。 右のボタンにいたっては、まったく反応しません。 (らべるがかわるようにしくんでおいても) どこが悪いのでしょうか
>>821 それはゲームプログラムの実装の問題だから、ユーザ側で
対処できる問題ではないと思われ。そもそもこのスレで聞く
ことではない。Yahooに要望でも出しとけ。
強いてユーザ側で対処できるとしたら、メモリ増設とかCPUを
高速なものにするぐらい。
>>826 (誤)
b2 = new JButton("パターンを変えよう");
b1.addActionListener(this);
(正)
b2 = new JButton("パターンを変えよう");
b2.addActionListener(this);
このせいで、b1にアクションリスナーを2回登録していて1クリックで2回の処理が行われる。
こんなのデバッガで追っかければすぐ分かるだろ。
ここまでできるレベルならEclipseのようなIDEを使うべき。効率が全然違う。
ついでにクラスとイベントリスナーの使い方がよく行われる方法と異なるので、
>>813-814 のコードを見て参考にするといい。
こんなエラーがでました。意味がわからず困っています。 どういう意味なのか教えてください。 C:\home>javac CanvasDemo.java C:\home>appletviewer CanvasDemo.html java.lang.ArrayIndexOutOfBoundsException: 150 at MyCanvas.paint(CanvasDemo.java:13) at sun.awt.RepaintArea.paint(RepaintArea.java:177) at sun.awt.windows.WComponentPeer.handleEvent(WComponentPeer.java:260) at java.awt.Component.dispatchEventImpl(Component.java:3678) at java.awt.Component.dispatchEvent(Component.java:3477) at java.awt.EventQueue.dispatchEvent(EventQueue.java:456) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh read.java:201) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre ad.java:151) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137) at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
>831 たくさん表示されたのでびびって思考が停止してました(*_ _)人ゴメンナサイ すみません、ありがとうございました。
>>831 たくさんあるように見えても、
>>829 の場合は例外の投げられた一番大元の場所がまず示され、
つぎにその例外が起きたメソッドが、どのメソッドから呼び出されたのかが、
順々に表示されているだけにすぎません。
親亀の上に子亀をのせて、子亀の上に孫亀をのせて、
孫亀のうえに曾孫亀を乗せて、親亀こけたら、みなこけた。
833 :
デフォルトの名無しさん :04/01/04 09:11
java.awt.Labelの画面上での大きさについて。 Frameなどにaddして実際に画面に表示された後なら getSize()で、その大きさを得ることができますが、 addする前に、今貼ったらどのくらいの大きさか あらかじめ知る方法はないでしょうか?
getPreferredSize getMinimumSize
>>834 以下のような使い方だと(0,0)になりますが、
これは使い方を間違っているのでしょうか?
コメント//を外した時にLabel.getSize()で得られるサイズを取得したいのですが…
import java.awt.*;
public class Test extends Frame{
Label l;
public static void main(String[] args) {
Test f = new Test();
f.setSize(320,240);
f.setVisible(true);
}
Test() {
l = new Label("Test");
//add(l);
}
public void paint(Graphics g) {
System.out.println(l.getSize().toString());
System.out.println(l.getPreferredSize().toString());
System.out.println(l.getMinimumSize().toString());
}
}
失礼、上のソースのコンストラクタの最初の行に追加です setLayout(new FlowLayout()); なんか「作られていないからそういう値はない」という 結果に至るような気が… 一旦Labelをこっそり貼って、サイズ取得してすぐ消すとか Label().getFont()とかで得られる情報から推測するとか そういうヘタレな方法なら思い浮かんだのですが
837 :
デフォルトの名無しさん :04/01/04 20:10
超初心者です。よろしくお願いします。 ある特定のフォルダ内にあるファイル名、フォルダ名を すべて取得したいのですが、その場合もどうしたらいいのでしょうか? (注目しているフォルダ内にフォルダがあっても、その中身は チェックする必要はありません)
839 :
デフォルトの名無しさん :04/01/04 20:44
GUIで、警告メッセージを出すにはどうすればいいのでしょう?
841 :
デフォルトの名無しさん :04/01/04 21:09
JButtonを可視状態のまま押せないようにすることはできますか?
>>841 「可視」ってenableじゃなくてvisibleのこと?
なんか逆の質問している気がする。
843 :
デフォルトの名無しさん :04/01/04 21:43
>>842 ありがとうございます!
enableをキーワードにAPIを検索したら解決しました!
844 :
デフォルトの名無しさん :04/01/04 21:47
すいません、JTextAreaにKeyListenerをつけたのですが、 KeyTypedメソッドがバックスペースに気づくときと気づかないときがあるような気がします。 1.そのようなことはありうるのか? 2.もしあるなら、明示的にバックスペースキーにも気づく方法はどうするのでしょうか? 無茶苦茶初心者ですんません。どうかお教えください。
>>845 どうもありがとうございます。早速見させていただきます。
847 :
デフォルトの名無しさん :04/01/04 22:23
JavaAppletについて質問なのですが。 自分で作ったApplet付きのホームページを訪れた人のパソコンに何らかの情報を 残して、次に訪れたときにその情報をAppletで取り出したいのですが、どうすれ ばいいですか? たとえば、Applet上でユーザー名を入力させて、次に訪れたときは、自動的に その名前が出てくるような機能です。 CGIやJavaScriptならcookieを使うのが一般的ですけど、JavaAppletの場合も やはりcookieですか?
848 :
デフォルトの名無しさん :04/01/04 22:29
板・スレ違いかもしれないのですがどこで質問していいのか 分からないのでこちらで質問させていただきたいのですが、 ブラウザのツールバーのツール→sunのjavaコンソールという ものがあるのですが、これはどういうものなのでしょうか? まったくプログラムを知らない私が触れるところではないのでしょうか? どなたかお詳しい方よろしくお願いします。
849 :
デフォルトの名無しさん :04/01/04 22:38
850 :
デフォルトの名無しさん :04/01/04 22:56
質問させてください。 Fileクラスを使って、file.exists()を検査してfalseになったのを確認してから file.makedir()を呼び出しているのですが、どんな名前であれ 常にフォルダ生成に失敗してしまいます。 この情報だけでバグ特定してくださいというのも無茶かもしれませんが、 一般によくやるミスを教えていただけないでしょうか
>>849 さん
レスありがとうございます。
リンク先を読んだのですが、まったくの初心者の私には理解するのに
時間がかかりそうです。
849さんがおっしゃっているように、一応プログラマーの方のみが使用する
ところと考えてよろしいのでしょうか?
アホな質問してすみません。質問の続きです。 fileに対して、 String str=jt.getText(); file.renameTo(new File(str)); としているのですが、file.toStringをしても何もでてきません。 毎回file=null;file=new File(str);としなおさねばならないのでしょうか?
>>850 >file.makedir()
目が腐ってるんだと思うよ。
>>853 すんません。間違えました。
しかしながら、ソース上ではfile.mkdir()になっておりました。
もうちょっとオブラートに包んだ表現をお願いいたします。
眼球が腐敗しているものと思われます
_| ̄|○
(目が腐ってるんだと思うよ。) ↑ ↑ オブラート オブラート
まぁフォルダってわかってるならisDirectory()使ったら?てことで
|無職| λ...... やっぱ俺みたいなアホはプログラマ無理だわ
860 :
デフォルトの名無しさん :04/01/04 23:17
∀`)
そうとう初心者なんですが、ボタン貼って表示したウィンドウのボタンを クリックするとウィンドウはそのままで、飾り(ボタンとか)をなくして 他のものを貼りたい(ラベルなど)場合はどのようにすればいいのでしょうか。 Swingでやってます。
>>862 楽にやるなら最初から複数のウィンドウを用意しておいて
ボタンのクリックでそれぞれのvisibilityを切り替えるのがいい。
やってみます。ありがとうございました。
javaでファイル選択を促すjfilechooserというのがあるようですが、 フォルダ選択のクラスはあるのでしょうか? あったらクラス名を教えてください。お願いします。
Swingの使い方について詳しく解説してくれる良書があれば教えてください。
>>867 JFCプログラミング キム トプレイ
Java GUIプログラミング 大村 忠史
大村タンのは読み応えがあんまなかったな。SWT編もアレだし。
AWTまで網羅するなら
グラフィックJava2 デビッド・M. ギアリー
>>868 様ありがとうございます
スレッドの扱いとかについても詳しくのってますでしょうか?
表示更新がうまくいかないので過去ログみたりググってみたりしたんですが
「イベントディスパッチスレッド」とか「invokelater」とかが理解できなくて・・・
870 :
デフォルトの名無しさん :04/01/05 01:17
JMFを用いてWindowsMediaPlayerのようにリストを作って、 順に動画や音楽を再生するプレーヤーを作成したいのですが、 ヒントになるようなプログラムやサイトはありますでしょうか? 書籍(日本語でかかれているもの)が一冊しななく困っております ご存知でしたらご教授お願いします
JMenuにフォーカスがあたった時、 その「前」にどのコンポーネントにフォーカスがあたっていたのかを得たいのですが、どうすれば良いのでしょうか? ESCキーで元のコンポーネントにフォーカスが戻るので元のフォーカスコンポーネントを得る方法がありそうだと思うのですが・・・
>>871 どの部分がわからないのかはっきり書け
リストを作るならSwing、再生ならJMF
どっちもやりたいことを実現するためのサンプルコードはあるはず
JMFの方で英語しかドキュメントがないならそれを読め
いつかは英語しかドキュメントが無いという状況になるのでその練習ということで
>>871 やったこと無いけどFocusListenerとかでできない?
んで1個前を覚えとく
>>874 それは多分できるんだけど
JMenuが一個前を覚えてるはずだから、それを参照できないのかなぁ・・とおもってみたりして・・
876 :
デフォルトの名無しさん :04/01/05 06:35
PrintWriterの使い方もわかり、ファイルの出力はできるようになったのですが、 既存のファイルの末尾に新しく何かを書き込む場合はどうすればよいのでしょうか?
>>876 RandomAccesFileで書くようにして、書く前に
末尾までポインタ移動しる。
>>876 new FileOutputStream(filename,true) とか new FileWriter(filename,true) とかするとか
>>753 Eclipseのダウンロード件数は1000万件を突破
880 :
デフォルトの名無しさん :04/01/05 15:15
ところでFile#mkdir()とFile#mkdirs()どっちつかえばいいか迷うなあ。 Javadocの説明見ても曖昧なことかてあって双方の違いの意味わからげ
JTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF)を使用することによって、横のJScrollBarが使えるようになりました。 しかし、カラムの幅が狭すぎるのです. カラムの横幅を指定するにはどうすればいいのでしょうか。
該当の日付になったら『今日は****の日』と表示させる方法を教えてください。 『****まであと****日』というのはJavaScript系のサイトで出まわっていますが 該当日だけ表示させる方法が見つかりません。
>>882 あなたはjavascriptについて探しているのですか
だとしたら板違い。
InputStreamにStringを入れたり、OutputStreamから文字列を取り出すにはどうしたらいいのでしょう? Fileからならうまくいくのですが・・・
strValはStringオブジェクトで、nullか空文字列かの判断をするときに、 if (strVal != null && !strVal.equals("")) { } と書くのはよく見るんですが、 if (!strVal.equals("") && strVal != null) { } は見ません。 なにか理由があるのでしょうか?
_
ミ ∠_)
/
/ \\
ウイーン Γ/了 | |
ウイーン |.@| | | ガッガッガッ
| / | 人
|/ | < >_Λ∩
_/ | //.V`Д´)/ ←
>>886 (_フ彡 /
888 :
デフォルトの名無しさん :04/01/05 21:19
>>886 論理演算子は左から評価されるので、後者の書き方ではぬるぽが発生します。
まずnullチェックするのがJavaの定石です。
ぬるぽってNullPointerExceptionでしょうか? Javaの定石だということなのでそのまま覚えようと思うのですが、 なぜ前者の書き方だとstrVal != nullの段階で例外が発生しないのですか? あれこれとすみません。
890 :
デフォルトの名無しさん :04/01/05 21:59
&&は論理積ショートカットなので左辺がfalseだった時点で右辺が評価されなくなるからです。 886の上の例の&&を&に変更すると文字列がnullの時にNullPointerExceptionで落ちます。 &は単なる論理積なので左辺右辺ともに必ず評価されます。
891 :
デフォルトの名無しさん :04/01/05 22:05
FileReader fr = new FileReader("yomikomi.txt"); int c; for(int i = 0; i < 10;i++){ int count = 0; while( (c = fr.read()) != -1){ if(c == i){ count++; }} System.out.println("i = " + count); こういう処理があって ファイル内にある0〜9の数をカウントして出力したいのですが うまく拾えません デバッグすると fr.readで一文字ずつ取ってcに代入される各文字が 19とか24とか47とか二桁の数字ばかりをとって来てcにうまく代入されません どこが悪いのでしょうか?
if ("".equals(strVal)) { } としろ。
BufferedReaderでキーボードから入力されたものを Integer.parseIntでint型(数値)に変換する前の処理で 入力されたものがint型に変換できるか(数値であるか)、それとも何かしらの文字が入力されていて int型には変換できない(数値以外のものが何かしら入力されている)かを判断させる処理を したいのですが、APIをざっと見た限りではそんなメソッド等は見つからなかったと思うのですが この場合、自分でその判断をさせる処理は作らなければならないのでしょうか? それとも何かメソッドがあるんでしょうか?
>>891 そういうことですか、わかりました。
ありがとうございます。
と納得したのもつかの間、
>>892 は?
それだけしておけば、結局のところ参照比較っていうのでしょうか?
!= はいらないということ?
895 :
デフォルトの名無しさん :04/01/05 22:19
>>893 実際にパースしてみて、
例外が投げられるか投げられないかで判断させる。
>>891 それで正しく動いているんじゃないかな。
そのyomikomi.txtに書かれているデータは、アスキーコードによる「数字」だから。
よってcのなかには、yomikomi.txtに書かれていた数字のアスキーコードが格納されているわけ。
charに代入して、文字として比較し、処理をしていけばいいとおもうよ。
>>888 Java以外にも、CやPerlでもそうだよね。
>>889 >なぜ前者の書き方だとstrVal != nullの段階で例外が発生しないのですか?
strVal != nullは、strValインスタンスのメソッドを呼び出しているわけではないから。
たんに、strValが空っぽかどうかをチェックしているだけだから。
ヌルポの例外は、この場合、strValが空っぽなのにメソッドを呼び出そうとした場合に発生するから。
やっぱりいきなりJavaだと参照とかポインタ(あからさまには出てこないけど)の理解があいまいのままになりがちかな。
899 :
デフォルトの名無しさん :04/01/05 22:46
>>897 いま、やってみてるコードだと文字が入力されていてもそのままparseIntして
Exceptionを発生させ、finallyで
if(exception != null) {
もう一度このメソッドを処理しなおす。
}
ってな具合なんですが、これでもOKでしょうか?
当然、Buffered〜などで使った変数はクローズしたりnullにしたりしています。
いや、そもそも自分自身のメソッドから自分自身のメソッドを呼び出すことって可能なんでしょうか?
>>899 どのへんを詳しく聞きたいのか、あなたが言ってくれないと、
なにを説明してあげたらいいのか、わからないよ。
コレクションクラスなどにおける、
インターフェイスや抽象的なクラスを駆使して、
実体的なクラスをあつかう方法について聞きたいの?
それとも、コレクションについて聞きたいの?
もう少し詳しくと言われても、その質問内容では
>>895 が言うように、ちょっと漠然としすぎだよ。
int foo; while(true){ try{ foo = Integer.parseInt(reader.readLine()); break; }catch(NumberFormatException e){ continue; } } とかだろ
>>901 もちろん自分自身のメソッドから、自分自身の別のメソッドを呼び出すことも可能だし、
自分自身のメソッドから、自分自身のおなじメソッドを呼び出すことも可能だ。
後者は「再帰」と呼ばれる。あまり再帰させすぎると、メモリ不足などを引き起こすが。
905 :
デフォルトの名無しさん :04/01/05 23:11
質問です。 あるVM上で走っているJavaプログラムののメソッドトレースができるような ツールってご存じないですか。 Eclipseのデバッガようにステップ実行するのではなくて、 標準出力などにテキストで出力されるようなツールを探しております。 是非ともご教授下さい。 よろしくおねがいします。
>>908 Java2 SDK。
jpda、リモートデバッグあたりをキーにぐぐれ。
>910 AspectJでトレースするってのはどう?
なんか自分で聞いてても馬鹿みたいなんだが String str; str = "なんか文字列"; ってしたとき、エディタで編集したときには「なんか文字列」はShift JISだったとして strはShift JISなんでしょうか?UTF-8なんでしょうか?
>>912 おおざっぱにいうと、UNICODE(UCS-2)。
>>912 > ってしたとき、エディタで編集したときには「なんか文字列」はShift JISだったとして
ソースファイルが SJIS だろうが何だろうが、
コンパイル時に "なんか文字列" と書かれた部分はユニコードに変換される。
ちなみに、コンパイル時に -encode で正しいエンコーディングを選ばなければ文字化けする可能性もある。