【初心者】Java質問・相談スレッド112【大歓迎】
at TECH
[前50を表示]
450:デフォルトの名無しさん
08/02/18 14:31:02
>>446
重ねてJ2SE1.5(5.0)以降ならジェネリクスをお勧めします。
ついでに autoboxing も機能するので更に見やすくなります。
> map.put(new Integer(dif.replay[i]), change_sm);
key が Integer, value が String。そりゃ key でキャストエラーになります。
以下蛇足。
・変数は使う直前で宣言すること。
・元が int型なら Integer だけにしておけば良いのに。
・初期化、比較、更新があるなら while ではなく for を使うように。
・ついでに初期化部で int i = 0; で宣言すること。(添え字の使いまわしは厳禁)
451:デフォルトの名無しさん
08/02/18 14:36:27
みなさんありがとうございます!
ジェネリスクも試してみようと思います><
452:デフォルトの名無しさん
08/02/18 14:37:10
>>443
set | find "TZ"
結果はカラ?
453:443
08/02/18 14:45:46
>>452
レスありがとうございます。
TZ=JST
とでます。
454:デフォルトの名無しさん
08/02/18 15:37:48
ネイティブインターフェイスの使い方を教えてください
455:デフォルトの名無しさん
08/02/18 15:42:34
>ネイティブインターフェイス
JNIのこと?
456:デフォルトの名無しさん
08/02/18 15:55:04
はい
457:デフォルトの名無しさん
08/02/18 15:59:29
>>454
これでも読んどけ
URLリンク(java.sun.com)
458:デフォルトの名無しさん
08/02/18 16:05:55
dllの作り方教えてください
459:デフォルトの名無しさん
08/02/18 16:10:42
それはJavaじゃないよ
460:デフォルトの名無しさん
08/02/18 16:11:22
わからない問題があったので教えてください
public class Test extends Thread{
private int i, j;
public synchronized void run(){
for(int count = 0; count < 2; count++){
i++; j++;
System.out.print("i=" + i + " : j=" + j + " ");
}
}
public static void main(String[] args){
new Test().start();
new Test().start();
}
}
A. i=1:j=1 i=1:j=1 i=2:j=2 i=2:j=2
B. i=1:j=1 i=2:j=2 i=1:j=1 i=2:j=2
C. iとjの値は出力されるが表示順は一意ではない
Testクラスは二つでき、runメソッドはそれぞれで動くため
AにもBにもなりえる(実際は何回やってもBになるが)と思ってCにしたんですけど答えはBでした
Aにはならないんでしょうか?
解説には「run()メソッドをsynchronized指定しているためrun()メソッド実行中は
他に制御が移ることなく処理されます」とあります
461:デフォルトの名無しさん
08/02/18 16:20:05
答はCであってます。
printの後ろに、
try { Thread.sleep(1000); } catch (InterruptedException e) {}
を追加して実行してみてください。
462:デフォルトの名無しさん
08/02/18 16:29:21
たぶんスレッドでの(i=1:j=1 i=2:j=2)の組の出力は保証されるということなのだろうけど、
どっちのスレッドかわからんよな、これ。
Aは間違い。でも、結果的に出力は必ずBになるなw
463:デフォルトの名無しさん
08/02/18 16:31:40
えー、保証すらされないだろ
464:デフォルトの名無しさん
08/02/18 16:33:05
>>461-462
ありがとうございます
安心しました
465:デフォルトの名無しさん
08/02/18 16:51:26
フルパスからファイル名を取り出す関数とかあれば
教えてください。
WinAPIのGetFullPathName()のようなやつがあれば・・・
466:デフォルトの名無しさん
08/02/18 16:53:02
File#getName()
467:デフォルトの名無しさん
08/02/18 16:54:52
>>466
快速的回答謝謝。
468:デフォルトの名無しさん
08/02/18 16:58:18
wikiのリンク切れてる・・・
だれか原因わかる人います?
469:デフォルトの名無しさん
08/02/18 17:05:24
リンク切れてるっつーか、ホスティングしてる wikiroom が
最近落ちまくり & ほったらかし & メール送っても無応答状態らしい。
470:デフォルトの名無しさん
08/02/18 17:07:32
>>469レスサンクス!
まじか…javacの設定方法探そうと思ったのに…
471:デフォルトの名無しさん
08/02/18 18:15:45
lass Test {
int m;
int n;
Test(int i,int j) {
m=i;
n=j;
}
Test(Test testC) {
m= testC.m;
n= testC.n;
}
int sum(int i,int j){
return m + n + i + j;
}
}
public class sample38{
public static void main(String[] args);
Test test = new Test(10, 5);
test.m++;
test.n++;
Test test2 = new Test(test);
System.out.println(test2.sum(2, 3));
}
}
このプログラムの中の
Test(Test testC) {
m= testC.m;
n= testC.n;
がある意味がよくわかりません。テキストを読んでいてもよく分からないので教えてください。
472:デフォルトの名無しさん
08/02/18 18:20:34
いわゆるコピーコンストラクタってやつ
473:デフォルトの名無しさん
08/02/18 18:25:06
コンストラクタのオーバーロードじゃね
474:デフォルトの名無しさん
08/02/18 18:27:44
Java 的には clone() だな。
475:デフォルトの名無しさん
08/02/18 18:33:51
JNIはどうすんの
476:デフォルトの名無しさん
08/02/18 18:35:42
>>471です。処理はどんな手順で進んでいくのですか?
477:デフォルトの名無しさん
08/02/18 18:58:35
どこまでわかるのか書け
478:デフォルトの名無しさん
08/02/18 19:08:06
オブジェクトはフィールド、メソッド、クラス、を持つとよく聞きますが、実際にオブジェクトを生成する際、フィールド以外の物も新たに作るのでしょうか?
それとも状態を持つのはフィールドだけなのでメモリにはフィールドのみを生成するのでしょうか?
479:デフォルトの名無しさん
08/02/18 19:13:44
フィールドのみと考えていい
480:デフォルトの名無しさん
08/02/18 19:13:48
クラスとメソッドはほぼ一体。最初にクラスを参照したときにメモリ上に現れ static 宣言
されたフィールドとメソッドを持つ。非 static フィールドはインスタンスごとに作成される。
481:デフォルトの名無しさん
08/02/18 19:16:33
>>479,>>480
素早く分かりやすい回答ありがとうございました。
ずっと気になっていたことだったので本当にすっきりしました。
482:デフォルトの名無しさん
08/02/18 19:23:08
>>477
Test test = new Test(10,5);
これを上の
Test(int i,int j) {
m=i;
n=j;
に入れて、つぎにmとnに1を足すまでは分かる。
Test(Test testC) {
m= testC.m;
n= testC.n;
これどんな処理してるん?
483:デフォルトの名無しさん
08/02/18 19:28:09
testCに渡された既存のTestオブジェクトの中身を
新しく作ろうとしてるTestオブジェクトにコピーしてる
484:デフォルトの名無しさん
08/02/18 19:35:35
Javaのコントロールパネルの出し方教えてくれ
どこにもなくて困ってる
485:デフォルトの名無しさん
08/02/18 19:36:35
test
486:デフォルトの名無しさん
08/02/18 19:37:48
どういうときにコピーコンストラクタは使うの?
487:デフォルトの名無しさん
08/02/18 20:09:37
オブジェクトをコピーしたいとき
488:デフォルトの名無しさん
08/02/18 20:14:13
必要なクラスやライブラリが増えるとクラスパスの設定が面倒になりますが、
自分が書いたソースのクラスファイルを格納してるフォルダに全て突っ込んじゃえばいいと思うんですが、
この考え方は間違ってますか?
例えばDBのJDBCドライバを使うにはCLASSPASSに追加するかtomcatのcommon/binに入れたりするけど
前者の場合、無関係なプログラムにも影響を及ぼすし、後者の場合はコンテナを変えたらまた作業が増える。
自分が作ってるサーブレットのクラスファイルを保存してる場所にJDBCドライバを入れちゃえば全て解決な気がする。
489:デフォルトの名無しさん
08/02/18 20:23:03
Javaのアルゴリズム本はどれがオススメですか?
490:デフォルトの名無しさん
08/02/18 21:36:42
>488
間違ってる
クラスが増えれば増えるほどクラスパスの設定の方が、クラスの競合とかの考慮より楽になる
そんなことよりIDE使っているなら面倒な作業にはならんだろ
491:デフォルトの名無しさん
08/02/18 21:41:45
プリミティブ型も実はクラスある?
判別のために例外的に形だけあるってことかな
int.classやらがあって驚いたわ。
492:デフォルトの名無しさん
08/02/18 21:47:16
Integer.TYPE
493:デフォルトの名無しさん
08/02/18 23:14:44
bolean b;
b=true;
?ここを教えてください。
(b==false)が新になる。
bolean b;
b=false;
?ここを教えてください。
(b==true)が新になる。
494:デフォルトの名無しさん
08/02/18 23:17:06
b=!b;
495:デフォルトの名無しさん
08/02/18 23:24:17
boolean
496:デフォルトの名無しさん
08/02/19 03:06:22
>>491
プリミティブ型はあくまでプリミティブ型で、そのクラスといったものはない。
あるのは、プリミティブ型を表すClassクラスのインスタンスで、各ラッパークラスで定義されている。
例えば、リフレクションAPIでメソッドの引数の型を指定する時などに使ったりする。
497:デフォルトの名無しさん
08/02/19 03:18:57
初心者用スレとはいえ質が低過ぎる
答える気すら起きん
498:デフォルトの名無しさん
08/02/19 08:17:12
画像ファイルを手動で振り分ける簡単なソフトを書いた。
表示して、設定してあるフォルダに振り分けるだけの簡単なソフトだ。
とりあえず、予定の作業は出来るようになった。
だが、アニメーションGIFの再生がおかしいことに気づいた。
「透過色」というのが上手く扱えていないようだ。
Toolkit.getDefaultToolkit().getImage("hoge.gif");で入手したImageを
JPanelから導出したクラスのpaint(Graphics g)でdrawImageにかけているだけなのだが、
何か足りないようだ。
足りない部分は簡単に補える?
それとも、意外に面倒?
499:デフォルトの名無しさん
08/02/19 08:29:49
ペイントコンポーネンツ
500:デフォルトの名無しさん
08/02/19 12:26:35
JSFの使い方を教えてください
501:デフォルトの名無しさん
08/02/19 13:44:08
>>500
Wikipedia項目リンク(%E6%88%A6%E9%97%98%E6%A9%9F)
502:デフォルトの名無しさん
08/02/19 15:50:00
すみませんが、質問です。
クラス継承についてですが、親クラス、子クラスに共通して、同名のパブリッ
クなインスタンス変数があり、その初期値は親と子で違うとします。
子クラスのインスタンスを作り、それを親クラスの型の変数に代入した場合、
その変数のインスタンス変数には、親の価が入っています。
public class Parent {
public String hoge = "親";
}
public class Child extends Parent {
public String hoge = "子";
}
Parent x = new Child();
System.out.println(x.hoge); // => 親
System.out.println((new Child()).hoge); // => 子
要するに、パブリックなインスタンス変数は、子によってオーバライドできな
いのです。メソッドと違って。
どうしてこれは、こういう言語仕様になっているのでしょうか?
メソッドのようにオーバライドできてもいいと私は思うのですが。
503:デフォルトの名無しさん
08/02/19 16:18:57
どうしてだろう・・・
Parent[] xArray = { new Child01(), new Child02(), new Child03()}
for( Parent x : xArray ) System.out.println(x.hoge);
みたいに同じ変数名にアクセスして子独自の値が取れたら便利そうだよね。
504:デフォルトの名無しさん
08/02/19 16:21:48
実装は面倒だし(というか汚くなる)、効率の問題もある。
何より、変数をそんなに便利(に見える)にしてしまったら、
マルチスレッドとか大変になる。
オブジェクト指向の原則も何もあったもんじゃなくなるだろうが。
505:デフォルトの名無しさん
08/02/19 16:24:14
>>502
子の方に新しいhogeを定義しなきゃいいんじゃ?
public class Parent {
public String hoge = "親";
}
public class Child extends Parent {
public Child(){ hoge ="子"; }
}
Parent x = new Child();
System.out.println(x.hoge); // => 子
506:デフォルトの名無しさん
08/02/19 16:24:37
フィールドの隠蔽は普通に出来てるんだから面倒も効率も関係ないだろ。
507:デフォルトの名無しさん
08/02/19 16:25:24
Javaはフィールドは静的解決だからだろ
以上
508:デフォルトの名無しさん
08/02/19 16:28:02
>>502
言語規定には、「フィールドアクセスのために動的に表検索する必要がないので
Javaは素直な実装でも効率が良い。遅延束縛と上書きはインスタンスメソッドが
使用されるときだけJavaで利用可能となる。」とある。
URLリンク(www.y-adagio.com)
509:デフォルトの名無しさん
08/02/19 16:29:50
付いていけん
馬鹿にも分かるように誰か説明してくれよ
510:デフォルトの名無しさん
08/02/19 16:31:04
フィールドは静的に(つまりコンパイル時に)解決できるから効率いいよね、ってこと。
>>506は何か勘違いしているから無視してOK
511:デフォルトの名無しさん
08/02/19 16:32:28
スレッドとか関係ねーじゃん。
512:デフォルトの名無しさん
08/02/19 16:34:33
フィールドアクセスにはsynchronizedで制限かけられないだろーが
513:デフォルトの名無しさん
08/02/19 16:36:19
つまり静的解決にすれば効率いいけど柔軟性に欠ける
動的にすれば柔軟性は上がるが実行時の効率が落ちる
そこでバランス取ってメソッドだけ動的にしたってこと?
514:デフォルトの名無しさん
08/02/19 16:37:23
フィールドを動的解決するとどんないいことがあるのか例を教えてくれ
515:デフォルトの名無しさん
08/02/19 16:38:39
まともな人と、ちょっと鈍い人と、どうしようもない馬鹿がいるっぽい
516:デフォルトの名無しさん
08/02/19 16:38:57
>>514
答:全部メソッドでできるので不要
517:デフォルトの名無しさん
08/02/19 16:40:31
何か主張があるようだが強烈な表現力のなさで何を言いたいのかさっぱりわからん。
「フィールドアクセス」 は行為であって主体じゃないから synchronized でモニタ取れるわけないだろ。
this かそれに順ずるインスタンスに synchronized かけろよ。
518:デフォルトの名無しさん
08/02/19 16:44:34
Hoge hoge = new Piyo();
synchronized (hoge) {
hoge.x = "";
}
いちいちクライアントサイドでこんなことしたく無いだろ?ってことが言いたかったんだが
519:デフォルトの名無しさん
08/02/19 16:47:53
>>518
それ hoge.x が Piyo のフィールドかスーパークラスのフィールドかは全く関係なくね? って事。
synchronized(hoge.x) とした時にどっちのモニター取ってるか分からなくなるというならともかく。
520:デフォルトの名無しさん
08/02/19 16:50:39
>>514
悪いことの方は、以下の場合コンパイルエラーを出さないといけなくなる。
class S { int x = 0; int z() { return x; } }
class T extends S { String x = "1"; }
521:デフォルトの名無しさん
08/02/19 16:52:26
それは関係ないけど、フィールドアクセスが動的だと、
何も考えずに使ってしまうようなやつが絶対いるだろ?
で、518のように書くやつなんているのか、と考えたときに、
いないだろうな、と。
522:デフォルトの名無しさん
08/02/19 16:58:11
フィールドがサブクラスから書き換えられないのって
単純に、フィールドはなるべく隠蔽されるべきって考え方からだと思ってたけど違うの?
523:デフォルトの名無しさん
08/02/19 17:00:49
書き換えられるよ、finalとかprivateじゃなければ
524:デフォルトの名無しさん
08/02/19 17:02:02
書き換えってオーバーライドのことね
525:デフォルトの名無しさん
08/02/19 17:04:11
親のフィールドをそのまま継承してるだけと、オーバーライドするのと、どう違うのか説明すれ
526:デフォルトの名無しさん
08/02/19 17:10:17
>>522
それは新しい話題? カプセル化の話?
上書き(override, オーバーライド)は動的処理。
仮にフィールドの動的処理が可能なら、カプセル化は簡単に崩壊する。
// メソッドを上書きせずに、フィールドだけ上書きすればよい。
527:デフォルトの名無しさん
08/02/19 17:13:37
privateメソッドがオーバーライドできないのと同じように、
privateフィールドもオーバーライドできなければ、別にカプセル化は壊れない
オーバーライドしたいのはprotectedとかpublicだけだろ?
隠蔽だかカプセル化だかとは別問題かと
528:デフォルトの名無しさん
08/02/19 17:24:14
誰が正しいことを言ってるのかカオスだわ。と言いつつ私は526だったり。
言語規定を貼る作業に戻りますm(_ _)m
529:デフォルトの名無しさん
08/02/19 17:32:47
さっぱりわからん
誰かねんどろいどに例えてくれ
530:デフォルトの名無しさん
08/02/19 17:34:36
状況が逆なら逆で適当に自分流の解釈始めるだけだから、
決めの問題的な話題なんてどうでも良いんじゃないのか。
531:502
08/02/19 18:38:57
どうやら収束したようなので、お礼を言わせていただきます。皆さん、ありが
とうございました。
意外に思うかもしれませんが、自分は最初の質問以外、一件も書き込んでいま
せん。自分の分からない点は全部、他の人がツッコんでくれました。このスレ
は時々利用させていただいてますが、こんなのは初めてです。
レスの全部が理解できたとは言えませんが、大変勉強になりました。
532:デフォルトの名無しさん
08/02/19 19:06:45
>>486
Javaによるアルゴリズム事典
おすすめ
533:デフォルトの名無しさん
08/02/19 21:35:53
開発ではeclipse使ってるんですが、
わざわざeclipse立ち上げるまでもないちょっとしたファイルを作ったり編集したりするためのエディタが欲しいです。
具体的には、html、java、jsp、ビルドxml、単なるテキスト文…こういったファイルを編集します。
メモ帳ではあまりにも使いづらいので他を探してるのですがオススメのものは無いでしょうか
534:デフォルトの名無しさん
08/02/19 21:53:56
豊丸
535:デフォルトの名無しさん
08/02/19 22:00:01
サクラエディタ
536:デフォルトの名無しさん
08/02/19 22:14:30
>>533
eclipseを立ち上げっぱなしにしておけばいいのでは?
537:デフォルトの名無しさん
08/02/19 22:14:58
vim だな。
538:デフォルトの名無しさん
08/02/19 22:33:13
Mule。
馴れれば結構使える(と思う)けど馴れるまでが大変(だろうな)
539:デフォルトの名無しさん
08/02/19 22:34:12
eclipseのエディタ機能だけ使うことが出来る?
わざわざプロジェクトとか作らないで
540:デフォルトの名無しさん
08/02/19 22:38:44
>>538
× Mule
○ Meadow
541:デフォルトの名無しさん
08/02/19 22:40:44
viとかvimって極度に嫌ってる人がいるよね
史上最悪のエディタだとか
542:デフォルトの名無しさん
08/02/19 22:42:03
んなこと言ってる時点で Sun の Java 使う資格はない。
543:デフォルトの名無しさん
08/02/19 22:42:55
史上最悪のコードというのなら分かるが
エディタとしては中毒性が高い。
544:デフォルトの名無しさん
08/02/19 23:08:38
viとvimって何が違うの?
545:デフォルトの名無しさん
08/02/19 23:13:26
機能差が歴然。
546:デフォルトの名無しさん
08/02/19 23:22:55
eclipseの補完機能が優秀過ぎるから他のどのエディタ使っても物足りなく感じる
547:デフォルトの名無しさん
08/02/19 23:29:55
お尋ねします。
SortedSetを使い、ソートさせ、表示にはtoStingを使っているのですが、"[""]"の表示が出てしまいます。このカッコを表示させない方法はありますか?
もしくは、違った方法でソートの結果を出力させられるのでしょうか?
教えていただける方、よろしくお願いします。
548:デフォルトの名無しさん
08/02/19 23:32:43
set.toString().substring(1, set.toString().length() - 1)
549:デフォルトの名無しさん
08/02/19 23:44:12
>>548さん、早速ありがとうございます。
最後にもう1つだけ質問ですが、2つの結果を出す際に、1つ目の結果と2つ目の結果の間の","を消す方法はあるのでしょうか?
たびたび申し訳ありませんがよろしくお願いします。
550:デフォルトの名無しさん
08/02/19 23:45:14
set.toString().substring(1, set.toString().length() - 1).replaceFirst(",", "")
551:デフォルトの名無しさん
08/02/20 01:52:59
>>539
Remote System Explorerプラグイン入れれば、ローカルや、Telnet、FTP、SSH経由で
ファイルシステムにアクセスできる。
>>547
toStringはデバッグ出力などで使うものであって、
特定の書式にしたいのなら、自力で出力すべき。
552:539
08/02/20 12:32:29
>>551
ありがとうございます!まさに探してた機能でした。
553:デフォルトの名無しさん
08/02/20 13:12:04
tomcatの起動について質問です。
現在linuxにtomcatを入れて開発を行っているのですが自動起動に失敗してしまいます。OS起動後に直接起動スクリプトを実行すると正常に起動します。
環境とバージョン
CentOS5.1 32bit/jdk6/tomcat6
ログには以下のような出力があります。
文字制限に引っかかるため一部省略します。
--
2008/02/20 11:47:00 org.apache.catalina.connector.Connector pause
致命的: プロトコルハンドラの一時停止に失敗しました
java.net.SocketException: Network is unreachable
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:519)
at java.net.Socket.connect(Socket.java:469)
at java.net.Socket.<init>(Socket.java:366)
at java.net.Socket.<init>(Socket.java:209)
at org.apache.jk.common.ChannelSocket.unLockSocket(ChannelSocket.java:486)
at org.apache.jk.common.ChannelSocket.pause(ChannelSocket.java:283)
at org.apache.jk.server.JkMain.pause(JkMain.java:681)
at org.apache.jk.server.JkCoyoteHandler.pause(JkCoyoteHandler.java:153)
2008/02/20 11:47:01 org.apache.catalina.core.StandardService stop
情報: サービス Catalina を停止します
以下試したこと。
・自動起動を一番最後に持って行った(rc3.d/S99tomcat)
・F/Wの自動起動を停止
どなたか解決策をご存じの方がいたら教えてください。
554:デフォルトの名無しさん
08/02/20 13:14:38
eth0 起動してんのかよ。
555:デフォルトの名無しさん
08/02/20 13:31:36
>>554
eth0にグローバル、eth1にローカルを設定しています。
また、iptablesにてグローバルは25番のみIN/OUTを許可、ローカルは全て許可に設定しています。
iptablesの自動起動も止めてみたのですが、解決しませんでした。
556:デフォルトの名無しさん
08/02/20 19:00:05
アプレットに関する質問です。
アプレットを使って画像を表示させたいのですが、
アプレットビューアを起動するコマンドを打つと上手く表示されるのですが
html形式のファイルを直接開くと画像が切れて表示されてしまいます。
htmlファイルを直接開いたときに画像が切れないように表示させるには
どうすればいいでしょうか?
よろしくお願いします。
557:553
08/02/20 19:11:40
自己解決しました。
環境変数がちゃんと読めていなかったようです。
558:デフォルトの名無しさん
08/02/20 20:17:04
マイナスをプラスに反転させたいのですがどのように書けばいいのでしょう?
例えば-5を5にしたいです。
どなたかおたすけを・・・
559:デフォルトの名無しさん
08/02/20 20:18:13
x = -x;
560:デフォルトの名無しさん
08/02/20 21:17:13
Javaマルチスレッドで明示的にLockを書ける方法ってあります?
lock();
func();
unlock();
みたいな
561:デフォルトの名無しさん
08/02/20 21:44:07
どうとでも書ける
562:デフォルトの名無しさん
08/02/20 21:45:15
とりあえず計数セマフォ
URLリンク(java.sun.com)
563:デフォルトの名無しさん
08/02/20 21:49:58
>>592
それだ。サンクス
564:デフォルトの名無しさん
08/02/20 22:17:07
>>324
Tが一つのクラスだけだったらスーパークラスは一つだけですよ。
スーパーインターフェースなら妥当でしょうか
565:デフォルトの名無しさん
08/02/20 22:42:05
>>564
superclassとdirect superclassの違いも知らないのか?
566:デフォルトの名無しさん
08/02/20 22:43:08
direct superclass と言いたいだけとちがうか。
567:556
08/02/20 23:10:18
もう一度質問してもいいでしょうか(質問文が悪かった??)
アプレットを作るにはxxx.javaとxxx.htmlという2つのファイルを作りますよね
xxx.javaをコンパイルしてxxx.htmlというファイルに対してAppletviewerの
コマンドを実行してやるとその際に表示されるアプレットは画像が切れずに
キレイに表示されるのですが、xxx.htmlというファイルをクリックして
直接表示しようとすると画像が切れてしまいます。
画像が切れないように表示するためにはどうすればいいのでしょうか?
よろしくお願いします。
568:デフォルトの名無しさん
08/02/20 23:13:13
ソース
569:デフォルトの名無しさん
08/02/20 23:13:40
xxx.htmlでアプレット用に指定している幅と高さが画像を表示するには小さかったってオチ?
570:デフォルトの名無しさん
08/02/21 00:19:41
if(1<=x<=18 & y==0){〜処理
↑見たいな感じで"<="を使いたいんですけどどうしたらいいですか?
571:デフォルトの名無しさん
08/02/21 00:32:13
1 <= x && x <= 18
572:デフォルトの名無しさん
08/02/21 00:32:32
日本語にすると
xは1〜18のいずれかで、かつ
yは0
ってこと?
if( (x >= 1 && x <= 18) && y==0 )
573:デフォルトの名無しさん
08/02/21 01:36:17
>>569
ああ画像が切れるってそういう意味なのか。
574:デフォルトの名無しさん
08/02/21 10:26:40
質問です。
HashMap<Integer,String>[] map = new HashMap<Integer,String>[3];
という配列を作ろうとしたときに、コンパイルしようとしたら
汎用配列を作成します。
というエラーが出てしまいます。調べてみてもさっぱり理解できません。
よろしければご教授お願いします。
575:デフォルトの名無しさん
08/02/21 10:39:29
>>574
ジェネリクスはコンパイル時のチェック機能。
コンパイルした後は HashMap という型情報しか存在しない。
よって、その型の配列が作成される。
576:デフォルトの名無しさん
08/02/21 11:48:49
つ ArrayList<HasMap<Integer, String>>
577:デフォルトの名無しさん
08/02/21 15:47:43
tomcat5のJDBCレルム機構に対して、サーブレット内からプログラマが任意のタイミングでユーザ認証を済ませる方法を探しています。
contextA/auth/AuthServlet
contextA/noauth/NoAuthServlet
web.xmlで/auth/*を認証ゾーンとして指定。
NoAuthServlet内から、プログラマーが自前でユーザIDとパスワードを使って/auth/*ゾーンの認証を済ませたいのですが
どうすればできるでしょうか?
認証を済ませる=HttpServletRequest#getUserPrincipal() != nullという意味です。
578:デフォルトの名無しさん
08/02/21 16:00:26
質問です。
初心者丸出しの質問ですみません。
同じパッケージ内のクラスを使うにはどうしたらいいのでしょうか?
よろしければご教授お願いします。
579:デフォルトの名無しさん
08/02/21 16:15:59
>>578
それらのパッケージ名とクラス名は何でしょう?
それと、何を何処までやって出来なかったのか。
580:デフォルトの名無しさん
08/02/21 16:37:00
>>578
ところでマルチポストって知ってる?
581:デフォルトの名無しさん
08/02/21 17:15:41
質問です。
正三角形の中点を中心に1回転させるにはどうすればいいですか?
マルチスレッドとアフィン変換を利用して回転させたいんですが、角度を細くするほど誤差?で変形してしまいます。今のとこ30゜ぐらいが限界です!
下手文ですみません
582:デフォルトの名無しさん
08/02/21 18:03:50
独学でjavaを勉強してるのですが、データベースとの連携の手段が色々あり過ぎてどれを使えばいいのか分かりません。
JDBC、EJB、Hibernate、これらはどういう関係にあるんでしょうか?
例えばEJBを実装すればJDBCやHibernateは要らないのでしょうか?
自分が調べた限りでは、
実際の開発ではEJBが普通だが、小規模な開発ではHibernateを使い、もっと単純なものならJDBCで済ます
って印象なんですがこんな感じで当たってますか?
583:デフォルトの名無しさん
08/02/21 18:07:28
当たってね
584:デフォルトの名無しさん
08/02/21 18:26:46
abstract class Test {
abstract void calc(int i);
void printNum(int i) {
System.out.println(i);
}
}
class ExTest extends Test {
void calc(int i) {
int j=i*i;
printNum(j);
class ExTest2 extends Test {
void calc(int i) {
int j=i+i;
printNum(j);
public class sample46x {
public static void main(String[] args) {
int i =5;
int j;
Test[] ex_test = new Test[2];
ex_test[0]=new ExTest();
ex_test[1]=new ExTest2();
for(j=0; j<2; j++);
ex_test[j].calc(i);
これなんですけどコンパイルはできるんですけど、実行するとこんなの出ます。
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
at sample46x.main(sample46x.java:28)
どこが原因なんでしょうか?
585:デフォルトの名無しさん
08/02/21 18:36:37
}は省略してあります
586:デフォルトの名無しさん
08/02/21 18:38:24
>>584
>for(j=0; j<2; j++);
これだな
587:デフォルトの名無しさん
08/02/21 18:51:20
ありがと!気づかなかった!集中せねば!!!
渇っ!
588:デフォルトの名無しさん
08/02/21 19:23:00
EJBから同じホスト内のbatをたたきたいんですが、
どういう方法があるでしょうか。
589:デフォルトの名無しさん
08/02/21 19:24:44
RMIの使い方について詳しく教えてください
590:デフォルトの名無しさん
08/02/21 19:30:03
>>588
java.lang.Runtime#exec
>>589
URLリンク(java.sun.com)
591:デフォルトの名無しさん
08/02/21 19:33:26
>>590
Runtime#execはEJBからは使えないはず
592:デフォルトの名無しさん
08/02/21 19:40:43
>591
なんで?使えるよ、ふつーに
593:デフォルトの名無しさん
08/02/21 20:52:38
>>582
DB関連のAPIが林立しているのは、APIの進化変遷の跡。
最初から使い分けを意図して作られた物じゃない。
初期のEJBは詰め込みすぎで設計がクソで生産性が低いので、
小さくない規模の開発でも、Hibernateなどの他のマッピングフレームワークは使ってたよ。
594:デフォルトの名無しさん
08/02/21 21:38:57
質問させてください。
FileInputStream fis = new FileInputStream(file);
FileChannel srcChannel = fis.getChannel();
// 一つのデータは 2 byte (16 bit)
ByteBuffer buffer = ByteBuffer.allocateDirect(length * 16);
buffer.order(ByteOrder.LITTLE_ENDIAN);
// 読み込み
srcChannel.read(buffer);
srcChannel.close();
fis.close();
buffer.clear();
int ch1, ch2;
for(int i = 0; i < 1000; i++){
ch1 = buffer.get() & 0xff;
ch2 = buffer.get() & 0xff;
data[i] = (ch1 | (ch2 << 8)) & 0xffff;
}
buffer.clear();
int[] data という配列に
バイナリファイル中の符号なし short を読み込みたいのですが、
getShort() をつかったら、符号ありで読まれてしまったので、上のようなコード
でやっています。
処理が遅い(無駄計算が多い)気がするのですが、もっと良い方法はありますでしょうか
595:デフォルトの名無しさん
08/02/21 22:10:42
"แอมเพอร์แซนด์"
上記のような文字列が部分的に含まれているファイルを
SQLに入れる作業をしているのですが、
これを読み込むとunrecognized tokenエラーが出ます
このような文字の扱いはどのようにすればよいでしょうか
596:デフォルトの名無しさん
08/02/21 22:12:11
>>594
data[i] = buffer.getShort() & 0xffff
でダメかね?
597:デフォルトの名無しさん
08/02/21 22:33:16
>>595
ファイル読み込むときのエンコーディング正しく指定してる?
598:デフォルトの名無しさん
08/02/21 22:33:39
JAVAとC#どっちがリバースエンジニアリングに強い?
どっちも変わらない?
599:デフォルトの名無しさん
08/02/21 22:46:14
そんな高度なことできるやつがそんな質問するとは思えないのだが
600:デフォルトの名無しさん
08/02/21 22:47:40
強いってのはやりやすいって意味か?
それともやられにくいって意味か?
基本的にJavaはネイティブにしない限りソースへ復元は簡単な方
C#はどんだけネイティブ系使っているか次第
601:デフォルトの名無しさん
08/02/21 22:53:41
逆コンパイルはどっちも超簡単でほぼ完璧だよ
602:582
08/02/21 23:00:01
>>593
ありがとうございます。
色んなベンダから別々に色んな技術が生まれてカオスな状態という感じでしょうか
デフォになってるものも無いようなので自分で色々試してみます。
603:594
08/02/21 23:02:25
>>596
ああ、なるほどー。と思って実装してみたら、逆に少し遅くなりました。(データは正しく読めてました)
以下のようなコードを書いてベンチマークしても、やっぱり遅くなってましたorz
public class ReadTest {
public static final int length = 3800 * 2600;
public static int[] data = new int[length];
public static ByteBuffer buffer;
public static void main(String[] args){
try{
buffer = ByteBuffer.allocateDirect(length * 16);
buffer.order(ByteOrder.LITTLE_ENDIAN);
for(int i = 0; i < 20; i++){ read1(); read2(); read2(); read1(); System.out.print(".");}
long t = System.currentTimeMillis();
for(int i = 0; i < 10; i++){ read1(); }
System.out.println("\r\n" + (System.currentTimeMillis() - t) + " ms");
t = System.currentTimeMillis();
for(int i = 0; i < 10; i++){ read2(); }
System.out.println((System.currentTimeMillis() - t) + " ms");
} catch (Exception e){}
}
public static void read1() throws Exception{
FileInputStream fis = new FileInputStream(new File("hoge"));
FileChannel srcChannel = fis.getChannel();
for(int i = 0; i < 4; i++) fis.read(); // ヘッダ
buffer.rewind();
srcChannel.read(buffer); srcChannel.close(); fis.close(); // 読み込み
buffer.clear();
for(int i = 0; i < length; i++){ data[i++] = buffer.getShort() & 0xffff;}
}
/* read2 は読み込み部分が古いほう(省略) */
うーん、不思議ですねえ。 getShort() は遅いんでしょうか。。。
でかい画像を大量に処理していて、読み込みが25%くらい閉めているので、短くしたい・・
604:594
08/02/21 23:04:31
最終行の data[i++] は data[i] のミスです
605:デフォルトの名無しさん
08/02/21 23:05:21
>>600
やられにくいって意味でとらえてください
>>601
そうですか、使いやすくて良い言語だけど自分が作ったソフトが逆コンパイル
されるのは困るな
企業で開発するときは何か対策しているのでしょうか?
606:デフォルトの名無しさん
08/02/21 23:17:50
なんで困るんだ?
607:デフォルトの名無しさん
08/02/21 23:28:14
>>597
ありがとうございます
UTF-8で読み込んでいます
System.out.println("แอมเพอร์แซนด์");
これでエラーになるのはなんででしょうか
608:デフォルトの名無しさん
08/02/21 23:29:10
แอมเพอร์แซนด に一致する情報は見つかりませんでした。
609:デフォルトの名無しさん
08/02/21 23:57:00
こんばんは。
CDを管理するプログラムを作っているのですが、mainクラスとCDクラスがあります。
管理する数は、5つでその分のCDインスタンスをつくり、価格と名前のを入力しコレクションで管理すると言うプログラムです。(重複可で名前でソートさせます)
このプログラムを作ってみたのですが、Collections.sort(list);としたのですが、下線のびっくりマークのエラーが出てしまいます。
内容は、『型の安全性:型Collectionの総称メソッドsort(List<T>の未検査の呼び出しsort(List)がありました』と表示されてしまいます。
このようなエラー表示にはどのような対処をしたら良いのでしょうか?
アドバイスお願いします。
610:デフォルトの名無しさん
08/02/21 23:59:26
>>609
-source 1.4
をコンパイルオプションに付ける
611:デフォルトの名無しさん
08/02/22 00:01:32
ああ、IDE使ってるのか
JDKレベルを1.4にする
612:デフォルトの名無しさん
08/02/22 00:06:39
>>609です。
Eclipse 3.1を使ってます。5.0から1.4にするという感じでよいのでしょうか?
コンパイルオプションの変え方がわからないので調べてみます。
613:デフォルトの名無しさん
08/02/22 00:42:51
>>612
JDK5以降で言語仕様に入れられたジェネリクスというものに関わるエラー。
「java ジェネリクス」で調べてみて。
eclipseならリファクタリング機能の中に、
ジェネリクスを使用していないソースを使用するように変更してくれる機能もあるけど、
とりあえず、ジェネリクスを理解してからにしたほうがいい。
614:デフォルトの名無しさん
08/02/22 00:45:18
>>612です。
アドバイス、ありがとうございます。
ひとまず、1.4に変更したところちゃんと動作しました。ジェネリクスの勉強もしてみます。
615:デフォルトの名無しさん
08/02/22 01:30:47
java覚えて女性関係のメリットになったことってありますか?
真剣な質問です
また、女性関係に強い言語は何でしょうか?
616:デフォルトの名無しさん
08/02/22 02:04:39
つまんね
他でやれ
617:デフォルトの名無しさん
08/02/22 03:18:36
Javaの勉強をしている初心者なのですが
今コードを書くためのエディタを探しています。
よいエディタを紹介していただけませんか?
618:デフォルトの名無しさん
08/02/22 05:53:51
vivi
619:デフォルトの名無しさん
08/02/22 09:05:49
>>605
Javaと.NETどちらとも、逆コンパイラはある。
どっちも中間言語を使うタイプなので、逆コンパイラを作りやすいらしい。
そしてその対策として、obfuscator(難読化ツール)がどちらにもある。
単に、シンボル名(クラス名、メソッド名、変数名)をランダムな文字列に
置き換えて、逆コンパイラが出力したソースを読みにくくする、
ってだけだけど。
620:デフォルトの名無しさん
08/02/22 10:00:34
ジェネリクスについての質問が多いのは
初心者には難しいので入門書の段階では取り扱わないからか
それとも基本1.4で5.0要素は申し訳程度にしか書いてない本が
未だに主流だからか
621:デフォルトの名無しさん
08/02/22 10:21:52
直観的でなくて罠が多いからな
622:デフォルトの名無しさん
08/02/22 11:27:58
URLリンク(www.xlsoft.com)
このソフトを使えばJavaでもネイティブアプリケーションが作れると書いてあるのですが、そんなうまい話があるんですか?
もし本当ならJavaのパフォーマンス面での不利がだいぶ改善されると思うのですが
623:デフォルトの名無しさん
08/02/22 11:38:09
>>620
俺のとこでは依頼される仕事も未だに1.4全盛なんだよなー。他の会社の人に聞いてもそうだという。5.0に移行するのはいつになることやら。。
624:デフォルトの名無しさん
08/02/22 11:43:56
>>622
Javaをネイティブ化したいだけならGCJもあるよ
速くなるとは限らないが
Javaが見た感じ重いのはSwingとかライブラリのせいもあるから…
625:デフォルトの名無しさん
08/02/22 11:48:02
165 名前: 以下、名無しにかわりましてVIPがお送りします。 [sage] 投稿日: 2008/02/22(金) 11:45:46.56 ID:Q0PQrlKw0
お前らに朗報
URLリンク(pc11.2ch.net)
この板の適当なスレに
URLリンク(www.xlsoft.com)
このソフトを使えばJavaでもネイティブアプリケーションが作れると書いてあるのですが、そんなうまい話があるんですか?
もし本当ならJavaのパフォーマンス面での不利がだいぶ改善されると思うのですが
と書き込んだらデブスがデブゲバうpするってよお
626:デフォルトの名無しさん
08/02/22 11:50:08
170 名前:以下、名無しにかわりましてVIPがお送りします。[sage] 投稿日:2008/02/22(金) 11:47:31.63 ID:Q0PQrlKw0
お前らに朗報
URLリンク(pc11.2ch.net)
この板の適当なスレに
URLリンク(www.xlsoft.com)
このソフトを使えばJavaでもネイティブアプリケーションが作れると書いてあるのですが、そんなうまい話があるんですか?
もし本当ならJavaのパフォーマンス面での不利がだいぶ改善されると思うのですが
こう書き込まないとお前らがキーボード打ってる指があさって腐るそうだ
腐って死ぬぞ??
627:デフォルトの名無しさん
08/02/22 12:37:40
ジェネリクスを使うだけなら難しいか?
Foo[] と ArrayList<Foo> が初心者的には理解しやすくなると思うんだけど
単なる入門書の怠慢だと思う
628:デフォルトの名無しさん
08/02/22 14:03:27
始めるんだけど、どの本がオススメですか?
629:デフォルトの名無しさん
08/02/22 15:01:06
初心者で失礼します。どう修正していいかわかりません。宜しくお願いします。
import java.util.Scanner;
public class tes
{
public static void main(String[] args)
{
char stuname;
Scanner kb = new Scanner(System.in);
stuname = getStuN("Please enter the student name: ", kb);
}
//get studnt name
public static char getStuN(String str, Scanner kb)
{
System.out.print(str);
char sname = kb.nextLine();
System.out.print(sname);
return sname;
}
}
---------
tes.java:15: 互換性のない型
検出値 : java.lang.String
期待値 : char
char sname = kb.nextLine();
^
630:デフォルトの名無しさん
08/02/22 15:08:50
>>629
URLリンク(java.sun.com)
nextLine の戻り値型は String です。
よって sname の型宣言を String にして、それ以降の記述を適切に修正してください。
631:デフォルトの名無しさん
08/02/22 15:26:12
>>630
できました! ありがとうございましたm(_ _)m
632:デフォルトの名無しさん
08/02/22 15:42:51
625 名前:デフォルトの名無しさん[sage] 投稿日:2008/02/22(金) 11:48:02
165 名前: 以下、名無しにかわりましてVIPがお送りします。 [sage] 投稿日: 2008/02/22(金) 11:45:46.56 ID:Q0PQrlKw0
お前らに朗報
URLリンク(pc11.2ch.net)
この板の適当なスレに
URLリンク(www.xlsoft.com)
このソフトを使えばJavaでもネイティブアプリケーションが作れると書いてあるのですが、そんなうまい話があるんですか?
もし本当ならJavaのパフォーマンス面での不利がだいぶ改善されると思うのですが
と書き込んだらデブスがデブゲバうpするってよお
626 名前:デフォルトの名無しさん[] 投稿日:2008/02/22(金) 11:50:08
170 名前:以下、名無しにかわりましてVIPがお送りします。[sage] 投稿日:2008/02/22(金) 11:47:31.63 ID:Q0PQrlKw0
お前らに朗報
URLリンク(pc11.2ch.net)
この板の適当なスレに
URLリンク(www.xlsoft.com)
このソフトを使えばJavaでもネイティブアプリケーションが作れると書いてあるのですが、そんなうまい話があるんですか?
もし本当ならJavaのパフォーマンス面での不利がだいぶ改善されると思うのですが
こう書き込まないとお前らがキーボード打ってる指があさって腐るそうだ
腐って死ぬぞ??
633:デフォルトの名無しさん
08/02/22 18:03:04
JAVAからpostgresSQLを操作するプログラムを作成しております。
JAVAからpostgresのでーたをバックアップする方法を知りたいのですが、
JDBCを利用して、postgreSQLのpg_dumpを操作する方法はあるのでしょうか。
また、pg_dump以外にも、JDBCにてデータのバックアップを出来る方法があれば、
ご教授お願いいたします。
634:デフォルトの名無しさん
08/02/22 18:19:27
>>633
DatabaseMetaData#getTablesで全テーブルを取得して全行クエリしてファイルに書き出すとか・・・
それですべて復元できるかわからないけど
Runtime#execでpg_dump呼び出す方が簡単な気がする
635:デフォルトの名無しさん
08/02/22 18:33:59
>>634
>DatabaseMetaData#getTablesで全テーブルを取得して全行クエリしてファイルに書き出すとか・・・
それは遅そうだw
>Runtime#execでpg_dump呼び出す方が簡単な気がする
わしもそう思う。
何かの操作が必要だったら、シェルかバッチの中でJavaプログラムで操作したのちに
バックアップを走らせた方が効率が良さそうだが。
636:633
08/02/22 18:44:15
634,635
どうもありがとうございます。
早速、試してみます。
637:デフォルトの名無しさん
08/02/22 19:07:30
今どきJDBCなんて使う必要あるの?
638:デフォルトの名無しさん
08/02/22 21:32:33
教えてください。
環境:Oracle JDBC
PreparedStatementとResultSetを使用し、
SELECTを実行しています。
通常問題ないのですが、バインド変数(?)が11個以上あるSQLを実行した場合、
かつ、レコードのヒット件数が11件以上を超えている場合、
11件目のデータ取得時に「配列の範囲」を超えた、という例外が発生します。
バインド変数はsetStringで1から順に設定し、
設定内容についても問題ないです。
※デバッガで確認済み
SQL自身は問題なく、SQLExceptionが発生しているわけでもありません。
何か回避策はあるのでしょうか?
639:デフォルトの名無しさん
08/02/22 22:03:15
まずスタックトレースを貼れ。その話し振りだと単なるバグの可能性が素敵連
640:デフォルトの名無しさん
08/02/22 22:09:44
Cで言うところの構造体の代わりにクラスを使っています。
内部変数はInt型が2つ、Boolean型が1つの小さなクラスです。
クラスの2次元配列として2000x2000のインスタンスを生成するコードを書いたら
インスタンスを生成する箇所(以下)で
for(int j=0;j<2000;j++){
for(int i=0;i<2000;i++){
box[i][j] = new Box();
}
}
java.lang.OutOfMemoryError: Java heap space
というエラーが出てしまいました。
メモリの使い方が下手なんだと思うのですが、
よい対処法が思いつきません。
何か手はあるでしょうか?
641:デフォルトの名無しさん
08/02/22 22:32:58
>>640
簡単に計算。integer型として。
4byte * 2 * 2000 * 2000 => 32byte * k * k => 32Mbyte
boolean型はどれだけ食うのか分からないが、さらに4-16Mbyte
ということで、先の値を目安にし、ヒープを明示的に確保します。
以下ページから java のページ、-Xmx や -Xms オプションを参照のこと。
URLリンク(java.sun.com)
他の方法もあるとは思いますが、安易な解決法として。
642:デフォルトの名無しさん
08/02/22 23:23:53
>>641
ありがとうございます。
そういうやり方もありそうですが、
もう少しコードの書き方について考えてみます。
643:デフォルトの名無しさん
08/02/22 23:24:12
tomcatは内部でjspをコンパイルするためにjdkを使っていると聞いたのですが
tomcatをインストールする場面ではjdkではなくjreのパスを指定しますよね
その後もtomcatの設定でjdkの場所を教えたつもりは無いのですが
jspをちゃんとコンパイルしてくれてるみたいです。
tomcatはどうやってjdkを認識してるんでしょうか?
644:デフォルトの名無しさん
08/02/23 00:47:22
>>644
JSPのコンパイル用にIBMのJDK積むようになった。
昔はJDKの指定が必須だった。4までだったっけ?
645:643
08/02/23 00:52:46
>>644
なるほど〜そういうことだったんですね。
モヤモヤしてたのがスッキリしました。
ありがとうございました。
646:デフォルトの名無しさん
08/02/23 02:17:56
>>640
Int型というのは存在しない
Booleanの代わりにbooleanを使ったらどうか?
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4260日前に更新/275 KB
担当:undef