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

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
過去ログ、関連スレの一覧や、これからJavaでプログラミングを
始めたいが何をすればいいかわからない人は、下のリンクをクリック。
http://www.wikiroom.com/java/

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

JavaScriptの質問は、ここでは受け付けていません。
Web製作板をご利用ください。http://pc2.2ch.net/hp/

前スレ。
【初心者】Java質問・相談スレ44【大歓迎】
http://pc5.2ch.net/test/read.cgi/tech/1081615776/l50

すべてのクラス (Java 2 プラットフォーム SE v1.4.0)
http://java.sun.com/j2se/1.4/ja/docs/ja/api/index.html
Java (TM) 2 SDK ドキュメント
http://java.sun.com/j2se/1.4/ja/docs/ja/index.html
Java言語規定 第2版 目次
http://www.y-adagio.com/public/standards/tr_javalang2/jTOC.doc.html
2デフォルトの名無しさん:04/05/05 16:02
うんこちんちんまんこ
(´・ω・`)
1だけかよ
5デフォルトの名無しさん:04/05/05 18:07
わからない問題があるので教えて欲しいのですが

public class 3a{

public static void main(String args{}){
String s = "Java";
for(int i = 0;i<s.length();i++){
System.out.println(s.charAt(i));
}
}
このプログラムは各文字を順に取り出して改行しながら縦方向に表示するものだが
for文だけを書き直して各文字を逆順にするよう書き直しなさい。
お願いします
> for(int i = 0;i<s.length();i++){
for(int i = s.length() - 1; 0 <= i; i--){
7デフォルトの名無しさん:04/05/05 18:16
文字列"GPIB-022.70V"から"-022.70"を取り出し、その文字列をDoubleオブジェクトにし
dublle型実数値に変換して数値を表示させるプログラムを完成させるよう空欄を埋めなさい。

public class 3b{

public static void main(String args[]){

String s="GPIB-022.70V",ds;
ds=s.substirng([1]);
Double dd=[2];
double d =[3];
System.out.println(d);
}

}
これもお願いできないでしょうか。すみません・・・空欄は[1]とかです。
8デフォルトの名無しさん:04/05/05 18:17
6さんありがとうございます
>>7
宿題は宿題スレで。

学校の宿題は俺にやらせて下さいver.2.0βfor Java
http://pc5.2ch.net/test/read.cgi/tech/1076054000/l50
10デフォルトの名無しさん:04/05/05 18:37
前から疑問に思っていたのでついでに聞きます。

String s = (Stringを返すメソッド);
for(int i = 0;i<s.length();i++){
System.out.println(s.charAt(i));
}

こういう時って、繰り返すたびに、
String#length()が呼ばれるんですか。
いつも、それが気になって、
String s = (Stringを返すメソッド);
int n=s.length();
for(int i = 0;i<n;i++){
System.out.println(s.charAt(i));
}
みたいに書いてるんですけども。
>>10 ソース読むと
public int length() {
 return count;
}
だからインライン展開を期待したいけどどうなんだろう。
12デフォルトの名無しさん:04/05/05 18:44
>>10
コンパイラがうまいぐあいに処理してくれるよ
1310:04/05/05 18:55
レスありがとうございます。
なるほど、コンパイラがよくできてるんですね。
>>12
sがImmutableであるって言う保証があることを、コンパイラが知っている
ということ?HotSpotやJITがやるならわかるけど、javacがやるのかな?

…試せばイイジャンと思った<俺 orz
これからJAVAについて勉強しようと思い本屋で書籍を探しました
しかし数が少なく入門書というより中級者向けと思われる内容ばかりでした
やはり最初は初心者向けの本を持っていた方が良いでしょうか?
それともネットで調べたりで事足りるものでしょうか?
アドバイスいただけたら幸いです
これからJAVAについて勉強しようと思い本屋で書籍を探しました
しかし数が少なく
入門書というより中級者向けと思われる内容ばかりでした
やはり最初は初心者向けの本を持っていた方が良いでしょうか?
それともネットで調べたりで事足りるものでしょうか?
アドバイスいただけたら幸いです
1715と16:04/05/05 19:04
すみません2重になってしまいました
いや、今言語の入門本では一二を争うほど多いぞ、Javaは。
ちなみに初心者の入門なら、とりあえずネットで学習すれば事足りる。
http://black.sakura.ne.jp/~third/programming/java/java.html このへんでやってみ。
今日下見した店ではあまり数が無かったのですが書籍は沢山出てるのですか
他の店に行って探してみます
21デフォルトの名無しさん:04/05/05 19:18
漏れが初めて買ったJava本は
河西 朝雄著:「Java入門」。
JDK1.1+AWT+アプレットの解説だから
今となっては古くさい面もあるけど、
これでJavaに目覚めますた。
Win/Mac両方で動くのが面白かったなー。
22デフォルトの名無しさん:04/05/05 19:37
JDBCのDataSourceをJNDIでlookupするとき、
チュートリアルではjdbc/から始まる名前が使われてるものと
comp/env/jdbcから始まる名前が使われてるものがあります。
これはどういう違いがあるのでしょうか。
2320:04/05/05 19:38
>>19さん>>21さん
情報ありがとうございます
とりあえずネットだけで頑張ってみて辛くなったら
書籍購入を検討してみます
>>21
いまだに売ってるのは害だけどな。
>>22
なぜなら、名前はなんでもいいからです。
26デフォルトの名無しさん:04/05/05 22:29
配列を引数にもつ関数(多分JAVAでは関数って言わない?)って

public static void function(String str[]){
・・・・
}

こう言う風に書くとエラー出るんだけど間違ってる?
27デフォルトの名無しさん:04/05/05 22:33
どういうエラー内容かによる。
エラー情報うpしる
28デフォルトの名無しさん:04/05/05 22:34
どういうエラー内容かによる。
エラー情報うpしる
29デフォルトの名無しさん:04/05/05 22:35
メソッドっていう。

エラー内容うpしる
27-29は俺です。
連続投稿スマソ

逝ってくる・・・
31デフォルトの名無しさん:04/05/05 22:40
'.class' がありません。
function(str[], a, b);
        ^

')' がありません。
function(str[], a, b);
            ^


こんな感じ
3226:04/05/05 22:41
すみません
メソッド使うときに[]まで書いてました
解決しました
ごめんなさい
>>31
それメソッド宣言してんの? それともメソッド呼び出してんの?
おまけに >>26 とぜんぜん違うし…
>33
32を見ると、その両者での記述を間違えてただけだな。
35デフォルトの名無しさん:04/05/05 23:48
Javaを勉強しようと思い、独習Java 第2版(翔泳社)を購入しました。
そこで二つほどご質問させてください。

それの最初に、環境変数の設定でPathに「;C:\j2sdk1.4.0_01\bin」を挿入し、その後
コマンドプロンプトを開けとあるのですが、コマンドプロンプトを開いても何ら変化がありません。
こういうものなのでしょうか?

もう一つは、その本の10P、一番最初なんですが、メモ帳等で
class Example1 {
public static boid main(String args[]) {
System.out.prontln("This is the output from Example1");
}
}

を打ち込み、Example1.javaというファイルを作り、その後コマンドプロンプトで
ソースファイルを保存したディレクトリに移動し、「javac Example1.java」を実行しろとあるのですが、
エラー: Example1.javaを読み込めません
エラー 1個

と出るのですが、どうすればいいのでしょうか?ソースファイルを保存したディレクトリに移動しろ
というのがよくわかってないのですが・・・。長くてすみませんが、よろしくお願いします。
cd ディレクトリ
37デフォルトの名無しさん:04/05/05 23:54
>>36
ディレクトリに移動しろと言うことでしょうか?
メモ帳で打ち込んだのはDドライブにJavaというフォルダを作ってそこに入れてます。
>>35 メモ帳``等''ってのが怪しいんだけど、本当にメモ帳で
ファイルを作ったのなら、作ったファイルに.txtとかついていそうだ。
cdの使い方を覚えたあとの問題だけどね。
40デフォルトの名無しさん:04/05/06 00:08
>>39
いえ、拡張子は.javaに変更しました。
なぜエラーが出るのかがわかりません。

環境変数の点は問題ないでしょうか?
ソースファイルに移動しろというところでは、コマンドプロンプトで「D:」と打ち、
D:\> という状況にするだけでは不十分なのでしょうか?そもそも根本的に違ってますか?
D:
の次に
cd Java
を入力。
42デフォルトの名無しさん:04/05/06 00:13
>>36
>>38
>>39
>>41

できました!!お手数かけました、ありがとうございます!
まだまだJavaもコマンドプロンプト自体も初心者ですが、がんばっていきます。
本当にありがとうございました!
全然本筋とは関係ないが・・・ 35以降の流れを見ると・・・

MS-DOSが当たり前だった時代からパソコンやってる人にとっては
当然だった事が、Windowsが当たり前の時代になってからパソコン
始めた人には全然常識でないということをしみじみと感じる。

どっちが幸せなんだろうか。GUIしか知らない人が言語開発ツールを
作るようになったら雰囲気も変わってくるんだろうけどな。
44デフォルトの名無しさん:04/05/06 00:27
入門書を読み終えて、基本的な文法とかクラスの概念とかが
とりあえず分かったら(あくまでもとりあえずです)、例えば
ゲームを作ってみたい場合、それが詳しく載ってる本を買って
きて、それを真似しながらこうしたい時にはこうするとかを覚えて
いくという感じで良いのでしょうか?
それとももう少し難しそうな入門書を買って勉強すべきですか?
アドバイスお願いします。
>>43
35で質問したものです。
自分は新しいPC(Win98SE)からしか触ったことがないのですが、
親父にこう言われました。

「枯れた知識というのは古い知識じゃない、完成されたものだ」

親父も今ではWinXPをメインで使っていますが、3.1やその前のよくわからないPCも
あえて取っておいてあります。興味が出てきたら触ってみろ、と。
MS-DOSというものがどういうものなのか何となくしかわかりませんが、将来のためにも
いずれ触れてみようと思っています。

スレと関係ない話で申し訳ありませんが、自分も昔のものにも触れて勉強していきたいと
思っています。
46デフォルトの名無しさん:04/05/06 01:06
クラス名などに
staticをつけるとつけないのではどう違うのでしょうか?
参考書などは「それはクラス変数である」としか書かれててないのですが
一体どういった用途の時につけるべきとかあるのでしょうか?

インスタンス化しなければ使える使えないクラスというレベルの話なのでしょうか?
47デフォルトの名無しさん:04/05/06 01:43
悩んでないで、実際に自分でプログラムを組んでみるのが吉。
48デフォルトの名無しさん:04/05/06 01:47
>>42
コンパイル用バッチファイルはこうするととても便利。
compile.bat という名前でそのプロジェクトと同じディレクトリに保存。以下中身↓
----
:compile
cls
javac *.java
pause
goto compile
----
こうすることで、コンパイル終了後止まって文章が読めるし、キーを押すごとに繰り返しコンパイルが出来ます。
http://www.microsoft.com/windowsxp/pro/downloads/powertoys.asp
http://www.microsoft.com/windows95/downloads/contents/WUToys/W95PwrToysSet/Default.asp

command prompt hereっていうエクスプローラ上からフォルダ右クリックで
そこからプロンプト開けるものも一応ある。
いまどきDOSプロンプトでJavaやるというのも、アナクロなんだよなぁ。
特に入門者にとって、ケアレスミスでサンプルが動かないことが多すぎて、学習の妨げになることが多い。
DOSの知識も必要だといっても、Webアプリまで考えると、それでは先が長すぎる。

とりあえずNetBeans3.6でも使っとけ、といいたい。
ttp://www.netbeans.jp/
初心者にはインストールが簡単でいい。
ダウンロード画面では「Click here」クリックすれば登録の必要はない。

ファイルシステムのところで右クリックして新規作成 > Javaクラスでクラスつくってサンプル入力して実行しる。
字がみにくかったら、インストールしたディレクトリのbin\ide.cfgっていうファイルに
-fontsize 12
を付け加えれば解決。
>50
この板でのスレの伸びを考えるとNetBeansよりは
Eclipseの方があとあと楽じゃない?
そうかもね。
でも、手もとに独習Javaしかなくて検索もおぼつかないような>>35に説明するのはNetBeansのほうが楽。
Javaだけの勉強ならね。
補足きぼんぬ
55デフォルトの名無しさん:04/05/06 14:42
AWTのComponentを継承して、自分でjava.awt.Buttonみたいな
部品を作りたいのですが、どこかにいいサンプルありますか?
JDKのButtonのソースを追ってみたのですが、ちょっと複雑そうなので
どこかにサンプルがあればと思いました。
(前スレで質問したのですが、過去ログに行ってしまってみれないので、
同じ質問をさせていただきました)
AWTのButtonはネイティブ呼んでるだけだからな。
AWTのButtonよりSwingのJButton参考にした方がいいかも。
そもそもJButton拡張でやった方が楽かも。
5755:04/05/06 15:22
ありがとうございます。
組み込みなのでJDK1.1で開発しているので、
Swingは使えないのですが、Swingのソースを
参考にしてみようかとおもいます。

>>55
そういうサンプル昔はいっぱいあったような気がした。
http://www.javaworld.com/javaworld/jw-03-1997/jw-03-imagebutton.html
あとSwingはJDKのクラスに含まれたのが1.2からってだけで
別ダウンロードで1.1とでも使えたよ。
http://java.sun.com/products/archive/jfc/1.1.1/index.html
6055:04/05/06 15:56
ありがとうございます!!
とっても助かります
>>45
うちの親父とは雲泥の差だな。
内の親父は、枯れてるがしかし普遍的でもなんでもない情報ばかりおっかける。
ちょっと質問です
public class Fortest {
  public static void main(String[] args) {
    for(int i=0;i<100;i+2){
      System.out.println(i);
    }
  }
}
とやった場合、
"式がステートメントとして無効です"と、コンパイルエラーになってしまいます。
for文で、二つ以上ずつ増やしたい場合どうすればいいのでしょうか。
ちなみに、for(int i=0;i<100,(i+2))でもコンパイルエラーになります
>>62
もうちょっと考えましょう。
iを2増やすときにはどう書きますか?
>>62
for(int i=0;i<100;i+=2){
6564:04/05/06 18:39
>>63 心遣いを無駄にしてスマン…
6662:04/05/06 19:13
どうもありがとうございました。
JavaDocについてお聞きしたのですが、
メソッドをリンクしたい場合は、{@link #メソッド名(引数)}で
呼び出せると思うのですが、フィールドをリンクしたい場合の
方法ってあるのでしょうか?
68デフォルトの名無しさん:04/05/07 00:10
文字列を区切る時
StringTokenizerを使うと思いますが
これを一文字ごとに区切りたいときはどうすればいいのでしょうか?

dasj lk

d
a
s
j
i
k
みたいにしたいのですが教えてください
java.lang.String#charAtをforでまわす
>>67
{@link #フィールド名}でダメだったっけ?
>>68
"dasj lk" から 'd', 'a', 's', 'j', 'i', 'k' になるのは……
72デフォルトの名無しさん:04/05/07 04:19
コンバイル時のメッセージ等を、日本語でなく、英語で表示させたいのですが、
どのようにすればいいでしょうか?

OSはWindowsXP Proで、SDKのSEを使用しています。
>>72
javac -J-Duser.language=us sourcefile.java するとか…
JAVAプログラムを読み込もうとすると、
このページを正しく表示するには、次のコンポーネントをダウンロードする必要
があります。 JAVA仮想マシン
と出て、なにやら英語のホームページに飛ばされてしまいます。どうすればよいで
しょうか?
JAVAのバージョンは、1.4.2_04です
ガイドに従って「はい」「はい」と答えましょう。しばらくすると動くようになります。
KeyListenerのKeyPressedとkeyTypedの違いってなんですか?
TextAreaでsetEditableをfalseに設定したとき、背景色を白にしてカーソルを表示しないようにしたいのですが、どうやったらよいでしょうか?
JDKのソースを追っていくとこのメソッドはインターフェースになっていてどこで実装されているかわかりませんでした
クラスの「性質」をあらわすしくみは、フィールドと呼ばれます。
フィールドは、コード上では変数をつかってあらわすこととになっています。

と本に書いてありました。
変数の雛型=フィールド と言うのは間違いなんでしょうか?
コード上でなければ、何によってあらわすのでしょうか?知らなくてもこまらなそうですが。。。気になって。。。
>>78
クラスはUMLなどのモデリング言語でも表せる。
変数といってもローカル変数とメンバー変数がありますよね。
フィールド=メンバー変数です。
変数の雛型って、定義と同時に値をしていしない
int i;
ってことでしょうか?
フレームに配置したオブジェクトのフォーカス移動をTABキーでなくて左 右で行いたいのですが、
どうすればよいでしょうか?
JDK1.2なのでJDK1.4のフォーカス機能は使えません。
キーイベントを拾って
コンポーネントに登録されているオブジェクトに対してフォーカスを
当てていけばよいのかとおもったのですが、
ComponetにはsetFocuse見たいなフォーカスを当てるための
メソッドがなさそうでした。
>76
Pressedは矢印とかテキストに入力されないもの
Typeは文字キーとかスペースとか入力されるもの

>>81
java.awt.Component#requestFocus()
>83
ありがとうございます。
requestFocusでフォーカスできました。
ところで現在フォーカスがあるなしにかかわらず、
キーボードを押したことを知る方法はありますか?
processEventだと現在フォーカスがあるオブジェクトでしか
イベントを受け取れないです。
TABキーを押したときは、フォーカスがどこにあっても、
TABキーを押したことをAWTが拾っているようなので、
その仕組みをつかって左 右 キーでフォーカスの
移動を行えればと思いました
8574:04/05/07 16:27
>>75
plug-inをアンインストールしたら直りました。なんだったんだろ。
86デフォルトの名無しさん:04/05/07 17:40
servlet もしくは jspを使って、ファイルをネットワークを使って
アップロードする方法ってありますか??
あります。
HTMLのFORMにデータを送るタグ見たいのなかったでしたっけ?
Servlet側ではInputStremとかで受け取れたような・・・
90デフォルトの名無しさん:04/05/07 22:06

AbustractButton select=(AbustractButton)e.getItemSelectable();
if(e.getStateChange()==ItemEvent.SELECTED){
if(select.getText().equals(""))
こいうのがあったとして、getTextとequalsが二つつながってるんだけど
メソッドって、二つ一緒につなげてかくこととかできるんですか?

できるよ。

select.getText().toString().toString().toString().toString().equals("")
もっとつなげることもできる。
select.getText()まででString型のなにかが返ってくる、それのequals("")を呼び出している、てこと。
TextField などへの文字入力で、全角のも含めて前後の空白切り詰めるとき
 String value = tf.getText().replace(' ',' ').trim();
などはよくやる(俺は)。途中の全角空白に意味あるときはだめだけど。

つなげすぎるのも見苦しいけど、所作1つ毎に、
変数作ったり、同じ変数使いまわして中身入れ替えていくのもまた読みにくいでしょ。
ここはJava3Dの質問もありですか?。

GeometryArrayのsetCoordRef3dがDeprecatedになったのはなぜですか?。
version 1.2で作られたのに1.3でDeprecatedになってる。
でもsetCoordRefDoubleはなってない。
BY_REFERENCEではsetCoordRef3dでなく
setCoordRefDoubleを使えということになっただけですか?。
なったらなったで別にかまわないのですが
理由を知っている方がいらっしゃいましたらお教えください。
探し回ったのですが見つからなかったもので…。
答えが返ってくればあり、返ってこなければなし。
96デフォルトの名無しさん:04/05/08 09:30
C:\java>java JRadioButtonSample
Exception in thread "main" java.lang.NullPointerException
at JRadioButtonSample.<init>(JRadioButtonSample.java:33)
at JRadioButtonSample.main(JRadioButtonSample.java:16)
これは、どういう意味ですか?よろしければおしえてください
>>96
書いてあるとおりの意味です。
main()メソッドで例外NullPointerExceptionが発生しました。
場所は、JRadioButtonSampleのコンストラクタで、
ソースで言うとJRadioButtonSample.javaの33行目です。
98デフォルトの名無しちん:04/05/08 10:33
 すみません。
 なぜ文字列をint型の変数に代入したりするのでしょうか。
 なにかメリットがあるのでしょうか。
>98
?
>>98
できません
>>98
>なぜ文字列をint型の変数に代入したりするのでしょうか。
できません。
できるのは、文字列を数値として解釈して、int 型の変数にその数値を代入することだけです。

それをすることに対して
>なにかメリットがあるのでしょうか。
と聞いているんであれば、「知りません」としか答えられません。
ソース上でそれがされていれば、
ソースを書いた人にはそれをする必要があると思ったからしたんであって、
メリットがあるかどうか(≒回りくどい方法でないかどうか)はソース全体を見ないとわかりません。
>なにかメリットがあるのでしょうか。

初心者の口癖。Calendar.getInstance() や interface の件で頻出。
メリットがあるから仕様や手法が存在する、と何故考えられないのか・・・
回答後の態度を見ると、「どういうメリットがあるんでしょうか」と聞く奴は、一味違う気がする。
103デフォルトの名無しちん:04/05/08 11:07
 実は、そのコードを探しているのですがどうしても
見つからないのです。
 うろ憶えでは、なんでも文字列に対して算術的に操
作できるとか、メモリの節約になるとかだったと思い
ます。
 正直、この手法はポピュラーなものだと思っていた
ので、私も何で凝った事をするのだろうと疑問であり
ずっと不思議だったのです。
 何かほかの事と勘違いしていたようで、あらためて
書籍をあたってみます。
 つたない質問へのご回答に感謝いたします。
たしかにある意味ひと味違ったようだ
でも回答者の粋がり方はいつもと変わらないな
初心者歓迎スレでムキになるほどの質問の内容でもあるまいに
106デフォルトの名無しさん:04/05/08 14:28
今リストボックスをやってるんですけど。
選択されている項目のほかにインデックスを取得するgetSelectedindex()
メソッドがあるんですけどインデックスを取り出すというのはどういう意味なんですか?
同じ項目がある場合は選択状態にする式でint index
if((index = model.indexOf(newElement))!=-1){this.list.setSelectedIndex
(index));} ここでつかってるみたいなんですけど-1っでないってのは?
よろしければ教えてください。
>>106
APIリファレンス読め。

http://java.sun.com/j2se/1.4/ja/docs/ja/api/javax/swing/DefaultListModel.html#indexOf(java.lang.Object)
public int indexOf(Object elem)
 最初に現れる elem を検索します。

 パラメータ:
   elem - オブジェクト
 戻り値:
   リスト内で引数が最初に現れる位置のインデックス。オブジェクトが見つからない場合は -1
108デフォルトの名無しさん:04/05/08 16:49
インデックスってのは結局何?
俺もしらね
109デフォルトの名無しさん:04/05/08 16:49
当方Flashインターフェイスのサイトでwmv形式の動画の配布を行っています。
Flashでは右クリック→保存ができないので、ZIP圧縮したものをアップして、
左クリックで保存してもらっています。
しかし、解凍作業が面倒ですので、左ワンクリック→保存というふうにしたいです。
サーバーでMIME設定等をいじろうとしたんですが、これだと相手のブラウザ環境によっては
意味がないことが分かりあきらめました。
そこでJAVAプログラミングでできないかと思い、ここを尋ねました。
FlashとJAVAの連携という本はあるので、もし
wmv形式のファイルを左ワンクリック→保存とできるなら
買って勉強しようと思います。
ご助言のほうよろしくお願いしますm(_ _)m
>>109
こっちで聞いた方がよくないか? Java 関係なさそうだし。

Flash製作初心者の質問スレッド 23フレーム目
http://pc4.2ch.net/test/read.cgi/swf/1080834030/l50
111109:04/05/08 17:06
>>110
以前聞いたときは「MIME設定いじれ」といわれるばかりでして・・・
112109:04/05/08 17:06
>>110
もう一度聞いてみます。
ブラウザの設定などおかまいなしに、
保存のためのダイアログを明示的に開かせるってはなしか。
少なくとも Java アプレットではできないだろうな。

つーかそれをやれてるところが一箇所でもあるだろうか? と疑問に思う。
114109:04/05/08 17:18
ttp://www.rizm.net/usrplay/?USRID=2516&MFID=19123
ここなんかは左ワンクリックで保存ダイアログが出るんですが、
こういうふうにでいないでしょうか?
これは asp だろ。CGI みたいなもんだ。
サーバサイドにおいて、Webサーバではなく、
サイト設営者の組んだプログラムで MIME を指定してる。
Flash や Java(アプレット) はクライアントサイドで動く
(送られてくるファイルの MIME 明示はサーバ任せ)から、全然違う。

これとて、ブラウザによって振る舞いが違う。
なるほど IE だと WMV のファイル名がデフォルトになるけど、
俺の NN7.1 ちゃんだと、asp のファイル名 "download01.asp" がデフォルトになる。
NN でもきちんとここまで制御するのはどうかなーできんのかなー。
俺は詳しくないので WebProg 板かどっかのエロイ人に聞いてごらん。

少なくともこれ以上、このスレの話題としてはそぐわないな。
116109:04/05/08 17:37
>>115
分かりました。
WebProg板のエロイ人に聞いてみます。
ありがとうございました!
見てみたけどネスケの動作のほうが正しいような
application/x-binary返してるし
118初心:04/05/08 18:46
javaを勉強したく「jcpad231」をダウソしました。
立ち上げた時に「コンパイラのパス」を入力する画面が現れたのですが
「javac.exe」が見つかりません。
このエグゼは自分でどこからかDLしてくるのでしょうか?
てっきりに一緒に梱包されていると思いました・・
環境はwin98です。よろしくですm(__)m
>>118
http://java.sun.com/j2se/1.4.2/ja/download.html
の 「J2SE SDK のダウンロード」ってところからダウンロードできる。
File[] FileList = null;
File files = new File(dir);
 if (files.exists()) {
  FileList = files.listFiles (new java.io.FileFilter() {
                   public boolean accept(File list) {
                    return (!list.isDirectory());
                    } }  );

無名クラスを使って上のように、あるディレクトリ内からディレクトリを含まないファイルのリストを
フルパスで取得しているのですが、上のプログラムで
C:\aaa\bbb.dat というファイルを取得したとしてそのファイルのlength()を
取得すると14のはずですが、倍の28という数を取得します。
これはなぜでしょうか?
ちなみにSystem.out.printlnで表示させると、C:\aaa\bbb.datと表示されます。
>>118
勉強するなら、jcpadよりEclipseかNetBeansにしろ。
>>120
bbb.datのサイズが28ではなくて?
length()はファイルサイズを返すのではないでしょうか。
(まさか、FileListのlength()の話ではないよねぇ。)

http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/io/File.html#length()
EclipseやTomcat5.0みたいに
Javaアプリを起動するExeを作成するには
どうすればよいのでしょう?
124120:04/05/08 21:40
>>122
>length()はファイルサイズを返すのではないでしょうか。
その通りでした。(FileListのlength()を返すものだと思っていました。)
ありがとうございます。

もういっこ質問なんですが、フィールドに
  public final Hoge aaa = new Hoge("xyz");
とあって、そのaaaをforループで使うとき、
aaaは毎回インスタンスが生成されるんでしょうか?
(例えば10回ループするなら10回作成されるとか)
>>123
JNI使って直接読んでもいいし、javawをコールするだけの物を作ってもいい
後者の方が単純にできる
win32shellapiとかでしらべてみそ
126デフォルトの名無しさん:04/05/08 21:54
インスタンスが作られたときに1個だけHogeインスタンスが
生成されます。その後は同じインスタンスの使いまわしです。
127デフォルトの名無しさん:04/05/08 21:55
>>123
何でみんなこんなことしたいの?
batファイルじゃダメなのか
Javaでは何が作れるの?
何に動くの?
> Javaでは何が作れるの?
いろいろ。

> 何に動くの?
日本語が不自由なのかな?
130120:04/05/08 22:25
>>126
ありがとうございます。
131デフォルトの名無しさん:04/05/08 22:27
サーブレットの質問なんで、もしかしたらスレ違いかもしれないですが・・

HttpSessionインターフェースをimplementする事と、クラスを継承する事の違いが
わからない・・・てか、そもそもなぜ「インターフェース」扱いなのかが理解出来ない・・・(泣)
132デフォルトの名無しさん:04/05/08 22:31
>>131
スレ違いじゃないよ。漏れには答えられんけど。
>>131
機能に対する仕様を表す場合はインタフェースを使うことが多い。
>>131
そのクラスが外部に対して提供するインタフェースを、interfaceで定義して、implementsする。
そうすれば、クライアントとの結合部分は変えずに、実装部分だけ交換するという芸当ができる。
((10) + (((5))) / 9)

この式が有効と言うことなんですが、どこの()がどうなってるのか・・・。
なぜ有効になるのでしょうか?確かに実行すると計算されてるのですがよくわかりません;;
10 や 5 や9 は式
expr が式だとしたら (expr) も式
expr1 と expr2 が式だとしたら expr1 + expr2 や expr1 / expr2 も式
( (10) + ( ( (5) ) ) / 9 )
138デフォルトの名無しさん:04/05/08 23:50
10+5/9
int foo(int n){
return n;
}

main(){
foo( foo(10) + foo( foo( foo(5) ) ) / 9 )
}
あ、ここJavaだた。
r'⌒X⌒X⌒X⌒X⌒X⌒X⌒X⌒X⌒X⌒X⌒X⌒X⌒X⌒X⌒ヽ ⊂゛⌒゛、∩
ヽ__乂__乂__乂__乂__乂__乂__乂__乂__乂__乂__乂__乂__乂__乂__ノ  ⊂(。Д。)

おれもこれわかんない〜、>>135はわかったのかな?誰かもっと優しく
解説キボン
何でやねん。

(10 + 5) / 9

((10 + 0) + 5) / 9
((10) + 5) / 9

あとは分かるだろ。
143135:04/05/09 00:05
>>136
>>142

何となくわかったような気がします。まだよく理解できてない点がありますが^^;
明日にでも、頭冷やしてもう一度考え直してみます〜。ありがとうございました。
同じように +-+-+-1 とかもどう?
かっこは単なる優先順位でこれわからんやついたのか・・・
小学校の算数からやったほうがいいんじゃ?
146デフォルトの名無しさん:04/05/09 00:15
>>145
小学校の算数とはちょっとちがうべ。一応プログラムの処理なんだから。
>>135はJava始めた初心者じゃない?だったらわからなくても不思議じゃない。

>>144
実行してみれ。
>>146
初心者だったとしてもわからないのはちょっとなぁ、と思う。

>>144 は言語仕様上問題ないよーな。
'-'の数を数えれば正か負か分かると思ったけど。
うわー
なんだかめちゃくちゃになったんで、誰か解説お願いします。
f=-(b=-(a=-i++)+i++-(c=-i--))+((d=+i++))-i+++c---(e=+-+--a-+-c--+d++);
System.out.println(f+" "+(f+=--a-+c+++d-+--e));
実行結果:-10 -4
149148:04/05/09 01:47
すまん、書き忘れ。
int i=1;
int a,b,c,d,e,f;
150デフォルトの名無しさん:04/05/09 01:51
スペース使おうよ・・・。
それじゃレビューしづらいよ・・・。
151デフォルトの名無しさん:04/05/09 01:53
今夜 12時 誰かが





























うんこ踏め。
152151:04/05/09 01:54
住まん、誤爆だ・・・。

System.out.println("逝ってきます") ;
>>148
例えば a--b のような入力は a,-,-,b とトークン化すると
a-(-b) と文法的に解釈できるにもかかわらず、
a,--,b へとトークン化しなければならない。

後置増分演算子、後置減分演算子は評価時に変数が加算または減算されるが、式の値は加算または減算される前の値。
前置増分演算子、前置減分演算子は評価時に変数が加算または減算され、式の値は加算または減算された後の値。

あとは左から右に読んできゃわかるでしょ。同じ事の繰り返しがあるだけだし。

>>149
Java だと「確実な代入」のルールがあるから、a,b,c,d,e,f がローカル変数ならコンパイル時エラーになる。
あ、括弧で括ってるから代入できてんのか。
155デフォルトの名無しさん:04/05/09 03:03
JavaでマシンのスペックやIPアドレスなど
マシン情報を表示したい時はどうすればいいのでしょうか?
156デフォルトの名無しさん:04/05/09 03:14
ちょっと難しいかもしれませんが
教えてください

特定フォルダ内のファイルの内容をチェックしたいのですが
(そのファイルの中の文字数とかある文字列が使われているのか行数とか)
そういう事って可能でしょうか?
>>156
勝手にすればいいじゃん
>>155
自身のIPならInetAddress#getLocalHost()あたりで取れるかな。
マシンのスペックってのはないような。

>>156
ファイルの内容が文字なのかどうかさえ、わからんと思うけど。
文字だとわかっている&文字コードもわかっているなら、全部読んで
文字数勘定するとか、改行コードの数勘定するとか、べたにやれば
いいんでないの。
jpcapっていうパケットキャプチャを動かしたいんです。
jniだもんで、
static{
System.loadLibrary("Jpcap");
}
でJpcap.DLLを読みこむと、UnsatisfiedLinkErrorが出ます。
これってDLLがおかしいんですか?
160118:04/05/09 11:01
>>121
学校で使っているのがjcpadなのです(´・ω・‘)

>>119
サンクスです(・▽・)
プログラミングって皆さんどうやって勉強してるんですか?
専門の人に実際に操作しながら?専門の本を読んで?独自で色々考えて試したり?
自分高校1年なんですが、プログラミングにすごく興味があります。
将来そういう仕事に就きたいとも考えてます。
以前はDelphiやC#Builderに手を出したんですがイマイチ呑み込めませんでした。
将来のために今のうちに勉強しておかないとと思ったんで、勉強法・言語等のことで皆さんアドバイスください。お願いします。

(iアプリ(=Java)を作ってみようと思ってここに書かせてもらいました。)
俺は昔始めた人間だからパソコンはプログラムを組むのが当たり前の時代だったし
プログラムのための本がほとんどだった
当時はパソコン持ってるだけで変人扱いされてたからどっちの時代がいいかはしらね

まぁ、今の時代はプログラムの敷居が高すぎるような気はするな
win32もjavaも.netも仕様がでかすぎて初心者には勧めにくい

今はほとんど資料はネットで収集
本買わないとだめな環境ってのは今のメインストリームの言語ではないとおもわれ
>>161
> 以前はDelphiやC#Builderに手を出したんですがイマイチ呑み込めませんでした。
見込みなし。諦めろ。
>>163
はい
>>161
月10,000円で毎週6時間ずつ教えてやる。
いいですよ来年からプログラミング履修しますよ
>>165
一ヶ月4週として、4*6時間=24時間。
で月謝が10,000円ってことは、自給400円程度。

出血大サービスだな、おい。
168デフォルトの名無しさん:04/05/09 13:59
Red Hat 9 にJ2SDK1.4.1とTomcat5.0.18を入れて動かしてるんだけど
2929 pts/1 S 0:13 /usr/java/j2sdk1.4.1_02/bin/java ・・・
のようにJAVAのプロセスがひとつしか立ち上がらない。

Red Hat 7,2で同じように設定するとJAVAのプロセスは複数上がってるけど。
これってRed Hat9の問題?
それともJAVA実行環境の設定に何か必要なの?
教えて
169デフォルトの名無しさん:04/05/09 14:32
org.apache.catalina
というパッケージを使いたいのですが、どのjarファイルに入ってるか
わかりません。
こういう場合はどうやって調べるのが普通なのでしょうか?
>>169
っていうか、なんで、そんなもん単独で使いたいの?

普通はライブラリのドキュメントをよんで、その手順でやる。
たぶんcatalina.jarだと思うが。
172デフォルトの名無しさん:04/05/09 14:45
>>171
あったー。dクス。

>>170
http://www.myprofile.ne.jp/blog/archive/t-sat7/107
のバグを修正してみたいのでコンパイルしようとしたら
パケージが足りないエラーがでたので。

ぐぐればapiリファレンスはでてくるけど、それがどのjarファイルに
含まれるかは分からないので何かいい方法があれと思って。

引き続き探し方について、誰かいい方法あれば教えてください
1.文字列(message)を入力
2.さらに追加したい文字列(message2)を入力→出来た文字列(totalmessage)
3.検索したい文字列(found)を入力
4.totalmessageをfoundで検索。
5.検索結果表示。

という内容のプログラムを書いてみたんですが、
何文字目で発見されたか、という結果でおかしな数値が出てしまいます。
どこが悪いのか、ご教授お願いします!
174173続き:04/05/09 15:13
私が書いたプログラムは以下の通りです。
import java.io.*;
class kadai14 {
public static void main(String args[]) throws IOException {
System.out.println("文字列を入力してください。");
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
String message = br.readLine();
System.out.println("追加する文字列を入力してください。");
String message2 = br.readLine();
StringBuffer sb = new StringBuffer(message);
System.out.println("最初の入力:"+sb);
sb.append(message2);
System.out.println("追加後の入力:"+sb);
String totalmessage = sb.toString();
System.out.println("検索文字を入力してください");
String found=br.readLine();
char ch =found.charAt(0);
int num = totalmessage.indexOf(ch);
if (num != -1)
System.out.println(totalmessage+"の"+num+1+"文字目で『"+ch+"』が見つかりました。");
else
System.out.println("『"+ch+"』は見つかりませんでした。");
}
}
"の" + num で String ができ、そこに "1" を追加する形になっちょる

ので正解は (num + 1)
176173:04/05/09 15:33
>>175さん
な、なるほど…!!
だから何度実行しても下一桁がやたらと1だったんですねw
気づかない自分に自己嫌悪…。

175さんの仰った通りに書き直してみたら上手く動きました。
どうもありがとうございました!
177デフォルトの名無しさん:04/05/09 16:09
オブジェクトを選択するときにつかうgetSource
はたとえば、チェックボックスでつかうとして
これはチェックボックスそのものを取得するの?それともそこにかいてる
文字列を取得?getActionComandはボタンとかならそこの文字列だから
ぜひおしえてください
>>177
使用してるメソッドは package名、クラス名、メソッド名、引数型、を全部はっきりさせろ。
何の事書いてるのかサッパリわからんぞ。
回答します。
>オブジェクトを選択するときにつかうgetSource
>はたとえば、チェックボックスでつかうとして
>これはチェックボックスそのものを取得するの?それともそこにかいてる
>文字列を取得?

Source は源のことです。ev.getSource() するわけですから、
Event がどこで発生したかを表します。
Button に登録した ActionListener に ActionEvent が渡されたならば、
その ActionEvent の source は Button です。
Chekcbox に登録した ItemListener に渡された ItemEvent なら、Checkbox が source です。

>getActionComandはボタンとかならそこの文字列だから
間違いです。getActionCommand は、そのボタンに登録されたコマンドが ActionEvent に載せられているだけです。
ボタンに表示された文字列が渡されるのではありません。
コンストラクタで与えるのはボタンの表示名でありなおかつコマンドとしても使われるだけで、
別途コマンドを Button#setActionCommand で指定することもできるのです。
180デフォルトの名無しさん:04/05/09 16:39
>>168

Linuxはそれ程詳しくないけど、多分スレッドの扱い方が変わったためでしょう。

古いLinuxはスレッドといってもスレッド1つ1つはプロセスとしていたので、psで見るといくつもjavaが立ち上がっているように見えました。
RedHat9は、それがどう変わったの分かりませんが、そのあたりが修正されたのでしょう。
>>174
main が throws IOException、、、、
>>181
174じゃないがおかしいか?
JFrameの勉強しています。
ウィンドウを閉じるためのメソッドなのですが、
引数のところでエラーが出ます。
環境はエクリプスです。

import javax.swing.JFrame;
import java.awt.event.WindowAdapter;

public class Ui extends JFrame{

    private class MyWindowListener extends WindowAdapter{
public void windowClosing(WindowEvent e){
System.exit(0);
}
    }

}

WindowEvent はメソッド windowClosing の引き数 e について解決できません (あるいは有効な型ではありません)。




184デフォルトの名無しさん:04/05/09 17:55
時間や日付によって実行する内容を変更させるにはどうすればいいのでしょうか?

ifで分岐する時の条件だと思いますが
その分岐のさせ方ってうまい方法とかあるのでしょうか?
>>182
おかしい
>>185
何がおかしいのか説明してくれ
>>182
import java.awt.event.WindowEvent;
するか、
public void windowClosing(java.awt.event.WindowEvent e){
とか書けば良い。
>>184
すぐに考え付くのは
 Date#compareTo(Date)、Date#after(Date)、Date#before(Date)
 Calendar#after(Object)、Calendar#before(Object)
とかを使えば楽。
>>186
>>185 じゃないが説明しよう。
例外というのは VM がプログラマに送って寄越すもんであって、
最低限 main で catch して、さてどうしたものかと判断するべきだ。
それをユーザにそのまま投げるようではおかしい。

勿論 >>174 はユーザがどうとかそんな大層なプログラムじゃないが、
一般論としては main で throw しちゃいかん。
>>189
あるクラスの main メソッドは他のメソッドから呼び出すこともできるのですけど。
>>190
mainは単独で起動されても問題ないようにするべき

他のクラスから呼ばれる場合はそのメソッド用意するべし
それをmainから呼べばいいだけ
192デフォルトの名無しさん:04/05/09 21:47
C:\java>java JScrollPaneSample
Exception in thread "main" java.lang.NoClassDefFoundError: JScrollPaneSample (wr
ong name: JScrollPanesample)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:502)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:12
3)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:250)
at java.net.URLClassLoader.access$100(URLClassLoader.java:54)
at java.net.URLClassLoader$1.run(URLClassLoader.java:193)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:186)
at java.lang.ClassLoader.loadClass(ClassLoader.java:299)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265)
at java.lang.ClassLoader.loadClass(ClassLoader.java:255)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:315)
これはどうすれば解決しますか
194デフォルトの名無しさん:04/05/09 22:18
JScrollPanesample
JScrollPanesample
sを小文字で定義してる?
>>172
おそれすやけど

antじゃだめなん?
197初学者:04/05/09 23:54
すいません、クラスパスについて質問です。

状況
javaコマンド実行時に、以下のエラーメッセージが出てしまいます。
Exception in thread "main" java.lang.NoClassDefFoundError: Sample (wrong name: chapter1/Sample)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
以下もスタックトレースの内容が表示されました。

行った手順
1.mainメソッド(「Hello Java」を表示する単純なクラス)があるSampleクラスにchapter1というパッケージ名をつけた。
2.以下コマンドプロンプトでの実行手順(コンパイル済)
>C:\j2sdk1.4.2_04\sample\chapter1>java Sample ←Sampleクラスがあるディレクトリで実行。状況に記述したエラーが表示。
>C:\j2sdk1.4.2_04\sample\chapter1>java chapter1.Sample ←スタックトレースは表示されないが、エラーメッセージはほぼ同じ。
>C:\j2sdk1.4.2_04\sample\>java chapter1.Sample ←一階層戻ったら、Hello Java が表示された。

疑問点
1.VMのクラス検査順序は
 @標準ライブラリの中から実行するクラスを検査
 Aカレントディレクトリからクラスを検査
 Bクラスパスで指定されているパスからクラスを検査
 C上記の@、A、Bで見つからなかったらNotClassDefErrorがスローされる
上記の認識が正しければ、「java Sample」で実行されるのではないのか?

2.なぜ、手順の最終行のように、パッケージの先頭ディレクトリだと実行可能なのか?


サイトで調べたのですが、解決できなかったので、何卒御教授下さい。
>>197
>>C:¥j2sdk1.4.2_04¥sample¥>java chapter1.Sample ←一階層戻ったら、Hello Java が表示された。

全く正常じゃん。
>>197
かなり気持ちはわかる。
でも、chapter1.SampleというクラスはSample.classというファイルになってる場合、
chapter1というフォルダにおいてあり、かつそのフォルダがおいてある場所がクラスパスに入ってないとだめ。

"java Sample"というのはSampleというメインクラスを実行しようとしてるんだよ。

ちょっと分かりづらいかもしれないけどディレクトリ階層の移動とパッケージの移動というのは
ファイルの配置でしかリンクしないのさ。
>>123
それらの起動部分のソース見ればいいと思われ。
http://jsmooth.sourceforge.net/ これ使っても楽。
あとは前スレのログ。

>>159
PCapは入れました?jpcapのdllはPATHに入ってますか?

>>172
jwhichでぐぐると近いものかも。
>>197
chapter1.Sample は完全指定のクラス名(fully qualified class name)だが、
Sample は完全指定のクラス名ではないから。

http://java.sun.com/j2se/1.4/ja/docs/ja/tooldocs/win32/java.html#description
> デフォルトでは、コマンド行オプション以外の最初の引数が、呼び出されるクラスの名前になります。
> この名前には、完全指定のクラス名を使用する必要があります。
Javaで作られたWebサイトがまとめられたサイトだかスレッドだかがあったと思うけど、どこか知らない?
>>197
2.に関しては以下を参照してくれ。

http://java.sun.com/j2se/1.4/ja/docs/ja/tooldocs/findingclasses.html#userclass
Java 起動ツールがユーザクラスを検索する方法
204202:04/05/10 02:36
板が違ったらしい。

JSP/Servletで構築されたサイト
http://pc5.2ch.net/test/read.cgi/php/1063121571/
>>200
WinPcapのバージョンを変えることで動きました。(β版入れてました)
ありがとうございます.
206197:04/05/10 07:25
皆様レスありがとうございます。

javaコマンドの実行クラスは完全指定のクラス名を指定する必要があったのですね。
そして、ディレクトリ階層の移動とパッケージの移動というのはファイルの配置
でしかリンクしていないので、実行時には、パッケージの先頭ディレクトリにカレント
ディレクトリを移す必要があったのですね。

まだ、なんとなくしか理解していませんが、紹介してくださったリンクから勉強して
いきたいと思います。
ありがとうございました。
JDKってなんのことだっけ?
208207:04/05/10 10:17
あ、具体的には、J2SE SDKとの違いが知りたい。昔の名前?
>>208
その通り
210207:04/05/10 11:25
Java1.2からはJDKじゃなくてJava2SDKっていうようになった、ってことかな。
じゃあ、JDK1.4とかっていうのは、その言葉使ってる人が昔の名残でってことで、正式な言葉じゃないってことか。
J2SE1.4と言えってことだな。
>>210
J2SE1.4だとJREかもしれないので、J2SE SDK1.4だな。
それだと長いので、JDK1.4と省略されるわけよ。
212207:04/05/10 12:03
J2SE SDKにはJREも含まれると思ったのだが。
213デフォルトの名無しさん:04/05/10 12:18
現場ってJAVAって使ってるの?
サーバーサイドだけじゃないの?JAVAで仕事あるかな?

214207:04/05/10 12:19
JDKって、今でいうとJ2SE SDKじゃなくてJ2SE全体を示してた気もする。
>>213
サーバーサイドやってるのは、仕事じゃないってことですか?現場ではないってことですか?
>>214
何の略かを考えてくれよ。Development Kit だぞ。
Kit の中に Runtime Environment も含まれるのは当然だが、
"J2SE" という呼び方をした場合、それは仕様のことを表すんであって、
バイナリ製品を表すんではない。
逆に "JDK" という、製品を表す言葉が「仕様全体を示す」というのも、話としておかしいだろ。
217デフォルトの名無しさん:04/05/10 13:00
>215
 そうじゃなくてね、JAVAがメインの仕事って言う意味。
 
全然意味が分からない。
お前何だ中学生か?
219デフォルトの名無しさん:04/05/10 13:19
JSPに関する質問です。
入門本にCLASSPATHにC:\Tomcat\common\lib\servlet.jarを設定せよとあるのですが、そもそもservlet.jarがありません。
servlet-api.jarはあるんですが。
何が悪いんでしょう。
なおstartup.batによるtomcatの起動には成功しました。
220172:04/05/10 13:19
>>196
antで出来るの?
調べてみる。dクス
221172:04/05/10 13:26
>>200
jwhichはそれぽいすね。
けど、これはclasspath貼ってるものに対しての検索かも。
もうちと、調べてみます。ども、dくす
>>213
鯖再度がほとんどだけど、新しく別の言語環境を構築しないでも
使えるので遅くてもいいバッチとか、アプレットとか使ったりもする
>>219
バージョンによって違うみたい。
tomcat5からはservlet-api.jarでいいとおもわれ
>>220
Tomcatの構築なんだよね?
そしたら、antいっぱつでしょ
>>217
Javaでサーバーサイドを構築するのをメインにしちゃだめか?

ちなみに、Javaな。
JAVAって書くと、Javaを知らないことがばれるよ。
いや、どうみても Java がなんだか分かってない奴の発言だ。
ほら、今後ちょっとでも長くごまかせるようにさ。
家のPCでJavaをコンパイルしたくてJava2 SDKをDLしたんですが
その後はどうすればいいのでしょうか??
229219:04/05/10 15:23
THX!
解決しました。
javac
JSP2.0の式言語で改行文字とかを表したいときにはどうしたらいいの?
${'\n'}だとおこられた。
>>228
君のそのたった二行の書き込みだけでは、
君がとんでもないボケナスであるのかそうでないのか分からん。
とりあえず親切心から、ボケナスであると仮定するわな。
それで考えられるすべてのことを、先回りして教えてやるわな。

スレ1つ埋まるだけではすまないぞ。

そんなわけで、>>230 さんが、君以外の全てのこのスレの利用者に配慮して、
たった五文字で「次すること」を表現した。逆恨みしないように。
233228:04/05/10 15:29
コマンドプロンプトですた。
234デフォルトの名無しさん:04/05/10 15:42
環境変数が変えられないんだけど。
そりゃしかたないね。
236デフォルトの名無しさん:04/05/10 15:47
>>231
${text}\n${text2}
とかでいいんじゃねーの?だめか?
>>228

>>50あたりをみて、なんかツール使うことを勧める
>>236
\nという文字列になる。改行にならない
239デフォルトの名無しさん:04/05/10 15:54
できたよ
>>237
ありがとう
>>239
どこに対するレス?
242デフォルトの名無しさん:04/05/10 16:07
>>238
軽く調べたけど見つかんねーな。
どのタグで使おうとしてるか知らないけど、使わなくてもいけないか?
>>241
オナーニレス
>>242
たとえば<c:if test="${a!='\n'}">みたいなこととか。
スクリプトでやってもいいと思うんだけど、ほかがタグとELだけでできてるのにそこだけスクリプトレットっていうのも、ねぇ。
245デフォルトの名無しさん:04/05/10 17:51
初歩的な質問で申し訳ないのですが、教えて頂けないでしょうか?

コンストラクタは、戻り値が無いと本に書いてあったのですが、
Integer obj1 = new Integer(5);
System.out.println(obj1);

Date currentDate = new Date();
System.out.println(currentDate);
のように、オブジェクト化しただけで変数に値が入るクラスがありますが、
IntegerクラスやDateクラスが特別なのでしょうか?
それとも、私のコンストラクタに関する考えが間違っているのでしょうか?

よろしくお願いいたします。
>>245
> コンストラクタは、戻り値が無いと本に書いてあったのですが、
これって、単に

class Hoge {
 Hoge(){} //戻り値の型が指定されてないので、これはコンストラクタ
 void Hoge(){} //戻り値の型が指定されてるので、これはメソッド
}

って事を言いたいだけでは?
>>245
コンストラクタというかそれは表示する側のメソッドとかみたほうがいい

具体的には表示にはtoString()というメソッドを呼ぶようにしてあるものがほとんど
だから自分でクラスを作って手軽にjtableに表示したいとかsystem.outでデバッグしたいとか
思うのならこのメソッドを作るべし
248デフォルトの名無しさん:04/05/10 18:37
>>245
質問の意図が読めないぞ。
インスタンス生成時にフィールドが初期化されることと、コンストラクタに戻り値がないことと
どうこんがらかってるんだ?
皆様に解説します。
>>245 がいっているのは、コンストラクタが戻り値を返さないのなら、
これこれこうして変数が null でなくなった(println で検証)のは何でじゃ、ということです。

>>245
>オブジェクト化しただけで変数に値が入る
表現が変だな。正確に言うと、変数に値が入るのは、生成後 = で結んでるからだぞ。
「オブジェクト化」しただけじゃ不可能。

コンストラクタは、
  そのクラスの新規のインスタンス領域をメモリ上に確保しつつ、インスタンスの初期化を行い、
  そのインスタンスを戻り値とするメソッド
とでも考えると分かりやすい。呼べばちゃんと値が戻る。
戻り値(型も含めて)が固定されているから、コンストラクタを組んだプログラマは return を書けない(もしくは書く必要がないとも言える)

なお、個人的には「オブジェクト化」と言うより「インスタンス生成」と言った方がいいと思ってる。
(君の文脈には当てはまらないけど) 理由はいろいろ。
コンストラクタに戻り値がない -> どうして左辺値があるの?
ってことじゃないかな?
251デフォルトの名無しさん:04/05/10 18:46
>>249
なるほど。

オレ的に説明を加えれば、コンストラクタに特別引数がない限り、
オブジェクトはnullで、数字は0とか0.0とかで全て初期化される。
これは別にオブジェクトじゃなくてもそう。
だから本当は、宣言した変数(プリミティブ値ね)をいきなり使ってもいいんだけど、
一応宣言時にでも0とかで初期化しといた方がいいよ。

あと>>249もいってるみたいに、コンストラクタはそのクラスのインスタンスを生成するメソッドと考えていい。
ただしnewをつけないとならないけど。
>>250
でもそれだと、
>IntegerクラスやDateクラスが特別
なんてことは思わないかと。
「コンストラクタの宣言」と「クラスインスタンス生成式」を区別してないだけでは?

8.8 コンストラクタの宣言
http://www.y-adagio.com/public/standards/tr_javalang2/classes.doc.html#41652

15.9 クラスインスタンス生成式
http://www.y-adagio.com/public/standards/tr_javalang2/expressions.doc.html#41147
コンストラクタ宣言内で return を書いていい言語って何があったっけか?
>>245がいってるのは

System.out.println( new Integer(100) );

みたいなのでなんで表示されるの?ってところだと思う
単純に引数でObject型のtoStringの挙動を知らないというだけのような


いわゆる本当の初心者が首つっこむと大変な状況になるってあたりと思われ
Cでいえばいきなりポインタ使おうとしたとか最も難解な標準関数である
printfに首つっこんだとかそんな感じ
>>251
>コンストラクタに特別引数がない限り、
>オブジェクトはnullで、数字は0とか0.0とかで全て初期化される。
何だそれは。
257デフォルトの名無しさん:04/05/10 19:09
>>コンストラクトはもういいだろう。
ところで、JAVAプログラマになりたいんだが、swingで俺はたまに、本をみないと
プログラムできないときがある。やっぱプロのプログラマって本とかみないよな
職場で、入門書等読んでるJAVAプログラマっているのか?
あくまで相談スレだから板ちがいとかいわないでくれ・・・
本なんか好きに読めばいい。
でも swing 程度で、いつまでもちびちび読んでて欲しくないな。
プログラミング自体の経験が少なければそれも仕方なかろうが、
コモンセンスの養われてる奴は web に落ちてる APIDoc (ないし tutrial) で充分。

だってよそから標準外のライブラリひっぱってくるとき、大抵、それに関する本はないんだぜ。
そういう機会が商用アプリ開発でどれだけの頻度あるかは知らないが。
259デフォルトの名無しさん:04/05/10 19:23
あの膨大なAPIをつかいこなせるやつって。もしかして英語がぺらぺらか
JAVAやる前に英語を勉強したほうがいいのか?
そんなん、JavaDocみればわかるんだから関係ないだろ。
日本語のJavaDocもあるし。

ついでに>>225もみとけ
261デフォルトの名無しさん:04/05/10 19:29
>>259
標準のクラスライブラリなら日本語もあるでしょ。
それ以外のライブラリは自力で読むね。
オレは大学の2年間で英語の技術文書読まされて、それ以外の英語力は中学生なみだけど、
本で言うと1ページ辺り2,3個単語調べれば読み進めていける。
訓練訓練。英語なんて簡単だ。
263デフォルトの名無しさん:04/05/10 19:36
確かにメソッドの説明は日本語だが、クラスは全部英語だよな
その英語の解釈は皆どうしてるんだ?
全部英語って、説明のことか? クラスの説明も日本語だろ
それともクラス名のことか? それならメソッドだってフィールドだって英語だろ

なんにせよ「普通に読んでる」としか答えられないけどな。
>>263
クラス名の意味わからなかったら辞書ぐらい引けよ。
中学生英語もわからないならプログラマなんか辞めたほうがいい
英語の成績とプログラミング言語に関連性なんていつできたんだ

267デフォルトの名無しさん:04/05/10 20:28
>>266
プログラミング言語じゃなくて、プログラマね。
少なくともIT関連の技術職じゃ、英語必須だと思うが。
>>267
しゃべれなくてもいいけど読めないことには人より1年以上遅れるね。
「日本語の解説本買わなきゃできません」なんて言っているようじゃ・・・
金もかかるし。
269デフォルトの名無しさん:04/05/10 20:38
まぢで・・・英語いるんか・・・
JAVAって英語いるんかよ
stringって中学英語じゃないだろ、、bufferとかも・・・
270デフォルトの名無しさん:04/05/10 20:49
辞書買え。
単語のことで中学英語がどうとか言うのは愚か。
「ダウンロード」「アクセス」「リロード」「リトライ」「シャットダウン」
これらが何のことだか、「中学で習わなかった単語だからどうこう」と文句たれるのか君は?
漏れらの主な仕事相手は「困ったときには英語を話す箱」だからな。
エラーメッセージのおおまかな内容くらいは見ただけで分からんと効率が悪すぎる。

それにIT産業は末端の実務労働者でも最新の技術を要求される産業。
最新の情報ってのは分野に関わりなく英語で書かれてるもんだ。

最新情報に限らず、英語が分からないだけでインターネットの情報の半分以上が使えないのも痛い。
コンピュータ関係はネット上に最も情報が溢れている分野だからな。

おまけに、プログラミング言語ってのは英語ベースで作られてる。
英語が分かれば予約語なんかの意味も分かるわけで、新たな言語の習得にかかる負担も小さい。
>>272
>英語が分かれば予約語なんかの意味も分かるわけで

それは解らん方でもよい。某日本語プログラムなんて気持ち悪くって(w
Jakarta なんかの英文ドキュメントの頭から最後まで読めるかっつうと無理だけど、
API 仕様とかエラーメッセージぐらいなら大体分かる。
というより、仕様を読んで英語を勉強しているのかもしれないw

いよいよダメなときは excite 翻訳。
275デフォルトの名無しさん:04/05/10 21:15
そうか・・俺もクラスとかの英語の意味がわからんから
どうも、覚えわるくて、いつもスペルまちがいで、エラーがでる・・
英語勉強か・・・鬱
276245:04/05/10 21:17
>>246-255

わかりやすいように、いろいろ書いたことが裏目に出てしまったようで・・・すいません。
聞きたい内容は、249さんが解説していただいたとおりでございます。
皆さんの丁寧な説明で、理解することができました。
本当に、ありがとうございます。

今度はもう少しましな、日本語で質問させていただきますので、
そのときはまたよろしくお願いします。
277デフォルトの名無しさん:04/05/10 21:29
エクリプスつかってる。args[]で引数いれて実行するタイプのプログラムがある。
しかしエクリプスでは実行ボタンしかないんで引数がいれられん。どうすればいいか
>>277
日本語化してる Eclipse 2.1.2 だと、実行->実行->引数->プログラム引数 で設定できる。

基本的にスレ違いなので Eclipse スレ行って聞いてくれ。
279デフォルトの名無しさん:04/05/10 21:35
わーい、ありがとう。もれ基本的に攻撃的でこんなによろこんだレス返したこと
ない
280デフォルトの名無しさん:04/05/11 00:01
javadoc で API を作成するため、日本語でコメントを入れたのですが、
生成されたコメントの日本語の部分が ??????????????????
のようになってしまいます。
どのように解決すればよいのでしょうか。
環境は debian woody 。
java は j2sdk1.4.2_30 で、コメントの文字コードは euc-jp で入れました。
対処法をご存知の方、どうぞよろしくお願いします。
>>280
javadocのヘルプとか、ドキュメンテーションの「SDKのツール」とかを
マズ読んでみよう。
これじゃね?
-encoding <name> ソースファイルのエンコーディング名
283デフォルトの名無しさん:04/05/11 01:07
くだらない、質問をサラッと答えてください。

System.Out.println("test");

System.Outはなぜ、必要なんですか?

これは、ObjectクラスのSystemクラスのOutクラスのprintlnというメソッド でとっていいんですかね?
java.lang.System {
 static final public PrintWriter out;
  ・・・
}
ってことだったはず。多分。
>>284
out は PrintStream だし、確か final でもないよ。
>>283
> これは、ObjectクラスのSystemクラスのOutクラスのprintlnというメソッド でとっていいんですかね?
間違い。java.lang.System クラスのクラスフィールド out の println というメソッド。
287デフォルトの名無しさん:04/05/11 01:34
ふぃ、フィールドってなんですか・・・?(−−;
値を持つものって書いてあったけど・・・。
>>287
「クラスフィールド」は、他の言葉使うと「クラス変数」とか。

単に「フィールド」って言った場合、文脈によっては「インスタンス変数」だったり、
「クラス変数」および「インスタンス変数」だったりする。
289デフォルトの名無しさん:04/05/11 10:53
OSがME、メモリ128しかないんですけど、IDEをいれたいです。
なんかいいのないですか?
みんなXPばかりで。。コマンドうつのめんどいです、、
290デフォルトの名無しさん:04/05/11 11:01
>>289
eclipseならいけないか?

だが、苦労して試行錯誤するより、とっとと電器屋行ってメモリとXP Pro買ってきた方がいいぞ。
>>289
NetBeansは、インストーラーは動かないけどZIP版なら動くはず
ttp://www.netbeans.jp/download_3_6_re.htm
ダウンロードサイトは登録が必要に見えるけど、「Click Here」で飛ばせる。

bin/runidew.exeで起動。
メモリ128MBの場合はbin/ide.cfgの
 -J-Xmx96m

 -J-Xmx48m
にする
ME, 128MB, PenIII 600 で Eclipse はしんどかった
でも規模が小さければ・・・20ファイル x 500行くらいなら無問題
293デフォルトの名無しさん:04/05/11 11:28
staticフィールドのCollectionが、synchronizedな単一のメソッドからしかアクセスされない場合は、そのCollectionのフィールドをCollections.synchronized〜でsynchronizedにする必要はないよね?
保証できるならね。
あ、そのメソッドがstaticじゃないなら、どうだったか。
296デフォルトの名無しさん:04/05/11 11:48
>>295
確かにメソッドもstaticじゃないとダメですね。
ありがとう。
297デフォルトの名無しさん:04/05/11 15:10
args[0].equals(“banana”)

これは、args[0]というオブジェクトの内容がbananaであるかの真偽を返すという意味でっか?
文意をそのままとれば、そう、そのとおりなんだけど、主語がちょっとひっかかるなぁ。
まぁいいや。
>>297
普通の場合は >>298 が答えてるので、ひっかけ問題だった場合の回答をしておく。

全角の「“」と「”」を使ってるから、args[0] というオブジェクトの内容が“banana”という識別子を持つ変数と同じ内容であるかの真偽を返す。
“banana”がローカル変数か、インスタンスフィールドか、クラスフィールドかは文脈依存。どれでもなければコンパイルエラーになる。
300デフォルトの名無しさん:04/05/11 15:37
皆さん、どうもありがとう(ノд`)
アプレットで、ボタンを下に配置したいのですが、どうすればいいでしょう?
当方j2sdk1.4.2_04です。
>>301
出たな、アプレットだろうが何だろうが関係ない質問でいちいち「アプレットで」と書く初心者。
BorderLayout でも調べてみ。
それで気に食わなかったら FlowLayout な Container を SOUTH にあてて、
そこに add してみ。
レイアウトが分からないという初心者はNetBeansでいろいろいじっておぼえるといい
304デフォルトの名無しさん:04/05/11 16:40
urlを指定して逆コンパイル出来るサイトが前あったのですがURLを忘れてしまいました。
どなたかご存知の方はいないでしょうか??
305デフォルトの名無しさん:04/05/11 17:46
コンストラクタとinitの違いってなんですか
306デフォルトの名無しさん:04/05/11 17:50
redhat9にtomcat5いれたのですが
jspのブラウザでのエラー画面で日本語部分が
????????????????
になってしまいます。catalina.outにはちゃんと日本語で
出てるのですが、考えられる原因はなんでしょうか?
307デフォルトの名無しさん:04/05/11 17:50
>>305
initは独自メソッド。明示して呼ばないと呼ばれない。
コンストラクタはnewする時点で呼ばれる。
308デフォルトの名無しさん:04/05/11 17:51
JTextField.textField = new JTextField();

textField.getDocument().addDocumentListener(new....)

JTextFieldクラスにaddDocumentListenerメソッドがないのに
なんでつかえるの?
309デフォルトの名無しさん:04/05/11 17:52
>>306
tomcatを実行してるユーザのlocaleだかLANGをチェックしてみよう
310デフォルトの名無しさん:04/05/11 17:52
>>308
親クラスがそのメソッドを持ってるから。
311デコ(ポルト):04/05/11 17:55
キー値
110
120
130
210
220
310
320
350

というVector変数があったとき、
この中で

全てのキーで共通に持つ値だけ取り出したい時

上で言う、10と20だけ取り出したい時はどうすれば良いでしょうか??
簡単そうだけど、テンパってしまいました。
312デコ(ポルト):04/05/11 17:56
tabだめなんですね・・・

キー   値
1     10
1     20
1     30
2     10
2     20
3     10
3     20
3     50

です
313デフォルトの名無しさん:04/05/11 18:00
textfield.getDocument.addDocumentListener(new ...)

JTextFieldクラスにaddDocumentListenerメソッドないのになんで使えるの?
314デフォルトの名無しさん:04/05/11 18:00
すまん、2重かきこみしてしまった、親クラスってどのくらす?
調べたけどなかったぞ
>>312
ぐるぐる回してなんとかするっきゃないんじゃない?
>>308=313=314
javadocって知ってる?
ttp://java.sun.com/j2se/1.4/ja/docs/ja/api/
>>305 307
ひょっとしてアプレットのことじゃないか?
コンストラクタ、start, stop, init, destory にそれぞれ System.out.println かなにかしかけて、
ページ移動とか再読み込みとかキャッシュ消去とか、いろいろやってると、
それぞれがいつ呼ばれるか分かると思うよ。
318デフォルトの名無しさん:04/05/11 18:11
ちなみにテキストフィールドの挿入が行われた際の変更の監視をやてるんだけど
変更の長さと始点を取得して変更をラベルに反映さしたいんだけど
String str = label.getText(); ←現在のラベル
int offset = e.getOffset(); int length = e.getLength();
String doc= e.getDocument.getText(offset,length);
label.settext(str.subString(0,offset)+doc+str.subString(offset,str.length()));
ここでなんで追加された文字列のdocを足してるの?
(0、offset)で追加前、(offset,str.length())で追加後だよな・・
まじで、docを足す理由をおしえてください。
>>314
全てのクラスは先祖が Object 。
間違っても「無い」なんてことはありえない。

>>318
もうすこしゆっくり考えてみ。その変の挙動は、やったこと無いから分からんけど、
なんでそういう式になってるかは分かる。
ちなみに、コピペもできないようなプログラマは大成しないぞ。
320デコ(ポルト):04/05/11 18:17
>>315さん

まあ、そうなんですが
どう回せばいいのかも・・・
321デフォルトの名無しさん:04/05/11 18:18
>>311
あんまりスマートじゃないが。
結果は、resultの中に。

HashSet allKey = new HashSet();
allKey.addAll( key );
HashSet allValue = new HashSet();
allValue.addAll( value );

ArrayList result = new ArrayList();
for ( Iterator ite = allValue.iterator(); ite.hasNext(); ) {
Object val = ite.next();
HashSet keyChecker = (HashSet)allKey.clone();
for ( int i = 0; i < value.size(); i++ ) {
if ( value.get( i ).equals( val ) ) {
keyChecker.remove( key.get( i ) );
}
}
if ( keyChecker.size() == 0 ) {
result.add( val );
}
}
322デフォルトの名無しさん:04/05/11 18:45
面接にいくたびに、プログラマやってる知り合いはいますかと
きかれる・・俺は独学でJAVAを勉強したから知り合いはいね・・
お前ら、俺の知り合いってことでいいよな。
頑なに大文字で書くんだな君わ
そんな奴に 知り合い扱いされたくない
それってどういう面接なんだ?
プログラマの友達がいるいないってのは何の意味が?

それにしても大文字かどうかにこだわるやつってまだいたのか
俺はこだわってないけど
過去こだわってる奴が指摘したのに対して完全無視なのが
おそらく万事においてそういう調子なんだろうなという空気を匂わせ、
それが気に入らない
>>324
大文字で、おまけに全角だしなぁ。
327デコ(ポルト):04/05/11 19:13
>>321

やってみます!
アリガトウゴザマース
328306:04/05/11 19:23
>>309
すいません、どこでチェクできるのでしょうか?
310と319は脳障害。

>>308
textField.getDocument()
ここまででjavax.swing.text.Documentが返ってくる。
そのDocumentのaddDocumentListenerを呼び出してるんだよ。
330306:04/05/11 19:33
>>306
5.0.19固有のバグだったようです。
以下、参考

Tomcat5でHTTPエラーメッセージが一部文字化け
http://www.jajakarta.org/kvasir/bbs/technical/616?msg=6#msg2574
Tomcat5.0.19のエラー画面の文字化け修正
http://www.fk.urban.ne.jp/home/kishida/kouza/tomerr.html
jakarta bugzilla
http://issues.apache.org/bugzilla/show_bug.cgi?id=28875

回答いただいた方、ありがとうございました〜
331ディーゴ:04/05/11 20:00
Javaで右文字埋めってどうするんですか(SQLのrpadみたいのもの)?

"1"
"22"
"333"

とかを全て同じ文字列長にしたい。

"1 "
"22 "
"333 "

のように
>>331
length()とって足りない分forでまわしてスペースが普通じゃないか
>>331
標準APIには無いので、自分で書くかJakarta Commons LangのStringUtilを使といいよ。
以下参照。
ttp://jakarta.apache.org/commons/lang/
ttp://jakarta.apache.org/commons/lang/apidocs/org/apache/commons/lang/StringUtils.html#rightPad(java.lang.String, int)
334319:04/05/11 20:22
>>329
ごめん。>>310 を信頼しきって、質問本文を読まず、
>親クラスってどのくらす?
>調べたけどなかったぞ
親クラスが無いといってるのだとおもった。
脳障害はきつい。せめて脳なしくらいにしておいてくれ。
すみません 教えてください。

File f = new File("C:\\");
で指定したディレクトリのファイルの読み込みをしたいんですが
ファイル名順にひとつづつ処理したいんですがどうしたらいいんでしょうか?

336デフォルトの名無しさん:04/05/11 20:28
>>329
getDocument()はJTextFieldクラスではcomponetクラスの継承のgetDocument()?
DocumentEvent e でe.getDocumentはまたちがうメソッド?
メソッド名は同じだけど、このへんわかるかたいたらおしえてください

ディレクトリを開くんだったらいっそ変数名 d にしたら?などと余計なことに突っ込みつつ。

String[] filenames = f.list();
SortedSet set = new TreeSet();
set.addAll(Arrays.asList(filenames));
for (Iterator it=set.iterator(); it.hasNext(); ) {
 String filename = (String)it.next();
 File file = new File(f, filename);

 //処理

}

なんか、こんな感じで。
338デフォルトの名無しさん:04/05/11 20:38
>>337
ありがとうーー感謝感謝。
339デフォルトの名無しさん:04/05/11 20:46
String doc =e.getDocument().getText()
てのがあったら、
Strin doc= e.getDocument() doc.getText()
って言う風になるんですか?メソッドの連結ってあまり入門書にのってないから
意味不明
341デフォルトの名無しさん:04/05/11 20:55
redhat9にデフォルトで入ってるjdk1.3ってどうやって消したらいいんでしょうか?
rpmでもないみたいだし・・・。
>>339
何と何を連結したいの?
>339
hoge = e.getDocument();
doc = hoge.getText();
と書くと分かりやすいか?
344デフォルトの名無しさん:04/05/11 20:57
数学とプログラムの類似点、相違点
どない思います?
>>341
rm
>>344
数学は買い物、プログラムは料理。
関係はあるけど次元が別。
347341:04/05/11 21:02
>>345
単純に消すだけだとゴミ残ったりしません?
>>347
java はそんなややこしいもんじゃない

んが、実は rpm だった、とかだと勿論イヤンなことになろうな
質問です
12個ほどの変数の中の数が
全て違うかチェックしたいのですが
全て入力する以外に方法はありませんか?
質問です
12個ほどの変数の中の数が
全て違うかチェックしたいのですが
全て入力する以外に方法はありませんか?
うわッ

2重かき込みしてしまいました
エラーがでたのでもう一度やったら…
すみません
>>349
12×(12-1)=131パターン比較する必要があるな。
総当たりリーグ戦の組合わせ表を思い出せ。

つーかJavaに限った質問じゃないじゃん。
>>352
暗算まちがえた。132だ。

ついでにもひとつヒント
「二重ループ」
354デフォルトの名無しさん:04/05/11 21:58
Mapでkeyのある位置(index)を取り出したいんだけど、
正直にサーチする以外でいい方法ありますか?
>>352
さらに 1/2 するの忘れてないか?
連想配列(set)にでも叩き込んで重複が無いかチェックしろ。
>>354
Map は key と value を結びつけさえすればよいので、index とか位置とかいった概念は必要ない。
358356:04/05/11 22:07
Mapだな。訂正。
>>356
連想配列っつったら Hashtable とか Map では?
>>356
Mapのキーは重複ないだろ
>>360
重複があったら分かるじゃん、って話じゃないの?
>>337,338
String[] filenames = f.list(); なんてやらずに
File[] files = f.listFiles(); でいいじゃんか。
363デフォルトの名無しさん:04/05/11 22:50
プログラムなんて動けばいいんだよと・・・先輩はいってた。
動けばいいんだという考えが動かないプログラムを作る
365364:04/05/11 23:04
といってみるテスト
JDK 1.1 世代なので dir.list() と書く癖が抜けない、に一時ファイル10個。
367デフォルトの名無しさん:04/05/11 23:14
数学とプログラムの類似点、相違点
くわしくお願いします
>>367
学校のレポートは専用スレで
類似点:
似たようなものをどんどん抽象化してまとめて取り扱えるようにしていくところ。

相違点:
数学では体系の美しさが何よりも重視される。
プログラムではコーディング美しさもさることながらそれよりも性能が重視される。
金になるかならないか。
371デフォルトの名無しさん:04/05/11 23:45
》368教えてください
テキストファイルをダウンロードさせるサーブレットを作ったんだけど、ダウンロード画面で保存ボタンや
キャンセルボタンを押した後に、どのボタンを押したかをサーブレット側で知る方法ってあるのでしょうか?
保存ボタンを押した場合のみ実行したい処理があるのですが、どうやって保存ボタンを押したかを知れば
良いかが分かりません・・・。

環境は
・WebLogic7.0
・J2SDK1.3.1
・IE6.0
です。
>>372
サーバー側には何も飛ばないはずですので、できないんでわ。
IEにその処理を組み込んでやってください。
374デフォルトの名無しさん:04/05/12 00:33
頭の悪い子から質問です
ttp://black.sakura.ne.jp/~third/programming/java/java7.html
ここの
int ary[][] = { {10,20} , {30,40} , {50 , 60} };

System.out.println(ary[0][0]);
System.out.println(ary[0][1]);
System.out.println(ary[1][0]);
System.out.println(ary[1][1]);
System.out.println(ary[2][0]);
System.out.println(ary[2][1]);
この多次元配列のary[1][0]、ary[1][1]っていう配列番号の並び方がどうもわかりません。
2進数かと思いきやそうでもないし、なんでこんな桁の上がり方するんでしょ?
おせーてください
int ary[][] = {{10,20}, {30,40}, {50,60}}; をよく見ろ。
一番外側の {} の中には 3 つの要素がある。
それぞれ ary[0] = {10,20}, ary[1] = {30,40}, ary[2] = {50,60} だ。

ary[0] = {10,20} をよく見ろ。
一番外側の {} の中には 2 つの要素がある。
それぞれ (ary[0])[0] = ary[0][0] = 10, (ary[0])[1] = ary[0][1] = 20 だ。

以下略。
>367
マルチポストは帰れ。

>374
2列*3行のマトリックスを考えればいい。
  0 1
0 10 20
1 30 40
2 50 60
最初の添え字が行、二番目の添え字が列に相当する。
377374:04/05/12 00:56
ありがとうございます。ちょっとかしこくなりました。
>>367
数学とそろばんの使い方の類似点、相違点
っていったら比べることの無意味さがわかるかな?
379310:04/05/12 10:34
やべ。俺、脳障害だよ。
というか、よく見ずにレスしてた。すまん。
>>379
Javaでnyにかわるソフトを作ったらゆるす。
381310:04/05/12 11:12
nyにかわるソフトを作ると主目的がny制作と同じになってとっつかまる可能性が大きい。
やるとしたら、まったく違うお題目を掲げて開発し、かつnyと同じことが機能の一つとしてできてしまうソフトにするべき。
やらないけど。
382310:04/05/12 11:13
ごめん、言い方間違った。

×やらないけど。
○俺の技術レベルじゃできないけど。
そのソフトを使った誰かが著作権侵害行為を行う可能性を予見できなければ幇助に問われることはないだろう
nyは意図的にトレース不可にしてたからまずいんじゃないの?
Windows専用でMacなどがなかったことで、マルチ環境の要望も多いみたいだから、Javaで作るのはいいのかも。
P2Pのライブラリもあるし
主張したい事はいろいろあるが、スレ違いなので黙っておく。
>>385
別スレでは黙ってないし?
387デフォルトの名無しさん:04/05/12 16:59
今日も面接へいってきた。
面接官「プログラムは何を?」
俺「CとJavaを少々・・Javaをやりたいんですけど
面接官「Javaは最低でも5年はやってないと使い物にならないんだよね」
俺「うぜーから退室」
Javaは一体どれぐらいできるようになったらいいんだ・・だれかその指針を
示してくれ。
>>387
作ったものを自慢しれ
>うぜーから退室
最悪ですね。

>>387
http://www.hellohiro.com/
実用的なアプリを作るに当って、
ここの右肩に並んでるのを、全て(同時でなくても)いい)駆使したことがあればまぁま合格。
390ルケ:04/05/12 17:21
iteratorの.next()で次イっちゃったやつを
戻すなんて事はやっぱ出来ないんですか?
だめ。
Object last; かなんかに「さっきの」として使えるように入れとくか、
一旦 List に入れて index で拾えるようにしなさい。
>>390
ListIteratorクラスならpreviousってメソッドがある
>>389
半分くらいでいいよね。
394デフォルトの名無しさん:04/05/12 17:30
>>393
半分使ったことがあって、残り半分も読んでさくっと応用できれば合格やね
>>389
右? 左じゃなくて?
半分でもなんでもいいけど、その仕事に必要な物を中心で

大概javaは業務系だろうからsqlも最低限の知識必須で
servlet/jsp、コネクションプール、swing、ダイナミッククラスロード
このあたりが軽く理解できればだいたい大丈夫かと

あとは分からなくてもhelpやネットで検索して解決できる能力だな

即戦力が欲しい場合と社員として教育する気があるのかなど
募集タイプにもよるだろう
397389:04/05/12 17:42
すまん。
俺、文字揃えは普通 left alignment 、人の利き手は普通右、
という関係で left の訳語が右になっちゃってんだ。
ページを擬人化して彼から見て右とも言えるが。
人に右といわれると左見るし 自動車教習とかちょー怖かった

前にも似たような奴がいて興味深かった。
>>397
いいわけの意味がわからん。
ま、わかったからいい。
java始めたばかりであまりわからんです。「初めてのjava」を読みました。
ジョイスティックからの入力を得たいのですがどうすればよいでしょう?
前、cでプログラムを書いていたときはドライバーが提供する関数を使っていたんですが、
javaでそういうのについて詳しく知りたかったらどうすればいいでしょう?

ところで、
javaではドライバーとか作れたりします?
システム依存の部分は無理ですか?

もひとつ。
プログラム内から、別のプロセスを実行するにはどうすればよいでしょう?無理かなぁ…
(スレッドのように結びつきが大きいものでなくて、機能ごとにプロセスを立ち上げて、ネットワーク通信で大きな機能を成し遂げたいです。
>>399
> ジョイスティックからの入力を得たいのですがどうすればよいでしょう?
https://jinput.dev.java.net/

> javaではドライバーとか作れたりします?
普通はしない。

> プログラム内から、別のプロセスを実行するにはどうすればよいでしょう?
java.lang.Runtime#exec()
>>399
Javaでメソッドのインターフェースのみを記述し、JNI(javahコマンド)で
そのインターフェースに対応したヘッダファイルを吐き出すことができる。
あとはそれを使ってVC++なりC++Builderなりgccなりでそのインター
フェースの中身を実装すればいい。
Javaで直接デバイスを制御するわけでは無いので、いわゆるピュアJava
では無いけれど、こうすればDLLでしか提供されていないAPIにも
アクセスできるよ。
要するにJavaだけでドライバ書くのは無理。Javaの動作原理考えればわかるだろ。
まぁ将来classファイルを直接実行できるハードウェアが出てくれば可能かもしれないけど。
やだなぁ、ガベージコレクタで動きがとまるドライバー
404デフォルトの名無しさん:04/05/12 21:43
java.awt.CanvasにDrawStringで文字をかいています。
FontMatoricsを使ってCanvasの幅に文字が収まるように
計算しているのですが、右端が少し欠けてしまいます。
また上の一行がかけてしまいます。
上はg.drawStringのときにYを0に指定しているので、
ぴったりあっていると思うのですが・・
一般的にマージンを持たせるものなのでしょうか?
ScroolBarにフォーカスがあたると、スクロールバーが点滅してしまうのですが、点滅させない方法ありますか?

あとTABキーで各コンポーネントにフォーカスが移動しないようにしたいのですが、
どのようにすればよいでしょうか?
>>404
> 計算しているのですが、右端が少し欠けてしまいます。
メソッドの説明読み直して、自分が考え違いしてないか確認した方がいいかもね。

> 上はg.drawStringのときにYを0に指定しているので、
そりゃダメだわ。

http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/awt/Graphics.html#drawString(java.lang.String,%20int,%20int)
> 左端の文字のベースラインは、このグラフィックスコンテキストの座標系の位置 (x, y) にあります。
>>405
> ScroolBarにフォーカスがあたると、スクロールバーが点滅してしまうのですが、点滅させない方法ありますか?
AWT の ScrollBar なら多分無理だったような。

> あとTABキーで各コンポーネントにフォーカスが移動しないようにしたいのですが、
自分の望むような動作をする java.awt.KeyboardFocusManager を実装するとか、
java.awt.Component#setFocusable(boolean) するとか、他にもいろいろ。
>>404
中学くらいで英語習いたての頃、4本線の上にアルファベット書いたっしょ?
あの下から2本目が y座標値だと思いねぇ。
日本語文字の下端も大体そこに合わさる。

http://java.sun.com/j2se/1.4.2/docs/api/java/awt/FontMetrics.html
409デフォルトの名無しさん:04/05/12 22:31
リストとかコンボボックスで項目取得のほかによくインデックスをかえすとか
でてきます、インデックスってなんですか?まじでおしえて
>>409
英語の辞書でも調べれ。
411デフォルトの名無しさん:04/05/12 22:35
>>410
そういう意味じゃないから
>>411
どーゆー意味ですか?
>>409
そこでいうインデックスっていうのは、データが入っている順番と考えれば
簡単かも。
その順番は、ゼロが始まりで、
0,1,2,3,・・・
って感じで番号が割り当てられているイメージ。
414デフォルトの名無しさん:04/05/12 22:47
おまえら、すげーよな・・・いつも思うんだが・・・
まじすげーよな尊敬するよまじで、java歴何年?
415デフォルトの名無しさん:04/05/12 23:12
参考書などを見ると
インターフェースって
それをインプリメンツしたらその中のメソッドは必ず記述しなければならない
ただそれだけの事なのでしょうか?

それだと必ずしも必要ないと思ってしまうのですが?
>>415
>それをインプリメンツしたらその中のメソッドは必ず記述しなければならない
考え方が間違ってる。メソッドを必ず記述しなければならない、
という状況を作り出すためにインタフェースを定義する。

例:
「ボタンが押されたら教えてやる。
 void actionPerformed(ActionEvent) を定義しとけ。そのメソッド呼んでやる」
という決め事がまずあって、
「要するに ActionListener をインタフェースとして備えとけ。
 実態として何クラスでもいいわ。インタフェースがありさえすればいい」
とすることが出来る。
もしインタフェースが無かったとしたら、Listener 登録は
addActionListener(Object) なるメソッドになってしまう。
ActionListener でないものを追加しそうで、あやふやで気持わるいっしょ。

417デフォルトの名無しさん:04/05/12 23:26
必要はあるよ。
418デフォルトの名無しさん:04/05/13 01:30
java beansの説明で
get〜、set〜という風にあるのですが
つまりbeansとは変数にget、setをつければいいだけのことでしょうか?

beansというのはつまり所謂getter setterというのは同じことでしょうか?
>>418
他にも引数なしの public なコンストラクタが必要とかなかったっけか?
beans とは getHoge/setHoge/isHoge というメソッドを持ち
引数なしの public なコンストラクタを持ち
Serializable を実装した「クラス」のことをいう。
さらにイベントを扱える beans は
addHogeListener/removeHogeListener というメソッドを持つ。
>415
例えば自動車。
どこのペダルを踏めば加速/減速できて、どこを回せば旋回できるとかいう部分がインターフェイス。

トヨタの車に乗ってた人間がGMの車に乗り換えても問題なく運転ができるでしょ?
これは、インターフェイスが統一されているから。
宙を浮こうが時速300km出ようが、インターフェイスさえ同じであれば使用者は問題なく運転ができる。

自動車を作る側にしてみても、このインターフェイスさえ満たせば「自動車」として通用する事が保証される。
インターフェイスさえ他の車と共通なら、中身は原子力で動作しようが単三電池駆動だろうが自由。

このように、お互いの接点の部分だけを規定し、中身で何をしてるかには感知しない、ってのがオブジェクト指向の基本。
interfaceの存在はそれを実現するしくみ。
422デフォルトの名無しさん:04/05/13 02:36
J2EEの概念として
アプリケーションサーバ+WEBコンテナがだとすれば
J2EEサーバとは何を指しているのでしょうか?

>>422
J2EEはいろいろな技術を含んでる。
その機能をすべてもってればJ2EEサーバー。
424デフォルトの名無しさん:04/05/13 03:25
javaでwondowsの音量を操作することってできるんでしょうか?
>>424
JNI
426デフォルトの名無しさん:04/05/13 04:03
>>425
どうもありがとう。
ちょっと調べたけどc言語を利用する方法っぽいですね。
javaオンリーでは無理ということですかね?
実装できるかわかりませんが、ちょっとJNIってやつを
調べてみます。
427405:04/05/13 08:23
>407
ありがとうございます。
スクロールバー無理ですか・・・。残念。
KyeBordFocusManagerとsetFocusableは
使用しているJDKか1.1なので、使えないのです。
prcessKeyEventをオーバーライドしてみたのですが、
うまくいきませんでした。
SJISでエンコードされたテキストを
LINUX環境のJavaで読み取って、
GUIに表示すると文字化けします。
SJISからEUCにコンバートしないといけないのでしょうか?
また、テキストがどのエンココードかを
明示的に指定せずに、Javaが動作しているマシンで
正しく表示するにはどうすればよいですか?
テキストファイルはいろいろなエンコードで
作成される可能性があり、動作環境も
LINUX WINDOWSなどいろいろあるので
自動でエンコードを判断して、自分の環境で
表示できるようにコンバートしたいです
>>428
>SJISでエンコードされたテキストを  LINUX環境のJavaで読み取って、
>GUIに表示すると文字化けします。
>SJISからEUCにコンバートしないといけないのでしょうか?
じゃなくて、入力時、SJIS から Unicode に変換するよう明示する。

>また、テキストがどのエンココードかを
>明示的に指定せずに、Javaが動作しているマシンで
>正しく表示するにはどうすればよいですか?
ユーザが指定しない限り、根本的に不可能。
共通領域にあるコードを、どのエンコードとみなすかは判断しようがない。

>テキストファイルはいろいろなエンコードで
>作成される可能性があり、
ここにそもそもの間違いがある。
すみませんライセンスについて質問させてください。

JavaMailのjarファイルを含めた形での再配布は可能でしょうか?
検索してみると、
http://jetspeed-japan.sourceforge.jp/faq.html#sun-license-jar に

(JavaMailのjarファイルは)
サン・マイクロシステムズの バイナリコードライセンスに基づき公開されています。
これは、再配布の際にそのライセンスに同意する形にする必要が あるようです。
とのあります。

ライセンスの注意書きを入れ、バイナリライセンスのページへのリンクなりを入れれば再配布OK?
てかリンク入れなくてもライセンスに対する同意を求めればOK?
手をくわえなければそのままmail.jar/activation.jar配布していいんじゃなかろうか。
文句いわれても責任とらんが

ところでTomcat5がJavaMailバンドルしなくなったのは、なんかライセンスの問題なんだろうか。
質問です。
私は、これからjavaをはじめようと思っている者です。

javaの売りはシステムに依存しないことであると聞きます。
しかし、現実にはシステム依存の部分が存在すると聞きます。
また、バージョン毎に挙動がちがったりもすると聞きます。

これからjavaに浸かるにあたって、どのような点をに気を配れば問題がおきにくいでしょうか?
バージョンアップによっておおきくしよう変更がおきた点は、例えば何でしょうか?(文字で問題がおきたりしたと知人が言ってたりしました。)
バージョンアップで問題になる仕様変更はいまのところShiftJIS問題のみかと
今後はこれはないだろうと思いたいけどね
まぁ、java自身の問題ではない
言語仕様部分では問題になることはほとんどないはず


javaの売りは確かに環境非依存だけど、書く人によって依存するようなコードにできるし
まずは単なる一言語としてはじめるがよろし

そして環境依存コードを分離してそれが本当に必要なのか必要ならどう管理するのか
わかれば移植性の高いコードになる
これはjavaに限ったことじゃないけどね

Windowsでもバージョンによって動かないとかそんなのと同じ

>>432
マイクロソフトとは仲が悪いことを肝に銘じる。

Javaにあるバージョン問題とか互換性問題は、ほかのものを使えばもっとひどいことになる。
>>430
配布者が配布物のライセンスを熟知してないなど言語道断。
自分で binary code license 読め。
436デフォルトの名無しさん:04/05/13 15:17
読み込んだJPEGファイルの幅と高さを知るにはどうやったらよいのか教えてください。
よろしくお願いします。
Image#getWidth(ImageObserver), getHeight(ImageObserver)

Java において画像をファイルなどから読み込む場合、
2通り考えられる。

1) 旧来の Toolkit#getImage などを使う場合、遅延読み込みとなる。
つまり、Image インスタンスとしての実体はあるが、画像ファイルが読まれていない、
よってサイズも分からない、という状態がありえる。
paint メソッドなどで描画の必要性が出た場合に、裏で読み込ませておいて、
ImageObserver に読み込み終了したことを知らせてもらう形になる。
この手順がわずらわしければ、MediaTracker を使って明示的に強制読み込みさせられる。
このあとなら、ImageObserver を与えなくとも即サイズが分かる。

2) ImageIO を使った場合、Image はラスタイメージとして領域を即座に生成するので、
もちろんサイズもすぐわかる。ただし ImageIO が使えるのは 1.4 から。
438デフォルトの名無しさん:04/05/13 15:33
スーパークラスA(メンバにはint h=0がある)
その子クラス、B,C
とあった場合、
子クラスB,CでAを共有したいと考えたのですが、
AもしくはそのメンバhをStaticにする以外の方法って、
BとCのメンバにクラスAをセットするしかないんですかね?
>>438
クラスの継承というものを誤解してるんじゃないか。
俺には、「共有」という言葉がどういう目的で出てきてるのか判然としない。多分君の誤解ゆえに。
インスタンスを参照として持つなら分かるが。「クラスを共有」」とは??
「クラスをメンバにする」こともできない。
あるクラスのインスタンスへの参照をメンバとすることしかできない。

まず h はクラスフィールドなのかインスタンスフィールドなのか。
もしインスタンスフィールドであり、特定の a (Aのインスタンス) の h の値を知りたいだけなら、
B, C は A を継承する意味がない。
もし h がクラスフィールドなら、
public でもいいなら、やっぱり継承する必要はない。
protected にしたいなら、継承しなければならない。
440430:04/05/13 15:54
>>435
>>配布者が配布物のライセンスを熟知してないなど言語道断。
そだな(`・ω・´) すまんかった。
×継承しなければならない
ごめん、ぜんぜん必要ない。
private でも、継承する必要はない。

多分この説明じゃ分からんだろうな。
君が持ち出した A, B, C, h がなんのことだか分からんから、具体例も出せない。
要するになぜ B, C が A のサブクラスであるという前提が生まれたのか分からんと。
具体的にどんな処理をしたいか書いてくれれば、も少しましな答えが書ける。
質問があります。
Tomcat5.0.19を使用したWebアプリを開発しており、
HttpServletクラスを継承したサーブレットのdoGet()内で
getInitParameter("パラメータ名");
でweb.xml内に記述したパラメータを取得しています。

しかし、CactusのServletTestCaseを利用して
このサーブレットのdoGet()を呼び出すとこのパラメータが取得できません。
(nullが返ってきます)

ブラウザからアクセスしたところ、問題なくパラメータが取得できているので
ServletTestCaseの方に問題があると思うのですが。。。

テストケース内ではサーブレットのinit(config)を呼び出した後、
doGet(request, response)を呼び出しています。


原因について心当たりがある方がおりましたら情報をいただけないでしょうか?
>>438
子クラスといういいかたをやめろ。
継承は親子関係ではない。
進化前クラス。
進化後クラス。

進化させるのに必要なのは(ry
>>444
進化前・進化後でもない。
Javaでフォーム使うとsetSizeが影響されなくなるんだけど。なして?
フォームて何やねん。


以下邪推:
Frame に BorderLayout やら何やらを使った場合、
おのおのの Component が返す PreferredSize を元に、バランスよく配置される。
例えば Frame を pack すると、全ての Component が
できるだけ PreferredSize を満たすように
(隣との兼ね合いで無理なら、大きく)サイズが指定されて、配置される。
Frame を大きくすればそれなりに(Layout によりルールは違う)拡大する。
setSzie した大きさを確実に反映させたければ、null レイアウトにするなどして工夫すること。

あとは配置したい内容と配置基準によりけりなのでなんとも言えない。
他人の書いたjavaのプログラムを読んでいます。java歴短いです。

そこでThreadを拡張したクラス「でない」クラスで、
メソッドがsyncronizedされてるんですが、どのような効果があるんでしょうか?
このクラスを使用するクラスはスレッドをつかうかもしれない時に書いたりするんでしょうか?

というか何か根本的に分かってませんか?
449デフォルトの名無しさん:04/05/13 19:08
>>448
多数のスレッドから呼ばれる可能性のあるメソッドじゃないの?
描画パネルの正確な原点とサイズを得るのってどうやるの
jPanel.getLocationとjPanel.getSizeじゃ誤差が出ちゃった
>>448
public なメソッドがある限り、
全てのメソッドおよびフィールドは、外部から使用される。
public メソッドそのものは直接、private なものは間接的に。
そのクラスが Thread かどうかなんて全然関係ない。わかるか?

ここにインスタンスが一個あったとして、スレッドが二つあって、
それぞれから同時に触られると、困ることがある。
仮に copyAtoB() 、copyBtoA() という二つのメソッドがあって、
private なフィールドとして Collection a, b があってそれをアレするとすれば、
アレすると困るでしょ?

これを同時に行わせないなどのために、synchronized がある。
>>450
何に対する原点だかわかんない。
君、自分の質問自分で読んで分かるか?
コンポーネントを絶対座標で扱うことはまずしないしな
レイアウトマネージャによって動的に配置されるんだし
コンポーネントの座標が欲しい場合ってあるんかね
>>448
表面的にわかってないだけだとおもう。
そのうち慣れる。
まずはJavaをjavaと書かずにJavaと書くことからだ
>>454
javaって格のもJAVAってかくのも正式名称ではないがそんなにこだわるもんかね?
それよりこだわるんだったら(TM)とかのほうが重要かもしれんぞい

そういうところがjava厨とかいわれる所以だぞ、
とわざと小文字で書いてみる

だってsun自体GET JAVAとか書いてるんだしべつにどうでもいいんじゃねーの?
強調したいときはすべて大文字で書くしな
わざわざ同じレベルに降りてまで説教することないよ
Javaに慣れるとJAVAやjavaに違和感がある。
逆に、その違和感がないってことはJavaに慣れてない、っていう風にもとれる。
だからまずJavaって書くように、っていうアドバイスだな。
インデントちゃんとできてないコードが、未熟者のコードに見えるのと同じ感じで。

強調したいときにすべて大文字で書くからなんなん?
英語文化だと本来小文字で書くところを強調するために大文字で書いたりするだけだね。
で、そのとき、小文字にするところは大文字にするところよりも小さく書いたりする。
          , -‐'"´ ̄ ̄ ̄ ``ヽ
        /爪  ヽ `ヽ、`ヽ、   \
       / / !lヽヽ  \  \ \  }、  
.       / l l l ヽ ヽ、_弐_ --ヽ _ヽノノ!
      /! ll__l ヽ-‐' "┴─`  l/rヌ、ノ|   黙りなさい!
      !l/fri刀          >'〉} ノ!
         l ̄ 、 _      ,Lノノ |    
            ',  ヽ'´ヽ    / | 「||l!,| 
            ヽ、  ー'    / .| | | |!|  
           ``ー-ャァ' ´ _」、lLl l!|
             __ノ /==三三ヽL    
           / }ム/==ニ三-ァ-─‐ヽ
>>458
黙ってみた。
>>442
ServletTestCase#configはサーブレットコンテナ自身の
ServletConfigオブジェクトをラップしていて、
getInitParameter(String)を実行してもweb.xmlで設定したパラメタを
取得できないようになっています。
代わりに、ServletConfigWrapper#setInitParameter(String,String)を使って、
サーブレットに取得させるパラメタを設定します。
これは、web.xmlを設定しなくてもサーブレットのテストができるようにするためです。
パラメタがhogeだったときのテストとパラメタが指定されていない時のテストを
同じテストケースで実行しようとした場合、この方が便利ですから。
じゃ、web.xmlの検査はどうするんだ?と思うかもしれませんが、
それは「単体」テストの範囲を超えると、Cactusの開発者たちは思ったのでしょう。

この辺の話はこの辺に載ってます。読んでみてください。
ttp://jakarta.apache.org/cactus/writing/howto_testcase_servlet.html
461デフォルトの名無しさん:04/05/13 21:28
JCPADで初めてJavaに取り組んでいるんですが
いつもコンパイルエラーがでてきてしまします。

友人のPCから同じ状況でDLしたのでそういった面で
間違いはないと思うんですがこれはPATHの変数や
設定がおかしいからでしょうか?
462デフォルトの名無しさん:04/05/13 21:29
エラーによるだろ。
463デフォルトの名無しさん:04/05/13 21:33
>>462
エラーの内容は決まってシンボルを解決できませんと表示されます。
ちなみに、このソースファイルは友人のものでそれを友人の
PCで行うとコンパイルでエラーはでないんですが
私のだと先ほどのエラーが出てきてしまうのです。
ちゃんとした対処法が聞きたければ、ちゃんとエラーメッセージを書け。
>>463
入力ミス
あ、あれだ、packageに入ってるclassを、そのディレクトリでコンパイルしてるとか、クラスパスにドットが入ってないとか
467デフォルトの名無しさん:04/05/13 21:43
>>465
友人のからコンパイルを成功したものをFDにコピーしてもらって
そこからコンパイルしてエラーが発生する状況ですので
入力ミスはないと思うんですが・・・。
468デフォルトの名無しさん:04/05/13 21:45
classpath
469デフォルトの名無しさん:04/05/13 21:46
>>468
classpathってどういうことでしょうか?
人からソースをもらって、ちうことは、
自分では全然勉強も何もしてないことがいくらかあるわけだ。

いちから勉強すれば人に聞かなくても済むかもしれないのに、
行程を端折って行き詰まって人に聞いて進んでいくって情けなくならないか?
471デフォルトの名無しさん:04/05/13 21:49
クラスライブラリへのパス。
必要なクラスがクラスパスの中にないとダメ。
JCPADじゃなくてNetBeans使え。
3.6日本語版でたし。

Eclipseの設定できなそうだし。
473デフォルトの名無しさん:04/05/13 21:53
Javaの講義(新人研修)を受け始めて5日目、ついに念願の単語に
遭遇しました。すれ違いだが、言わせてください。




NullPointerException !!!!!!!!!!!!!!!!!!!!!!!!!
catch (NullPointerException ガッ!)
ぬるぽを先に知ってからJavaを始めるやつがいる、ということにカルチャーショックおよびジェネレーションギャップを感じた。
476デフォルトの名無しさん:04/05/13 22:00
Win2k JDK1.4.2_03でjava_gを使いたいのですがコマンドが見あたりません。
どうすれば使えるでしょうか?
メソッドの呼び出しを残しておきたいので -tmで起動しようと思っています。
>>475
ガッ
>>476
ガッ
479デフォルトの名無しさん:04/05/13 22:01
某所で見たJavaアプレットに興味を持ち、自分でも作ってみようと思い
先ほどJ2SDK1.4.2をインストールし、パスの設定を済ませました。

コマンドラインからHelloWorldという文字を表示させることはできたのですが、
それをブラウザ上で表示させようと思い

以下のようなコードを書き、

---------------
import java.applet.Applet;
import java.awt.Graphics;

public class java1 extends Applet{
public void paint(Graphics g) {
g.drawString("Hello Java World!!", 50, 30);
}
}
---------------

HTMLのソースに
<applet code=java1.class WIDTH=400 HEIGHT=200></applet>

このようにしたのですが灰色の画面のまま何も出ませんでした。
なにが原因なのでしょうか?
480デフォルトの名無しさん:04/05/13 22:03
ブラウザの設定。
>>478
なぜ叩く?w
482479:04/05/13 22:15
ブラウザのどのへんを設定すればよいのでしょうか?
インターネットオプションの詳細タブの
<applet>にJava2 1.4.2を使用〜
みたいなところにチェックして再起動してみたのですが、まだだめでした。

http://www.parkcity.ne.jp/~chaichan/src/jlearn01.htm
こういうのはきちんと表示されるのですが、ローカルで動作させる場合は
どのようにしたらよいのでしょうか?
483479:04/05/13 22:17
さっきSDKをインストールしたのですが、importするにあたり
他にもなにかインストールしなければならないものとかあるのでしょうか?
>>470

それはあれだ。

プログラミングすること、ソフトを作ることが目標なのではななく

卒業すること、資格を取ること、就職することが目標であり目的だからだろう。
Javaのコンソールの出番です。
486デフォルトの名無しさん:04/05/13 22:26
appletviewer hoge.html
DOS窓から打ち込んで試せ。
487479:04/05/13 22:36
>>486

プロパティファイルが読み込まれません。〜〜〜デフォルトを使用します。

と表示されたあと、アプレットビューワーが出てきてプログラム通りのものが
そこには表示されました。
488デフォルトの名無しさん:04/05/13 22:47
Core Javaの例題をrmicに食わせたのですが、

rmic -v1.2 ProductImpl
Exception in thread "main" java.lang.InternalError: Unexpected exception while defining class ProductImpl
  <<No stacktrace available>>
Caused by: java.lang.ClassNotFoundException: java.rmi.server.UnicastRemoteObject not found in [file:./, core:/]
  <<No stacktrace available>>

となってしまいます。
Windows用のj2sdk1.4.2_04を使っています。
SDK内を検索してみましたが、
かろうじてsrc.zip内にUnicastRemoteObjectを発見できただけでした。

同じような症状の人いますか?
489デフォルトの名無しさん:04/05/13 22:49
>>470
申し訳ないです、友人のというより研修先の講師の方から
いただいたソースファイルをコンパイルしたら
先ほどから申しています通りのシンボルが解決できません
というエラーメッセージが出てきてしまうのです。

研修さきではJCPADで作成していましてなんとかJSDKとJCPADを
DLして設定しなおしたんですがシナリオなどをかくソースで
先ほどのエラーが出てきてしまうのです。
友人にそれで相談したら設定がおかしいんじゃないのかと
いわれたんですがよくわからなくて。
490デフォルトの名無しさん:04/05/13 22:50
unsigned系の型が見当たらないのですが
これって仕様バグですか?
>>490
バグはおまえの頭だ
492448:04/05/13 22:56
>>449>>451>>454
返信ありがとう。このアホをもう少し教育してください。

例えばprivateな変数hogeがあって、
synchronizedな MethodAはhogeに1を加える。
synchronisedな MethodBはhogeを返す。
前者の効果は、確実に1を加えるためのものと理解できる。
後者の効果は、なんなのだろうか?
一つのsynchronizedな メソッドが実行されている場合は、
他のsynchronizedなメソッドは実行できない?
うーん。。。

>>490
char は符号無しだが。バカには仕様バグに見えるかも知らん。
Javaをコマンドラインから実行するとき、
「java Hoge args0 args1」
と、ウチではしています。

Hoge.classがなかったときに、わざわざ実行してExeptionにするのは何故なんでしょうか?
クラスファイルの指定は必須だろうから、「実行する前にファイルが無いと言えばいいのに」と思いました。
argsに入るのは、args0とargs1だけだし…
何か訳があるはずです。教えてくださいエライ人。

Jbuilderつかって、実行時に引数を与えるにはどうやって実行すればいいでしょう?
コマンドラインみたいのが見当たらなくて困ってます。
どこかにあると思うんですが、使い始めたばかりでわかりません。
495デフォルトの名無しさん:04/05/13 23:05
>>489
エラーのでるファイルをjavacで直接コンパイルしたらどうなるんだ?
496デフォルトの名無しさん:04/05/13 23:11
「実行する前にファイルが無いと言えばいいのに」
わざわざそうするよりも、クラスローダーがException返すようにすればいいから。
ObjectクラスのhashCode()って、具体的にはどんな値を返すロジックが一番多いんでしょう?
OSでのプロセス空間における、そのオブジェクトが占有するメモリアドレスを返すパターンが一番多いって聞いたことがあるんですが、本当ですか?
わけあってSSIを使用してjspファイルをhtmlファイルににい
くつもinclude(jsp includeではありません)しなければならな
いのですが、セッション情報などは問題なく取得できるので
しょうか?

どなたか、知っていらしたらご教授ください。
>>494
クラスを実行してるのではなく「java というコマンド」を実行してるから。
クラスが見つからなかったら「java コマンド」が exception を投げる。
>>494
実行時に指定するのはクラスファイルではなくクラス名(完全修飾名)ですよ。
.classは省略されているのではなく、クラス名として最初から不要なんです。
初心者で申し訳ない。
Stringクラスは変更不可と勉強しました。
例えば

String s = "test";
s = "test2";

上記のようなコードを書くとsは"tset"から"test2"に
なりますよね?
これは変更しているとことにならないのでしょうか?
>>501
s は "test2" に「変更された」のではなくて "test2" を「指すようになった」だけ。
"test" というモノが "test2" になったわけではない。
もともとの "test" は s に指されなくなったが
変更されないままどこかに存在し続ける(GC によって最終的には回収されるけど)。
>>501
それは String の参照が "test" を持つインスタンスから "test2" を持つインスタンスをさすように変化しただけ。
String のインスタンスの内容が "test" から "test2" に変化したわけではない。
昔の漏れと同じこと考えてるw
ま、みんな思うことだな。
506デフォルトの名無しさん:04/05/13 23:47
>>501
根本的にクラスの宣言は「参照」だからです。
変更不可能とは、実体が変更できないという意味。

class TEST{ ... };

TEST t = new TEST();
t = new TEST();

これは、最初のtの「内容」が変更された、とはいわないよね?
ポインタを知っていると話は早いんだけどね。
>>507
ああいう質問もでないだろうけどね。
509501:04/05/14 00:02
みなさん色々とありがとうございます。
まだまだ勉強不足で感覚的に
わかったかなーってレベルですが
これからも勉強がんばりたいです。。

それでお聞きしたいのですが>>501のコードを書いたとして
メリット、デミリットなどありましたら教えてください。
>>509
String s = "test";
の行がムダ。
単なるムダでメリットはない。
511479:04/05/14 00:12

javaのランタイムがj2sdkに対応してなくディレクトリを変更してあったので
java plug-inの部分がうまく動作してなかったみたいです。
とりあえずアプレットは動作するようになったのですが、

j2sdk1.4.2_04となっているディレクトリ名をj2sdkに変更した場合、
環境変数のPATH以外にどこを変更すればきちんと動作するのでしょうか?
>>494
まずマニュアルをよめ

メニューをよーくみてみそ
実行時設定ってのがあるから
513お勉強中。:04/05/14 00:35
ある数値データ群があって
最終的にint[]の形に格納したいんだけど
その総数がわからないときって
みんなはどうやってるの?。
最初に総数を数えてから?。
なんかいい方法あります?。
JEditorPane.setPage(String s) を使ってウェブページを読み込むとき、
ページの読み込み状況や、読み込み終了を知ることは出来ますか?
>>492
hogeが単なる一つのint変数ならその推理は正しい。
ていうかその場合は更新するほうのsynchronizedもいらない。

なぜなら
プリミティブ変数一つの更新がスレッドセーフであることは言語仕様で保証されているから。
(ただしint以下の大きさのもの)

だから
更新メソッドに排他がかかっているってことは2つ以上のプリミティブ変数またはオブジェクト等が
更新されているということ。
当然、読み出し側も複数の変数を参照したりして計算した結果を返す必要があるだろう。

このとき排他がかかっていないと
更新中のハンパなタイミングで結果を計算してしまう可能性がある。
516514:04/05/14 00:42
>>515
嘘ついたかもしれん。
更新側には排他いるよね。
配列を使うときに、例えば、
int hogeArray[][];
hogeArray = new int[2][3];
のようにしますよね?

別にこれで満足してるんですが、何か他の方法もあった気がします。
どなたか知ってませんか?
int[][] hogeArray = new int[2][3];
クラス内の変数を使うときに、
どうしてもthis.を付けたくてたまらなく、コード内がthisだらけなんですが、
他の人が読むにはイクナイ気がします。
やめたほうがいいですかね?
520デフォルトの名無しさん:04/05/14 03:15
やめたほうがいいと思う。
なぜに?thisつけるのはいいんじゃないの?
>>519
某所ではコーディング規約で this つけるのが義務になってたりする。
ローカル変数の名前つけるのがいいかげんでも、this使ってたら
メンバ変数とぶつかることがないから、そういう時は便利なんだけどな。
単純な話、
setter なんかでは this.value = value; なんて書くだろうが、
getter で return this.value; と this つけてもしょうがないわな。
>448
と関係がありそうなんですが、
クラス内で、メソッドA、B、C、Dがあって
AとBをまとめて同期させたい、CとDをまとめて同期させたい。
と言うときは、どうすればいいでしょうか?
526デフォルトの名無しさん:04/05/14 10:31
>>525
同期用フィールドでも持たせて両方のメソッドからそれを監視して同期を取るとかだな。
>>513
一度ArrayList辺りに突っ込む
SocketChannelについて質問です。
非同期時の送信処理は以下の方法で大丈夫でしょうか?
こういう風にした方が良い、これは必要が無い、というのがあったら教えてください。

// 送信データをlinkedListに追加
public void write(ByteBuffer buf) throws IOException {
  synchronized(linkedList) {
    linkedList.addLast(buf.duplicate());
  }
  socketChannel.register(selector, SelectionKey.OP_READ|SelectionKey.OP_WRITE);
}

// 実際の送信処理(Selectorスレッドから呼ばれる)
public void writable() throws IOException {
  ByteBuffer buf = null;
  synchronized(linkedList) {
    while(true) {
      if(linkedList.isEmpty()) {
        socketChannel.register(selector, SelectionKey.OP_READ);
        return;
      } else {
        buf = (ByteBuffer)linkedList.getFirst();
        socketChannel.write(buf);
        if(buf.hasRemaining())
          return;
        linkedList.removeFirst();
      }
    }
  }
}
529デフォルトの名無しさん:04/05/14 11:50
>>402
Jiniはどうした?
Java Communication APIはどうした?
530デフォルトの名無しさん:04/05/14 11:56
>>529
どっちにしろドライバは無理だろ
531デフォルトの名無しさん:04/05/14 14:41
System.out.println(new int[4]);
で表示される謎の文字列はいったい何?
デバッグ用にもっとリーダブルな表示はできないの?
>>531
自分でやらんと無理
>>531
デバッグ用に何を表示したいのか、お前の意図がわからない。
ものぐさだから [0] 〜 [3] を簡単に全部表示したいんだろ




にしても頭わりいな
>>531
Object#toString() で表示される文字列と同じ。
配列型の toString() はオーバーライドされない。
>>530
BIOSやカーネルに仮想マシン積んじゃいかんっていう
法律でもあるのかね?

BIOSに言語処理系インタプリタが載っている例(Macとか)
ttp://www.geocities.co.jp/SiliconValley-SanJose/9760/aqua-dabbler/bootrom.html

JavaOSはカーネルにVMがのっていて
メモリやポートを触るためのシステムクラスもあるから
ドライバもJavaで書ける。(はずだった?)
http://jp.sun.com/products/wp/JavaOS/JavaOS.html#デバイスドライバ
じゃ USB キーボードどのドライバでも組んでくれよ
>>537
じゃ、USBポートがついたJavaOSのマシンを貸してくれ。
539525:04/05/14 18:03
>>526
???む、難しい…
馬鹿にも分かるように簡単なコードで示してもらえたりしませんか?
540デフォルトの名無しさん:04/05/14 19:19
import java.util.logging;
でエラーが出るんだけど標準じゃ使えないんですか?
541もっとも byte 数の少ない回答に挑戦:04/05/14 19:22
*
>>540
> import java.util.logging;
import java.util.logging.*; でなくて?
あと 1.4 以降じゃないと使えないぞ。
543デフォルトの名無しさん:04/05/14 19:42
javaアプレット作ってるのですがclassファイルを更新して、
その後対応したhtmlファイルの更新ボタンを押してもjavaアプレットは
以前のままの表示をします。

例えばabcという文字列を表示するアプレットを書き、
ブラウザで表示させ、その後abcdeを表示するものに直し、
ブラウザの更新ボタンを押してもabcとしか表示されません。

1回ブラウザ自体を終了させ、もう一度起動させると更新されます。
わずらわしいのですぐに動作確認できるほうほうとかないでしょうか?
コンソールでXおせ
>>543
ブラウザにもよるだろうけど、Ctrl か Alt を押しながら
更新ボタンではどう?
>>543
[ctrl]かなにかおしながらリロードとかでいけるブラウザがあるが、543は何のブラウザ使ってるかも書いてないし。
547543:04/05/14 20:03
ありがとうございます。Ctr押しながらやったらいけました。どうもです。
548543:04/05/14 20:07
Ctr押しながらホイールスクロールしたりしたらおもしろかった。
やってみた。
一瞬なにが起こってるかわからなかった。
よくみたら、大きくなったり小さくなったりする。
IEもOperaみたいに拡大縮小ができるようになってたのか、と思ったら、大きくなったり小さくなったりするのは文字だけだった。

あ、Operaも[ctrl]+ホイールで大きくなったり小さくなったりする。
こっちは、ちゃんと画像も大きくなったり小さくなったりする。
それは Java コンポーネントの作用
だから Office などでも同様のことができるし、ネスケでもできるし、
RedHat 系の Linux や MaxOS X でもできる





なんて書いたら初心者ひっかかるかなぁ
551デフォルトの名無しさん:04/05/14 21:18
String sS = "123||456";
sS = sS.replaceAll("||","+");
でsSの値が"+1+2+3+|+|+4+5+6"
になるけど、どうしてでしょうか?
||を+に置換するにはどうしたよいのでしょうか?
みなさん、忙しいと思いますが、お願い致します。
流れ流れて適切なスレを見つけたって感じやね。
他のスレ全部回ってマルチポストすいません、って謝って質問取り消して来い。
replaceAll("\\|\\|","+");
556nana:04/05/14 22:38
>>552
sS = sS.replaceAll("\\|\\|","+");

>>552 >>553 >>554
文句ばかり書いて、あんた邪魔だよ。
こういう奴に限って、プログラム書けない奴多いよなあ。
>>552 >>553 >>554 の奴らを釣るためのネタかもしれん?
557デフォルトの名無しさん:04/05/14 22:40
バイナリファイルの読み込みやってるんですけど
テキストフィールドをつくるときに
for(int i=0; i<tf.length;i++){String num = (new Integer(i)).toString();
tf[i] = new JTextField(num,5);
ここの(new Integer(i)).toString();これてなにをしてるの?おしえてください

>>556
おまえもマルチウザ

java3Dはさすがに違いすぎるにもほどがあるなぁ
整数型を文字列にしてる。
560デフォルトの名無しさん:04/05/14 23:04
>>559

String num = Integer.toString(i)じゃだめなんですか?
String num = (new Integer(i)).toString();
まじ本にのってね〜〜よほんとに教えてください
>>560
たぶん、それを書いたやつがstaticメソッドの使い方わからなかっただけ。
>>556
>>551はジエンしてないで、マルチを先にあやまったほうがいいと思うけどね。
>>560
回りくどい方法だとは思うよ。
私ならこう書く。

tf[i] = new JTextField(""+i, 5);
564デフォルトの名無しさん:04/05/14 23:19
>>561
ってことは、String num = (new Integer(i)).toString();
これまちがってるんか?かなり有名な本かいてる人だぞ
>564
間違ってるわけじゃないと思うぞ。

一つの事をするのに複数の方法があって、
それなりのポリシーか普段の習慣、もしくは
前後の流れでそういう記述をしてるだけだろ。
new Integer(i).toString();
567デフォルトの名無しさん:04/05/14 23:32
>>566
なるほど、ありがとう
質問です。

javax.crypto.Cipher をimportして

Cipher cipher = Cipher.getInstance("DES");

と書いただけなのに
java.security.NoSuchAlgorithmException: Cannot find any provider supporting DES
と出ます。ググってもみましたが、事前にこれをしておけ!ということもなく
普通に動くようなことしか書いてなかったり
「DESではうまくいくがRSA はそのままではダメ」とか、そんなのばっかりヒットします。
どうすれば動くのか、前提条件等あるのか、手がかりがつかめません。

Windows2000 SP4、Javaのバージョンは1.4.2_03です。
よろしくお願いします。
Integer.toString(i)の方が高速な気がする
>>564
無駄なオブジェクト作ってるわけで、あまりいい書き方ではないな。
コンパイルが通って望みの動作をする以上は間違ってはいない。
おなじ、無駄なオブジェクト作るなら、>>563の書き方のほうが簡潔になるからいい。

有名な本だからといって、いいこと書いてるとは限らんしな。
これってjava3D使ってるんですよね?
http://www.jaga.jpn.org/game/BTank/index.html

あと、javaのランタイムを新しくしたらこのゲームの表示がカクカクするように
なったんですがなぜなのでしょうか?
572デフォルトの名無しさん:04/05/15 00:44
最近やればやるほど、いきずまる・・・
やってもやっても、きりがない・・・
お前らどうやって、Javaを極めたの?
ちなみに俺はいま、入門書を3冊よみおえたとこだけど
どこまでいけばいいんだろうか・・・
いきづまる
なにを持って極めるといってるんだろう。
あつかう範囲が広すぎて、極めれるモンではないと思うが。

とりあえず、入門書ばっかりよんでないで、いい本もよめ。
>>568
まずはシステムプロパティのjava.class.pathとjava.lib.extと
sun.boot.class.pathがどうなってるかチェック。
eclipseインストールして起動しようとしたんですけど、

The Eclipse executable launcher was unable to locate its
companion startup.jar file (in the same directory as the executable).

と表示されて、何回やっても起動できません。
どのように対処すればよいのでしょうか?
>>568
http://java.sun.com/j2se/1.4/ja/docs/ja/api/javax/crypto/Cipher.html#getInstance(java.lang.String)
http://java.sun.com/j2se/1.4/ja/docs/ja/guide/security/jce/JCERefGuide.html#AppA
アルゴリズム、モード、パティングを指定しなきゃいけないんだろ。
"DES/CBC/PKCS5Padding"でやってみたら。
>>576 とりあえず基本的なとこから。
http://www.egroups.co.jp/message/eclipse-ml/630?expand=1
>>577
モード、パティングを省略し、アルゴリズムだけでも指定できる。
それでやっても同じことだろう。
>>575
クラスパス通してなかったら、コンパイル自体通らないだろうに
>>575
java.class.path はごちゃごちゃ入っているので省略します。
java.lib.ext は null
sun.boot.class.path もごちゃごちゃありますが、その中に %JAVA_HOME%\jre\lib\ext\sunjce_provider.jar も含まれています。

>>577
同じエラーが出ました。
java.util.Set のインスタンスを2つ渡すと、
どっちの Set にも含まれる要素だけを返してくれるような
メソッドって、どこかにありますでしょうか。

自分で書くべきことでしょうか。
>>580 Cipher cipher = Cipher.getInstance("DES");
だけだとコンパイル時にプロバイダが含まれるクラスがクラスパスになくても
コンパイルできる。昔いたんだよ、sunjce_provider.jarが拡張機能クラス
パスから外れてて実行時エラーが出てわめいてたやつ。
>>581 581はEclipseユーザっぽい。
せっかくチェックっつってんのに、省略してどーする
>>582
jakarta commons Collections

CollectionUtils#intersection
587586:04/05/15 01:41
>>582
まあ
Set intersection = new xxxSet();
for(Object item : set1) intersection.add(item);
for(Object item : set2) intersection.add(item);

みたいな感じでできるとは思うんだけど。
>>583
よく嫁
>Javaのバージョンは1.4.2_03です。
勝手に入ってるよ
>>578
eoで解凍してました。ありがとうございます
>>589 もし設定がまともならsun.boot.class.pathにsunjce_provider.jar
は入らないんだよ。で、588が指示している話になるわけ。
Eclipseってpreferencesのシステムライブラリの内容いじると実行時に-Xbootclasspath
使って本来のブートストラップクラスと拡張機能クラスを全部まとめて
ブートストラップクラスとしてjava.exeに指示するから駄目なんだよ。
>>588
それでした!解決しました。まさかeclipseのせいだったとは…
>>586

ありがとうございます。commons Collections にあったのですね。

ところで、>>587 は、積集合じゃなくて、和集合になっちゃいません?
(一瞬これはJava言語なのか?と疑ったら、新しい文法なのですね。知りませんでした。
http://jcp.org/aboutJava/communityprocess/jsr/tiger/enhanced-for.html
594586:04/05/15 02:03
>>593
> ところで、>>587 は、積集合じゃなくて、和集合になっちゃいません?

あ、そうだった・・・
回線切って首つって寝る。
595586:04/05/15 02:06
寝る前に

Set intersection = new xxxSet();
for(Object item : set1) if (map2.contains(item)) intersection.add(item);

こうかな。
596586:04/05/15 02:06
map2だし・・・
ホントに寝る。
>572
とりあえず、入門書は1冊で十分。

なにがしたいかによって随分変わってくると思うけど、とりあえずはJava関連の月刊誌でも読んでみたら?
あとは、有名サイトを巡るとか。
598デフォルトの名無しさん:04/05/15 02:54
javaについて質問です
検索で文字列が
alkwhoitjhwho
sdjlkjfdsw
horertporterewho

上記の文字列があるとき
この場合whoという文字列を抜き出して
それがいくつあるかカウントしたいのですがどうすればいいのでしょうか?
できれば改行は無視する場合と無視しない場合もパターンも教えてください
上の例だと改行有りだと4、改行なしだと3になります
599デフォルトの名無しさん:04/05/15 02:58
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class HelloWorld extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException,IOException {
response.setContentType("text/html;charset=Shift_JIS");
PrintWriter out=response.getWriter();
}
}
サーブレットでよくこういったロジックがあると思いますが
他のところはわかるのですが
response.getWriter()の部分は具体的にどういった動きをしているのでしょうか?
>>582,586
Set#retainAll(Collection)
>>598
Java と関係ないから。
正規表現の勉強した方がいいよ。
>598
java.lang.StringのメソッドindexOfが検索するための関数。使用法はAPIリファレンス参照。
1つの文字列中で複数個をカウントする必要がある場合は再帰を使うのが王道。
private void search(int i){
 int tmp = str.indexOf("who",i);
 if(tmp != -1){
  count++;
  search(tmp+1);
 }
}
で、search(0)を呼び出せば後は勝手にやってくれる。
これを各行に対し実行するメソッドを作ればいい。
#念のため言っておくが、上は超適当。イメージだけ掴んで適切に書き直すべし
##返す数値をもうちょっと考えるともっとマシな書き方もできるけど、ちょっとややっこしい

改行を無視する方はちょっと難しい。
数だけ数えればいいのなら改行を消して全体を1つの文字列として検索。
(実際は1行ごとにバラしてStringの配列に入れるだろうから、それをくっつけて検索)
どこに出現したかもチェックしたいなら、一行の最後の方に検索文字列の頭文字(w)があるか調べ、見つかったら次の行の頭のほうも見てゴニョゴニョと。
>>602
>再帰を使うのが王道。

この程度で再帰を使うのはバカ。

int count = -1;
int i = -1;
do {
  count++;
  i = str.indexOf("who", i + 1);
} while (i != -1);
604デフォルトの名無しさん :04/05/15 04:34
すみません、教えてください。

クラスBでクラスAのインスタンスを作成したときにクラスA内のメンバ2次元配列に外部に用意したTEXTファイルの内容を配列の要素として取り込んで、それを元に計算した数値をインスタンス変数として持たせたいんですが、どうすればいい
のでしょうか?

class A {

static int[][] hoge;
int obj;

A (int i, int n) {
obj = hoge[i][n];
}
void gethoge() {
 ファイルを読み込み、hogeに格納するメソッド(完成してます)
}
}

class B {

A obj1 = new A(1,2);
A obj2 = new A(20,3);

でこの後、obj1、obj2等を使っての処理のメソッドがある。

}

因みに外部TEXTには、「,」区切りの数字の羅列が複数行(100行ぐらい?)書いてあります。

簡単に概要を書くとこんな感じなんですけど・・・。
メソッドって、呼び出してやらないと動作しないから、ひょっとしてclass Aにmainメソッドを作って、それでhogeに配列要素を入れるメソッドを呼べばいいのかと思ったりもしてみたり?あってるのか???
class B の
>obj1、obj2等を使っての処理のメソッドがある。
で obj1.gethoge() なり obj2.gethoge() なりすればいいんじゃないですか?
606604 :04/05/15 05:17
>605

ということは、class Bで最初にAインスタンスのobj1、obj2を作った時点ではインスタンス変数に
0 が入っていて、その後メソッドでobj1.gethoge()、obj2.gethoge()して各インスタンスの変数を
入れるということ?
クラスAのhogeの中身はいったん入れたら変わることないので、何度もgethoge()メソッドを呼び出すのは
無駄ではないかと思ったりしたんですが。
それにインスタンスを作ったときの引数はどうなるのでしょう?


607デフォルトの名無しさん:04/05/15 05:39
staticメソッドにしてmainから呼ぶなりなんなりすればいい。
>>559
たしかMSには、staticな Integer#toString(int) というメソッドはな無かったと思う。
>>608

ちがった
>>560
>>608-609
あれ?勘違いだったかも。
611デフォルトの名無しさん:04/05/15 06:27
String.valueOf(i)
612476 :04/05/15 08:54
476で質問したものです。
java_gについてご存じの方いませんか?
613デフォルトの名無しさん:04/05/15 09:05
JAVAアプレットでCドライブ内では
「HelloWorld!」と
文字が出るのですが、
web上では文字が出ません。
他のJavaは見れるのですが
自分で作った.Classファイルは見れません。
知っている方がいましたら、
教えてください
>>613
意味不明です。
615T.K:04/05/15 09:27
>>613
Cドライブ内ってどういう意味よ?
-613訳-
Javaアプレットに関する質問です。
ローカルで実行すれば、「HelloWorld!」と表示されるんですが、
アップロードして実行すると、表示されません。
他の人の作ったJavaアプレットは表示されるのですが、
私の作った.classファイルは表示されません。
どのような要因が考えられるのか、ご存じの方が
いらっしゃいましたら、御教授下さい。
617613:04/05/15 09:49
>616
すいません。
そう言いたかったんです。
訳してくださってありがとうです。
618T.K:04/05/15 09:55
ローカルってことは、一応ブラウザで動作はしたということだよね?
ネットにアップロードしたときにファイル名が小文字になっちゃったとか
そういうことはない?
そのサーバーがjavaに対応してないんでしょ

ハイ次
620604 :04/05/15 10:01
>607

あ、そうですね。gethoge()はstaticにしたほうがいいですよね。
では、こんな感じで正解?

class A {
static int[][] hoge;
int obj;
A (int i, int n) {
obj = hoge[i][n];
}
static void gethoge() {
 ファイルを読み込み、hogeに格納するメソッド(完成してます)
}
public static void main(String[] args){
gethoge();
}
}
class B {
A obj1 = new A(1,2);
A obj2 = new A(20,3);
でこの後、obj1、obj2等を使っての処理のメソッドがある。
}

それとも、クラスBのmainで呼び出した方がいいのでしょうか?
621613:04/05/15 10:22
>>618
>ネットにアップロードしたときにファイル名が小文字になっちゃったとか
そういうことはない?

文字は大丈夫だと思います。

>>619
そのサーバーがjavaに対応してないんでしょ

自分もそう思ったので調べてみたら
無料でアプレットを公開しているサイトから
アプレットをダウンロードして試してみたら
アプレットは見れました。
>>621
619はそんなこといってるわけじゃないんだが。
っていうか、なにをどう思ってそんなん試すんだ?
自分のサイトからアップレットダウンロードして試してみな。
関係ないから。
>>620
static {
  gethoge();
}
gethoge()がホントにstaticなら、これでいいんじゃない
624デフォルトの名無しさん:04/05/15 12:12
>>613 ネットオプションでjavaが有効になっていない。
もしくは、ブラウザのjavaのバージョンが低い
625604 :04/05/15 12:25
何度もすみません。

>623

あちこちググって探してみました。
>static {
>  gethoge();
>}

これは、static 初期化子 (static initializer) というやり方なんですね。
で、その説明を読んで、クラスAにこれを書いておけば、クラスBで最初に
クラスAのインスタンスobj1を生成したときに、gethoge()メソッドが働いて
2次元配列hogeに配列要素が格納され、それを元にobj1のインスタンス変数が決定され、
以後いくつクラスAのインスタンスを作っても最初のhogeの内容を参照して抜き出した
インスタンス変数を持つインスタンスができると解釈したんですが、そういう感じでいいのかな?

626613:04/05/15 12:43
>>624
>ネットオプションでjavaが有効になっていない。
もしくは、ブラウザのjavaのバージョンが低い

javaは有効にしてます。
いろいろ調べて624さんの言うように
ブラウザのJavaのバージョンが低いことを知って
plug_inをダウンロードしました。
それでもアプレットが見れません。
>>625

ほとんど正解。

でも
「最初にクラスAのインスタンスobj1を生成したときに、gethoge()メソッドが働いて」
という部分は、厳密には正解じゃない。

詳しいことはこの辺に書いてある。

8.7 静的初期化子
http://www.y-adagio.com/public/standards/tr_javalang2/classes.doc.html#39245

12.4.1 初期化の発生時点
http://www.y-adagio.com/public/standards/tr_javalang2/execution.doc.html#57946

特に、クラスAのインスタンスを生成する以前に、クラスAの static メソッドが
呼ばれる場合には、その時点で静的初期化子が実行される(かもしれない※)こと、
また、>>620 の例では main メソッドも、「クラスAの static メソッド」であることに注意。

※さらにもっと前かも。
628デフォルトの名無しさん:04/05/15 13:35
at java.awt.Component.processMouseEvent(Component.java:5134)
at java.awt.Component.processEvent(Component.java:4931)
at java.awt.Container.processEvent(Container.java:1566)
at java.awt.Component.dispatchEventImpl(Component.java:3639)
at java.awt.Container.dispatchEventImpl(Container.java:1623)
at java.awt.Component.dispatchEvent(Component.java:3480)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3450)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3165)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3095)
at java.awt.Container.dispatchEventImpl(Container.java:1609)
at java.awt.Window.dispatchEventImpl(Window.java:1590)
at java.awt.Component.dispatchEvent(Component.java:3480)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:450)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:197)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:144)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:136)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:99)
メモ張をつくってるんですけど、保存するときにファイルチューザで
ダイアログを表示して、ファイルはできるのですが、なかみが保存できません
保存ボタンをおしたときにこの文章が表示されます、どういう意味ですか?
629デフォルトの名無しさん:04/05/15 13:36
>>558
>java3Dはさすがに違いすぎるにもほどがあるなぁ
ってここは、Java3Dではありません。
他のスレ全部回ってマルチポストすいません、って謝って取り消して来い。
>>628
例外のスタックトレースです。
631デフォルトの名無しさん:04/05/15 13:43
>>630
つまり、どうすれば解決するので?
スタックトレース?
>>631
プログラムを修正するか、例外が発生するような操作をしないでください。
スタックトレースも知らずに
よくもまぁここまでやってこれたもんだな
>>613
表示されません→Java コンソール開けてスタックトレース見れ。
ローカルファイル探しに行ってないか?
635撤回:04/05/15 14:21
こんにちは世界でそんなことはないか。撤回。
でもコンソールくらい開けてみて欲しい
>>628
これもマルチポストだな

>>629
Java3Dスレにもポストしたのはおかしいんじゃないか?という意味だろ

今流行ってるのか?マルチポスト
637デフォルトの名無しさん:04/05/15 14:28
ニーモニックから書いてVM動かせます?
>>637
動かせるからもう来ないでね
639613:04/05/15 15:40
>>634

java.lang.ClassFormatError: HelloWorldApplet (Truncated class file)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
at sun.applet.AppletClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.applet.AppletClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.applet.AppletClassLoader.loadCode(Unknown Source)
at sun.applet.AppletPanel.createApplet(Unknown Source)
at sun.plugin.AppletViewer.createApplet(Unknown Source)
at sun.applet.AppletPanel.runLoader(Unknown Source)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
>ローカルファイル探しに行ってないか?
とはどういう意味なんですか?
>>639
スタックトレースのはりつけがうざいから、簡潔に発生した例外だけ書くかどっか行け、っていう意味だと思うよ。
強制的に Text 形式で送ってるんじゃなかろうか
だとすれば FTP ソフトの使い方が分かってないと見える
642604 :04/05/15 15:54
>627

ありがとうございます。これで、一番の大問題だと思っていたところが解決
しそうです。
がんばって、他の実装メソッド書かなくては!
perlは2、3年やってるんですが、JAVAは始めて1カ月ほどで(^^;;;それで
アプリ作ろうなんて、自分でも無謀だと思いつつ、でも、おもしろいんですよねぇ。
初心者です
Javaをするために必要なことを教えてください
>>643
自力で解決すること
645デフォルトの名無しさん:04/05/15 18:11
>>643
自分でまず、入門書を買え。
それから、分からないことを聞くのがよい。
<<643はJavaを卑下した確信犯的発言
Javaで○○をするために必要なことを教えてください
普通だったらこうたずねる。
まともにとりあってはいけません。
647604:04/05/15 19:41
報告です。

あれから今までかかって、最低限のメソッドを実装したクラスAとクラスBを作って、コンパイル
して実験してました。スペルミスや外部TEXTファイルに区切り文字のミスタイプがあったりして、
何度となく訂正、再コンパイラを繰り返しましたが、やっと、期待通りの結果を出す事に成功しました。
うれしい!!

あらためて、ご教授くださった方々に、お礼申し上げます。
648wyz:04/05/15 19:44
>>636
こいつ、クイツキいいぞ。あんた、釣られてるよ。
649デフォルトの名無しさん:04/05/15 21:19
import java.awt.*;import java.awt.event.*;import javax.swing.*;
import javax.swing.event.*;import java.io.*;
public class test extends JFrame{private JTextArea ta;private JButton jb;private JPanel pa;
public static void main(String ages[]){test te = new test();}
public test(){Container cnt = getContentPane();
jb = new JButton("保存");jb.addActionListener(new FileActionListener(ta));
ta = new JTextArea();pa = new JPanel(new BorderLayout());
pa.add(jb,BorderLayout.NORTH);pa.add(ta,BorderLayout.CENTER);cnt.add(pa);setSize(300,300);setTitle("テスト");
setDefaultCloseOperation(EXIT_ON_CLOSE);setVisible(true);}class FileActionListener implements ActionListener{
private JTextArea ta1;private FileActionListener(){}FileActionListener(JTextArea at){ta1 = at;}
public void actionPerformed(ActionEvent e{String command = e.getActionCommand();
if(command.equals("保存")){SaveFile();}
else{}}private void SaveFile(){JFileChooser fc = new JFileChooser();
int res = fc.showSaveDialog(null);
if(res ==JFileChooser.APPROVE_OPTION){File fl = fc.getSelectedFile();
try{FileWriter wr = new FileWriter(fl);ta1.write(wr);wr.close();}catch(IOException e){
System.out.println("入出力エラーが発生しました");}}}}

ファイルの保存なんですけど、テキストエリアをインナクラスにわたすときに
こういうふうにta1をかえして参照さしたいんですが、コンパイルはいきますが
例外のスタックトレースが発生します。
テキストエリアのta1をかえさずにtaでいくとうまくいきますが。
間接に参照さしたいです、どういうふうに直すといいですか
ほんとに困ってます、教えてください。


クソ汚いソース張るわ どういう例外(多分 NullPointerException だろうが)か 書かないわ
おそろしいな

答え:
 ta がまだ null なのに Listener のコンストラクタに渡しているから

初心者によくある誤りで、或いは君もそれをやってるんじゃないかと思うんだが、
「ある変数 (ta) の中身が代わったら、それを参照させた変数の中身 (ta1) も代わる」
と考えてしまう。
しかしプリミティブ型で考えれば・・・

int b = 10, c = 20;
int a = b + c;
b = 20;

このあと a の中身を表示するなどするとどうなるか? もちろん 30 のままだ。
クラス型変数もこれと同じ事。

その他
 ・例外の意味を考えましょう。どこで null が渡ったか、遡って考えてみればわかる。
 ・クラス名は大文字で始めましょう。
651デフォルトの名無しさん:04/05/15 21:53
>>650
なるほど、つまりjb.addActionListener(new FileActionListener(ta));
ここの位置を下にずらせばいいってことですね。
どうもありがとう
例外はクラス名と必要な情報を簡潔に。
ソースはわかりやすく、多少行が増えてもいいから改行とスペースいれれ。

…何歳よ。
>>652
お年寄り差別です。
たとえ65歳のおじいちゃんプログラマでも親切に教えてあげましょう。
654デフォルトの名無しさん:04/05/16 00:57
8桁の数字を
yyyy年MM月dd日の形式に変換するには
みなさんどうしてますか?

substringで8文字を4・2・2に分けて
連結するときに年・月・日を
アペンドするより
Javaの標準のクラスライブラリで
簡単にできる方法があったらおしえてください。
8桁の数字ってのは文字列なんですか?
だったら SimpleDateFormat でも見てみてください。
すみません大変な初心者です.
ttp://java.sun.com/products/javawebstart/ja/demos_ja.html
↑のソース見れないんですか?
質問させてください。
JAVAでコンパイルした物を、
逆コンパイルで簡単に戻せると聞きました。

これは本当なのでしょうか?
また、本当だったとして、逆コンパイルができないようにする方法はあるでしょうか?
658デフォルトの名無しさん:04/05/16 01:50
>>657
逆コンパイラは存在するよ
逆コンパイルできないように曖昧化する方法もあるらしい

java 逆コンパイルとかでググって調べて見たら?
>>657
おまいに説明するのは難しい
660デフォルトの名無しさん:04/05/16 01:56
逆コンパイル存在もなにも・・・
JDKに同梱されてんじゃん・・・
>>660
javap は逆アセンブル。ソースコードにまでは戻らない。
662デフォルトの名無しさん:04/05/16 02:01
だれがjavapだって言
663657:04/05/16 02:07
>>658-661
なるほど。
完全に逆コンパイルされないようにする方法はないんですね・・・。
曖昧にするって言うのは調べて分かりましたが、
どうにか完全に逆コンパイルできないようにする方法はない物かと・・・

>>658に言われ、さらに調べてみると、
JBuilderの曖昧化は、優れてるみたいな記事を見つけました。
買ってみようかと思ったんですが・・・
30万は高すぎます!
他の曖昧化ツールを探る事にします。
ありがとうございました。
個人でそんな事気にする必要あるのか?
人に見られても関心されるようなソース書くことに
集中するほうが大事だと思う
665657:04/05/16 02:15
あ・・・Developerってバージョンもあったんですね・・・
早とちりしました。
666657:04/05/16 02:18
>>664
ま、そうなんですけどね。
でも、セキュリティ面とかで問題でませんか?
何のセキュリティ?
著作権ならライセンス付けりゃいいじゃん?
668657:04/05/16 02:23
>>667
たとえば・・・
他の人は大した問題じゃないのかもしれませんけど、
ゲームで簡単に不正して高得点をたたき出し
常に上位ランキングに入ってみたりとか。
そういうのは問題がおきてから対応したらいいんで無いの?
それじゃ困るような状況なの?
670657:04/05/16 02:27
>>669
>そういうのは問題がおきてから対応したらいいんで無いの?
・・・考え方の違いですね・・・
とにかく、曖昧化ツールを探すか、JBuilderDeveloperを買うか、
どちらにするか検討する事にします。

いや、本当お騒がせしました。
どんなゲームか知らないけど
そういう考えするってことはある程度パターンが決まってるゲームってこと?
答えをソースに書くようなことはしないほうがいい
672657:04/05/16 02:47
>>671
ちょっと話がそれて来てますが・・・
ゲームのジャンルは、シミュレーションです。
ゲームセーブするゲーム状態保存と同時に所持金やらの各種データが
暗号化(と呼べるような大層な物じゃないけど)された文字列を吐きます。
それを投稿してもらい、ランキング表示できるようにしようとしてます。

たとえば、初期所持金の桁増やされるだけでめちゃくちゃです。
敵から得るお金とかの値を触られてもめちゃくちゃです。

たしかに暗号化した文字列の強度も弱く、
その面でのセキュリティも怪しいのですが、
暗号を解こうと、ランキング投稿にアタックすれば、
痕跡が残ります。 その時には違う暗号方法を考えれます。

しかし、JAVAが分かる人にソース触られれば一発アウトです。

JAVAならOSに依存せず、いろんな人にプレイしてもらえると思ったのですが・・・
難しい問題ですね。
そもそもそんな心配するよりも先に、
クラックされる価値のあるゲームを作ってくれよ。
674657:04/05/16 02:55
>>673
この話はここまでで。
とにかく、本当お騒がせしました。
>>672
×シミュレーション
○シュミレーション
676デフォルトの名無しさん:04/05/16 03:02
>>672
初期のドラクエといっしょやん
気にすんな
>>675
辞書引いてこい
678デフォルトの名無しさん:04/05/16 03:08
あ〜もう
この店全然当たんないよ
設定低いなこの台
679442:04/05/16 03:35
激しく亀レスですが
>>460
ありがとうございます。よくわかりました。
Web.xmlの内容を使用してテストしたかったので
通常のTestCaseとHttpUnitのWebConversationでテストすることにしました。

ありがとうございました。
680デフォルトの名無しさん:04/05/16 05:08
実行すると
あるディレクトリのフォルダをドロップアウトさせたいのですがそういうことって可能でしょうか?
具体的にはc:\にあるフォルダを
c:\lahca\lahca.exeで実行させて
指定のフォルダにその圧縮ファイル作りたいのですが
教えてください
681デフォルトの名無しさん:04/05/16 05:58
引数がStringしか入れれないところに
integerだけを入れると当然コンパイルエラーが返ってきますが
"" + integer
とするとコンパイルが通ります
いまいち納得できないのですが
これはStringとして認識してるのでしょうか?

また
Integer.toString()

キャストでのStringの変換とどう違うのでしょうか?
"" + Integer.toString()
としてコンパイルされる。

"" + の分のコードが入る。
>>681
二項演算子 + のどちらかのオペランドが文字列型なら
+ は文字列連結演算子となり、式の値は文字列型になる。

> Integer.toString()
Integer 型の場合、文字列変換によって
Integer#toString() と同じ文字列が生成される。

> キャストでのStringの変換
できません。

15.18.1 文字列連結演算子 +
http://www.y-adagio.com/public/standards/tr_javalang2/expressions.doc.html#39990
>>681
Integer integer = null;
System.out.println(""+integer); //"null"と表示される。
System.out.println(integer.toString()); //NullPointerException
685デフォルトの名無しさん:04/05/16 06:18
>>684
nullに""を足してもnullだけど
nullをStringには変換出来ない

数値などが入っていたら分かりにくいだけで
結局は両者の違いってそういう事か?
> nullに""を足してもnullだけど
> nullをStringには変換出来ない
どっちも間違い。

本人の意図としては間違ってはいないのかもしれんが、
そのような言葉遣いでは他人とコミュニケーションできないよ。
class Link{
Link next;
Object items[];
}

このようなクラスがあって
自分を含めたリンクの終端まで(nextがnullになるまで)
のitemsを全部一まとめにした配列を返すメソッドを作りたいのですが、

このとき可能な限り省メモリで実行(余計なコピーを作らない)できるコードはどんなでしょうか?
javaでは気にする必要ない?

例ではリンクリスト使ってますが実際にやりたいのはツリー型です
688デフォルトの名無しさん:04/05/16 13:33
public void update(Graphics g){
Dimension d=getSize();
if ((offscreen == null) || (d.width != offscreensize.width) || (d.height != offscreensize.height)) {
offscreen = createImage(d.width, d.height);
offscreensize = d;
offgraphics = offscreen.getGraphics();
offgraphics.setFont(getFont());
offgraphics.fillRect(0, 0, d.width, d.height);
offgraphics.setColor(Color.white);
offgraphics.fillRect(0, 0, d.width, d.height);
offgraphics.setColor(Color.black);
mypaint(offgraphics);
g.drawImage(offscreen, 0, 0, null);
}
このときのmypaintの役割について教えてください
>>688
シンボルが解決できません。
シンボル: 変数 mypaint
>>687

Link link = ...;
List list = new ArrayList();
while (link != null) {
  list.addAll(Arrays.asList(link.items));
  link = link.next;
}
Object[] allItems = list.toArray();

ホントに数バイト単位でメモリが気になるなら List を使わずに
自分で配列を使って上のを修正してください。
691デフォルトの名無しさん:04/05/16 14:34
JPanelからpaintComponentをオーバーライドしたんだけど、そのオーバーライドしたパネルをフォームエディタで配置出来るようにするにはどうすればいいの?
なんかデフォのJPanelしか配置出来なくて描画出来ない。
>>691
GUIエディタの動きと絡むので開発環境依存
どういったツール使ってるか分からないと答えは不可能
>>691
JavaBeansの仕様を勉強すれ。

>>692
GUIエディタようのBeanの仕様って統一されてない?
Bean の仕様が統一されていたとしても
フォームエディタとやらに登録する方法はツールごとに
異なるのではないのかね。
695デフォルトの名無しさん:04/05/16 14:58
NetBeansだけどさ、
JPanel JPanel1;を
JPanel myPanelに書き換えられればそれだけで済むのに、保護されてるブロックだから書き換えられねっス
>>695
名前付け替えればいいだけじゃ・・・
697デフォルトの名無しさん:04/05/16 15:00
間違えた。
myPanel JPanel1;だった
NetBeansならカスタム初期化コードにしてもいいし
そのパネルにいろんなコントロールが乗っかってるとかで
見た目もそのパネル通りにしたいのなら
パネル作ってそれをパレットに登録するのもいい

カスタムコンポーネントを登録していくほうが後々修正しやすいと思うな

JAVAでアプレットじゃなく、exe型の実行ファイルって作れますか?
>>698 でけたよ。ありがとう。
>>699
javaにはアプレットの他にアプリケーションというものもあってそっちは
スタンドアロンで動く物

そしてアプリなら保護がないのですぐにバイナリファイルが作れるからexeも作れる

そういう質問じゃない気がするけど
>>701
・・・よくわかんないっす
アプレットモードと、アプリモードがあって、
アプリモードで作れば、exe型の実行ファイルが作れるって事ですか?
jarでいいだろ。
ここは質問・相談スレであって質問・相談以前のレベルの人は
本を読むなり Google で調べるなりして出直して来い。
>>701 の回答はそれももっともだが、そういう意味じゃあんめぇ
>>123 読め。それで分かんなかったらまだ君には早い。

散々出尽くされてるこの質問、
めんどくさくって、真面目に答える奴も段段減っていってるだろうな
アプレットモードとアプリモードと言うか…
Javaの仮想マシンの仕組みから説明した方がいい予感。

Javaで作られたソフトウェアの場合、jarとManifest作って配布する事が多い。
JREが入ってればダブルクリック一発で実行可能で、IEも起動しない。
Java manifestとかで検索してみるといい。
>>703-706
申し訳なかった。
>>706の説明で、なんとなく分かった物の、
よく理解してなく質問したのは悪かったです。
逝ってきます。
もう、「作れない」って答えた方がはやいな。
JNI だろうが JET だろうが、
もう「Java で作る」(≒「JDKで作る」)の範囲を超えてるもんな。
>>708
>もう「Java で作る」(≒「JDKで作る」)の範囲を超えてるもんな。

「JDKで作る」ってのが pure java を指してるならそのとおりだが
gcj + mingw なら普通に javac するのと同じくらいのコストで exe にできる。
710デフォルトの名無しさん:04/05/16 17:42
class Hoge{

//toStringメソッドのオーバライド
public String toString(){
return "hello";
}

}

public class Po{
public static void main(String args[]){

Hoge obj=new Hoge();

System.out.println(obj);//(1)
System.out.println(obj.toString());//(2)
}
}

//実行結果
//hello
//hello

(2)でhelloと出力されるのは理解できるんですが、なぜ(1)でも
helloと出力されるのかが理解できません。
誰か教えてください、お願いします。
helloっていう文字変数定義したから自動的にメンバに入ったんだよ
1はオブジェクトが引数になってる
2はStringが引数になってる

とりあえずマニュアル嫁
>711が正しいね。
objの先頭アドレスは"hello"になるね。だからオブジェクト出力でhelloが出るのは当然。
異次元に迷い込んでしまった
717528:04/05/16 19:06
レスがないのは質問の仕方が悪いのか、SocketChannelを使ってる人が居ないのか…

どっちにしても ○| ̄|_
>>717
後者。
Listの配列lists[31]を初期サイズ24で初期化するのってどうやるんでしょう。
定義は
List[] lists = new ArrayList[30];
でいいと思うんですが、
それぞれをArrayList(24)で初期化するのは、for(){}でループするしか?
>>719
ループで。
721デフォルトの名無しさん:04/05/16 20:02
>>1にあるリンクを参照したのですがわからないのですいませんがお願いします。

「コマンドまたはファイル名が違います」のエラーがでてしまい
環境変数のPATHの設定を見直してみたのですがどこが悪いのか分かりません。
C:\j2sdk1.4.1_07にあるのでSET PATH = C:\j2sdk1.4.1_07\bin;とし再起動しましたが
同じエラーがでてしまいました。
あと
最近ウィンドウの×、△、□が化けてしまい数字やギリシャ文字になってしまいました。
これは関係あるのでしょうか
すいませんがおねがいします
>>721
OSくらい書きやがれ。
723721:04/05/16 20:06
>>722
Windows98です。すみません
>>723
PATH を見るには PATHコマンド
>>715
メール欄にでもネタとかかないとここは初心者歓迎スレなんだからしんじちまうだろ
>>721
後者の不具合は ttfcache でググれ
728721:04/05/16 20:45
>>724
ありがとうございました
>>725
SET PATH = C:\j2sdk1.4.1_07\bin;
としたはずなのにPATHコマンドでみると
PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;C:\FJUTY;;C:\PROGRA~1\NETWOR~1\MCAFEE~1
でした
>>728
SET PATH = C:\j2sdk1.4.1_07\bin;%PATH%
      ↑↑
  
SET PATH=%PATH%;C:\j2sdk1.4.1_07\bin
SET PATH = %PATH%;C:\j2sdk1.4.1_07\bin
質問させてください

byte配列に
FF FF FF FF FF FF 63 6F 6D 6D 61 6E 64 …
と16進ダンプでこうなるように代入していきたいのですが、どうすればいいのか教えてください
先頭6バイトをFFで埋め、続いて"command".getBytes()でbyte配列に代入していって
最終的にデータグラムパケットにして送信を行いたいのです
Stringオブジェクト内でのタブ文字の扱いってどうなってるんでしょう?
例えば、「あいうえお<TAB>かきくけこ」となっていた場合、
String s = "あいうえお  かきくけこ";
for (int i = 0; i < s.length(); i++) {
String s2 = substring(i, i + 1);
}
のようにして、s2に一文字ずつ取ってきて、それがタブ文字なら削除して返す、
みたいな処理がしたいんですが・・・。
ご教授よろしくお願いします。
>>733
>String s = "あいうえお¥tかきくけこ";
こういうこと?
735733:04/05/16 21:12
>>734
なるほど!うまくできました。ありがとうございます。
SET PATH=%PATH%;C:\j2sdk1.4.1_07\bin
>>732
byte[] bytes = hoge.getBytes();
byte[] data = new byte[bytes.length+6];
//最初を埋める
//残りはコピー

これだけのことだが?

>>733
s3 = "";
for
String s2 =
if (! s2.equals("\t")) {
 s3 += s2;
}
なんだ、そっちの話か
739732:04/05/16 21:22
申し訳ありません、聞き方を間違えました
先頭を埋める方法をご教授願いたかったのです
F0とか9Aとかをbyte変数に打ち込んでいく手段を教えてください
data[j] = (byte)0xff;
data[j] = bytes[i];

あほくさ。
741733:04/05/16 21:34
恥のついでにもうひと恥・・・。

J2SE1.3において、単純な文字列置換をする方法がわかりません・・・。
String str = "ほげほげなにがし";
string.replace("なにがし", "置換後");
・・・こういう感じにしたいのですが、replaceメソッドはcharしかムリですよね・・・。
1.3にはreplaceAllメソッドはないみたいですし・・・。
なければ作るのがプログラミング。

for と indexOf と substring で充分つくれるだろう。
743741:04/05/16 21:41
すいません、1.3ではなく、1.1でした・・・
1.3ならStringBufferのreplaceメソッド使えばよかったんですが・・・
744732:04/05/16 21:43
>740
ありがとうございました
745721:04/05/16 21:48
>>729-731,736
ありがとうございます。
Autoexec.batでSET PATH=%PATH%;C:\j2sdk1.4.1_07\binとし再起動などいろいろやってみましたが
いまだに「コマンドまたはファイル名が違います」エラーがでるばかりです
ほんとにどうしたらいいのでしょうか。重ね重ねすみませんがお願いします
746デフォルトの名無しさん:04/05/16 21:54
C:\j2sdk1.4.1_07\bin\javac Hoge.java
コマンド実行する前にpathが現在どうなっているか表示しろ
それもあるし、どう実行して失敗してるかぐらいコピペすれ
質問と回答を何度も繰り返すのは無駄だ
749デフォルトの名無しさん:04/05/16 22:03
Java 2 v1.4.2_01で動くように作ったアプレットを
MicrosoftVMだけで動くように変換するにはどうすればよいでしょうか…
いい方法があれば教えてください。
>>749
十中八九、無理。
>>721
Windows98ってさ、8文字以上のファイル名って
「~」を使ったパスになっちゃうんじゃなかったっけ。
C:\0123456789 → C:\0123456~1 みたいに。
だから、「SET PATH=%PATH%;C:\j2sdk1~1\bin」って
していしなきゃいけないんじゃねーの?
DOSプロンプトで実際にそこへ移動して、パスを確認してみたら?
752721:04/05/16 22:17
>>747,748
すみません

設定をSET PATH = %PATH%;C:\j2sdk1.4.1_07\bin;に変更し再起動ののち
MS-DOSプロンプトでpathをみると
PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;C:\FJUTY;;C:\PROGRA~1\NETWOR~1\MCAFEE~1
になっていました

MS-DOSプロンプトでC:\j2sdk1.4.1_07\bin>にすると実行できましたが、
デスクトップ上など他にあるファイルは実行できませんでした。
path設定されてねーやん
動かなくて当たり前
>>752
もしや、せっかく設定したパスが、再起動したために
元に戻ってるとかでは?
再起動しないでやってみたら、どうですか?
>>741 >>743
練習のために書いてみました。
Javaの古いバージョンを持ってないので、1.1で動くかどうか確認してません。あと、string.replace("なにがし", "置換後"); という形式じゃなくて、置換対象の文字列も引数として渡すように書きました。
public class Test741 {
  public static void main(String[] args) {
    String str = "ほげほげなにがしほげほげなにがし";
    System.out.println(replace(str, "なにがし", "置換後"));
    System.out.println(replace(str, "", "置換後"));
    System.out.println(replace(str, "なにがし", ""));
    System.out.println(":" + replace("", "なにがし", "置換後") + ":");
  }
  public static String replace(String src, String before, String after) {
    int beforeLength = before.length();
    if (beforeLength == 0) return src;
    StringBuffer sb = new StringBuffer();
    int startIdx = 0, int findIdx;
    while ((findIdx = src.indexOf(before, startIdx)) != -1) {
      sb.append(src.substring(startIdx, findIdx));
      startIdx = findIdx + beforeLength;
      sb.append(after);
    }
    sb.append(src.substring(startIdx, src.length()));
    return sb.toString();
  }}
756755:04/05/16 22:29
訂正:
× int startIdx = 0, int findIdx;
○ int startIdx = 0, findIdx;
>>721=752

SET PATH = %PATH%;... じゃなくて
SET PATH=%PATH%;... だっていってるだろ。 = の前後にスペース入れるなボケ。
758528:04/05/16 22:47
>>718
そうですか・・・il||li ○| ̄|_
Socket自体、使っている人は少ないのに。
/*コンストラクタ(インスタンス生成)と
メッセージ(目そっと呼び出し)のサンプルプログラム*/

imapor java,uti,date;

class Now {
public stati void main(string args[]) {
date now;
String nichiji;

now = new Date();

nichihi = now.tostring();
system,out prinln(nichiji);
}
}
すごいのキタ━━━━━━(゜∀゜)━━━━━━!!!!
ブラインドタッチでもこうはいくめぇ
763デフォルトの名無しさん:04/05/16 23:05
public static Sanmple{
public static int hell();

static{
System.loadLibrary("SampleJNI");
}
}
とあるとき
4行目のstaticは何なんでしょうか?
メソッドでしょうか?
その場合どういった結果になるのでしょうか?
クラスがロードされたときに実行されるコード

staticメソッドを使う前に実行が可能

なぜかしらんがJNIのサンプルコードはstatic使うのが多いね
>>763
static ブロック。そのクラスが JavaVM にロードされるときに実行される。
>>760
とりあえず、参考にしたプログラムをよく見直せ
768デフォルトの名無しさん:04/05/16 23:22
すみません。初歩の初歩で躓いております。
jdk1_4_2_04をinstallして解説サイトなどを参考に
E:\j2sdk1.4.2_04\bin(E:が起動ドライブ)をPathに加え
環境変数CLASSPATHをE:\j2sdk1.4.2_04;.
に設定し、E:\j2sdk1.4.2_04にあるHelloWorldApp.classを実行しようと
E:\j2sdk1.4.2_04>java HelloWorldApp.class
とすると
Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorldApp/class
と怒られてしまいます。
おそらくCLASSPATHの設定がおかしいのだろうと思うのですが
何がおかしいのかがわかりません。(-classpathオプションもダメでした)
適当に作ったソースのビルドも通りますが実行しようとすると同様の
エラーがでます。なにかヒントはないでしょうか。
CLASSPATHの設定をやめる。
770768:04/05/16 23:25
_| ̄|○
.classのせいだった・・・。吊ってこよう・・・。
>>768
java HelloWorldApp.class ではなく HelloWorldApp とやってみろ。
実行時に与えるのはファイル名じゃなくクラス名。
772741:04/05/16 23:26
>>755
おぉ!ありがとうございます!
参考にさせていただきます。
773デフォルトの名無しさん:04/05/16 23:38
jarファイルへの圧縮って
別にjava関係でなくても中身は何でもいいのでしょうか?

その場合ZIPとかほかの圧縮方法とどう違ってくるのでしょうか?
>>773
jarの実体はマニフェストファイル付きのzip
拡張子をjar->zipに書き換えて手持ちのzipツールで解凍してみ?

日本語ファイル名の扱いとかが微妙に違うけど。
775デフォルトの名無しさん:04/05/16 23:42
>>774
どうもです
776デフォルトの名無しさん:04/05/16 23:47
インスタンス化する時
Test test = new Test;

Test test = null;
test = new Test;
とどう違うのでしょうか?

みんな書き方がまちまちだけど
777721:04/05/16 23:48
721=752
>>751,753,754,757
ありがとうございます。
PATHの変更ができたみたいでMS-DOSプロンプトで
PATH=C:\WINDOWS;C:\WINDOWS\COMMANDC:\J2SDK1.4.1_07\BIN
となりました。
まだ「コマンドまたはファイル名が違います」エラーがでるのでPATHがおかしいのだとは思いますが
ちまみに\J2SDK1.4.1_07\BINにファイルがあるときはコンパイラできましたが
デスクトップ上などのファイルはできませんでした。
>>776
おなじ。
>>778
変数宣言が共通部分でインスタンス化宣言がメソッド内のとき
メモリとかへの負担が軽減されなかったっけ?
たとえばfor文でまわしたりする時とか
>>777 C:\J2SDKのまえに ; がたりない。
>>776,778,779
下のほうが余計なバイトコードが増える (=null のぶん) ので
クラスファイルのサイズが増える&実行速度が遅くなる。

必要ない場合に null で初期化するのは無意味。
782781:04/05/17 00:11
Test test = new Test(); と

Test test;
test = new Test(); とでは同じね。
SDKにあるjavapってので逆アセできるみたいだけど
これをいじってアセンブルしてクラスファイルに戻すことはできる?
JBuilderってJAVAでできてるの?
javaのアセンブラとしてはjasminが有名
javap自体ではアセンブルできなかったような。
すいません。くだらん質問なのですが、Cのscanf()みたいなのはjavaには
あるのでしょうか?
787デフォルトの名無しさん:04/05/17 01:48
このスレもWikiでFAQとか作らない?
質問した奴が解決しあtら更新するようなルールになればいいんだけどな。
すみません.Javaで作ってあるソフトでOpenSourceで勉強になるやつありません
か?
>786
あります。
>>788
ありまくります。
たしかぐーぐるに対抗しようとしてるオプソのサーチエンジンが
Javaで書かれてるような気がした。
>>788
sourceforgeにいろいろあるから興味のあるものをいじってみれば?

>>789-790
どうせレス返すならもう少し具体的なことかいたら?
>>792
具体的な答えが欲しければ、具体的な質問しろといいたい。
>>786 が何望んでるかわかんないしな。
時刻表示だの虹色に文字表示するだのノ、おもちゃアプレットがほしいだけかもしれん
>>786
ない。
>>786
このへんで分割。
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/util/regex/Pattern.html#split(java.lang.CharSequence,%20int)
797デフォルトの名無しさん:04/05/17 15:02
最近、「独○java」って本で勉強してるんですけど、
説明の仕方が抽象的で理解できません。
どうすればよいのでしょうか?
他の参考書を買うにもお金がもったいな・・・
>>797
何の勉強がしたいのかわからんがWebサイトのでやれば?
PC使いたおすのも理解の一助。
もっと遊んでみなさい。
800デフォルトの名無しさん:04/05/17 15:22
>798
Webサイトかぁ。参考にしてみます。

あとは、本屋さんにお世話になってみるかも・・・(立ちよ・・)
>>797
1. 説明を斜め読みしてデモプログラムをよくよみ、半端に理解する。
2. 半端な理解のままで課題をやってみる。当然よく分からないところが出てくるが、
「そこはそういうものだ」と思って半端に理解する。ここが一番ストレスがたまる。
3. 課題が解けたら、デモや課題のコードそれをちょっとだけ変更する。
似たようなコードだが機能が違うように変えたり、コードは違うが同じ結果になるように変えたり。
コードの意味を読み取りながら変えていく。
4. しばらくしたら、説明をもう一度読む。何か新しいものが読み取れるかもしれない。

抽象クラスやインタフェースは、コレクションフレームワークやSwingを使ってみると
理解しやすいと思う(コレクションフレームワークやSwingが理解しやすいかという突っ込みは勘弁してくれ)。
そういや独習Javaはコレクションフレームワーク扱ってなかったな。
802デフォルトの名無しさん:04/05/17 15:34
>801
その勉強の仕方で今後、理解のありようがどうなってくるのか漏には判らない
けど、とりあえず参考にしてみます。
おそらく>>801の言いたいことは

はじめのうちは習うより慣れろ。慣れてきてから見返すととっても理解がいい

ってことだとおもふ
>>802
一部だけを完全に理解しようとしてたら、全然すすまねぇってことじゃない?
Graphics2Dを使って印刷をしたいのですが、右寄せのやり方がわかりません。
drawString()で左寄せの印字はできました。
>>805
文字列の幅を取得してそれを元に計算するべし

簡単に扱いたいのなら固定長幅フォント使ってスペースで埋めてもいい

>>805
FontMetrics#stringWidth(String)

もっとも 2D なら他にもいくつか方法があろう
あんまり突っ込んでないから暗誦できない
>>806
>>807
thunks.
解決できました。
>>695
激しく遅レスだが、プロパティの「コード」タブで「カスタム生成コード」で「new MyPanel();」とかを書けばいい。
Clipboard について質問です。

Clipboard に stringFlavor として String を入れています。
これを Excel にペーストすると、\t はセル、\n は行を変えてくれます。
ペーストと同時にセル内改行(Excel で alt + enter )をするには、
"" で '\n' を含む文字列をくるんでやればいいのですが、うまくいきません。

'\n' の部分は、ゴミ「・」とセル内改行になります。'\r' とすると「・」だけになります。
ですからこのゴミは 0x0d で、セル内改行としては 0x0a のみが解釈されているようなのですが、
String として '\n' のみを含んでいるのにも関わらず、
ペースト時には 0x0d 0x0a となるようです。たぶん、OS のデフォルト改行コードということで。

つまり 0x0a のみを単独で送ってやりたいのですが、可能でしょうか?
また、どうすればいいでしょうか?
多分、Transferable からデータを取り出した VM の挙動を変える事になりそうですが・・・
ご存知の方がいたらよろしくお願いします
>>810
html で渡してやるとかじゃダメなん?
812デフォルトの名無しさん:04/05/17 19:52
今日も面接にいった。
試験官「JAVA使えるの?]
俺「はい]
試験官「サーブレット」俺「つかえません」
試験官「じゃちょっときついね」
俺「うざいから退室」
・・・もどると車はレッカーうざすぎて爆死
> 俺「うざいから退室」
……
>>813
>> 俺「うざいから退室」
>……

いたたまれなくなって退室、と読み替えてあげてください。
これコピペだよ
ほんと?バージョン違いかと思ってた。
javaでWin、Mac、Linux共用の
ファイル共有PSPソフトを作ることは
どの辺まで可能ですか?
>>811
あっその手が!? そうですね、試してみますっ
>>587
この書き方は何?
>>817
ファイル共有専用じゃないけど freenet がやってるよね。
>>821
サンクス子
823デフォルトの名無しさん:04/05/17 22:32
>>528
ノンブロッキングI/Oの仕組みと、聞いている内容が関係ない気がするよ。

ノンブロッキングI/Oってのは、要するに、readやwriteできるかどうかをスレッド
のブロッキング発生なしでチェックする方法がある、というだけの話。

チェックの結果read可能だったりwrite可能だったりするなら、そっから後は普通の
ソケットの扱いと一緒でしょ。SocketChannelの場合、使用するバッファがNIOのバ
ッファだから、旧java.net.Socketのread、writeとはちょっと書き方が変わるけど、
基本的にはおんなじですよアンタ。

write側に送信待ちデータキューを挟んで非同期送信ってのは、ソケットがノンブロッ
キングだろうがブロッキングだろうが一緒。で、キューイングの話ならネットに死ぬ
ほど転がってるからググってみなはれ。キーワードはソケットでも非同期でもなくて
「キュー」。
824デフォルトの名無しさん:04/05/17 22:34
>>786
java.text.MessageFormat#parse()

俺、このスレにかれこれ10回くらいこの文字列を書いた覚えがあるぞ。
テンプレ殿堂入りでいいのでわ。
825デフォルトの名無しさん:04/05/17 22:35
>>783
ほぼ完全な逆コンパイルライブラリは結構オプソであるので探して味噌。
俺はJODEとか使ってるな。
826デフォルトの名無しさん:04/05/17 22:37
>>810
単純に、Clipboardにコピーする時に加工するんじゃダメなのか?
>>824
書いた内容はいっしょだろうけど、質問者の質問はそれぞれ
違うと思うので、全部抜き出して wiki の方に上げておいてもらいたい。
828528:04/05/17 23:43
>>823
キューイングでググって良く分かりました。
ありがとうございます。
829デフォルトの名無しさん:04/05/18 00:44
>>817
普通にただのアプローダーでいいじゃん
55 名前:名無しさん@4周年 投稿日:04/05/17 00:44 ID:J8mowiSR
■馬鹿でもできるフリーネット導入方法■(WindowsのInternet Explorerの場合)

JAVA「j2sdk-1_4_2_04-windows-i586-p.exe」をクリックしてインストール。
次に「freenet-webinstall.exe」をクリックしてfreenetをwebインストール。
◇ information R サイトの「Frost導入」から初期設定及び日本語板登録済みfrostを
ダウンして解凍する。(オリジナルの未設定frostを使う場合はWinRARで解凍すると良い。)
あと同サイト内にある「Unstableへの道」を見てUnstable化する。UnstableはVerアップが
激しいが読み書き良い。ついでに「FUQIDの導入」も見てFUQIDも入手。これは英語でも全然困らん。

書き込みは半角/全角キーで英字数/ひらがな切替(人によるけど)、Ctrl+Cでコピー、Ctrl+Vで貼り付け。
フリーネット内サイト見るのはFREENETのゲートかIEのアドレス欄にhttp://〜/SSK@〜とかコピペ。
ファイル画像やなんかのアップやダウンはFrostからよりFUQID使った方が速い。


◇ Java2「J2SE v 1.4.2_04 のダウンロード JRE」(日本語)
http://java.sun.com/j2se/1.4.2/ja/download.html
◇ The Freenet Project (本家 英語)
http://freenetproject.org/index.php?page=index
◇ information R
http://page.freett.com/infr/
>>830
二度とくるな。
832デフォルトの名無しさん:04/05/18 12:35
1に該当するのかもしれませんが読んであまりわからなかったので…
コンパイルはできたのですが、実行したらException in thread "main"java
.lang.NullPointerException at repo3.main(repo3.java:77)
と出るのはどういうことですか?
833810:04/05/18 12:44
>>826
書いてあるとおり、'\n' を送ったのでは、
Excel への到達までに 0x0d 0x0a になってしまうのです。
(ex. バイナリエディタへのペーストで試してみましたが、同じ。他のソフトでも多分同じ)
stream で送ろうとするのですが、text/plain + InputStream だと、受容してくれない? ペーストできず。

>>811
html で送ってみました。
<table> と <br> を使うと、<br> を使った列は上下2行に分かれ、
他の列は上下にセルが結合されてしまいまった。IE からのコピーで試してもこれは同じでした。
#セル内改行せぇよ・・・

残る手段は rtf、処理できそうではありますが、なんか大変そうなので、
ひとまず html で手を打とうかな・・・

ご回答ありがとうございました。
>>832
「Javaの世界へようこそ」って意味だよ
ってのは冗談で、Exception(例外)についてはわかっているのかな?
837デフォルトの名無しさん:04/05/18 12:58
>832
repo3.javaの77行目は?
その辺りのソースを晒せば?
838832:04/05/18 13:08
throws IOExceptionをつけても例外はないことにはならないんですか??
>>838
そうなったらおもしろいね。
>>838
はい、例外が全然分かってませんでしたー
1) IOException は入出力例外。ネットワークやファイルの入出力でしか発生しない。
  NullPointerException は関係ない。
2) ないことになるってのは、どういう意味だ。違う。全然違う。まるきり逆。
  throws は、「ありうる」ことを宣言するんだ。
  「このメソッド内ではこの例外が発生するけど、起こったらどうするかは
   このメソッドを呼んだ側で決めてね」ということだ。
  君が throws 宣言したということは、その中で読んでるメソッドから throw されるものを、
  さらに throw しますよ、ということになる。
つまり throws =無視するだと思ってたんだな。
そんなことしたら、うまく動いてるかどうか分からんじゃないか。
ってことでここをいい加減に通過すると、死ぬまでJavaはできるようにならないから
例外についてしっかり勉強しましょう。
843デフォルトの名無しさん:04/05/18 15:06
Process p = Runtime#exec("bash hoge.sh");
p.destory();

ってやったときに,hoge.sh内で何かのシグナルをtrapしている場合は、
destoryしたときに何か反応するんでしょうか?



>>843
「Solaris上では destroy を呼ぶとサブプロセスに SIGTERM が送られるよう」だ
という報告を発見。
http://java-house.jp/ml/archive/j-h-b/021303.html

もっと詳しい情報があれば、私も知りたい。
845デフォルトの名無しさん:04/05/18 16:43
JAVAでEZアプリ作りたいんだけどJ2SEと何が必要?
自分で調べる能力
847デフォルトの名無しさん:04/05/18 16:47
JavaCheckをダウンロードしたんですが、これに必要なspecファイル(.spc)を
どこからダウンロードすればよいか分かりません。
以前はJavaCheckのダウンロードページと同じページにあったみたい(?)なのですが、現在では公開されてないのでしょうか?
http://java.sun.com/products/personaljava/javacheck.html
sessionを使わずにhtml(値入力)→サーブレット→JSP(値を入力)←あとはJSPのループ
の仕方がわかりません・・・
>>849
なにがわからないのかわかりません。
851デフォルトの名無しさん:04/05/18 19:53
>>844

そうなんですか
ありがとうございます。

自分はcygwin上のbashでやってたんですが
やはり正しく動かなかったりする可能性あるんでしょうか?
destoryしてもまったく無反応だったので。まったくトラップする気配が
ありませんでした。
メモ帳使うのとEclipse使うのはどっちがいいですか?
853デフォルトの名無しさん:04/05/18 20:18
Emacs
>>852
Wordにしとけ
xyzzy
なんだてめぇら!
>>852
今日の買い物リストとかの、Javaのソース書くんじゃないときはメモ帳がいいな。
メモ帳の向いてる奴:
 MS-DOS の PATH 設定のわからない奴
 classpath の設定方法のわからない奴
 標準外のライブラリを使ったことのない奴
 パッケージの設定をしたことのない奴
 import の意味の分かってない奴
 Class#getResource を使ったことのない奴
 コンパイルエラーとバグの違いが分かってない奴
 exe を作るにはどうしたらいいんですか? とか寝言をいう奴
>858 がずいぶん偏っているように思えるのは俺だけか?
860858:04/05/18 21:00
俺もそう思う
つうことで、初心者はNetBeans使っとけってことですね?
862デフォルトの名無しさん:04/05/19 00:11
>>1にあるJAVAのコンパイラ落とそうと思ったら、全部リンク切れしとる
持ってる人誰か、うpしてくれませんか?
863デフォルトの名無しさん:04/05/19 00:23
メッセンジャーみたいなアプリを作ろうとしてるんだけど、
アプリを立ち上げたときにサーバー探索するために
UDPでブロードキャストしようとしてるんです。
サーバーがパケット受け取ったら返事するような感じで。
で、ブロードキャストアドレスって255.255.255.255じゃ駄目なの?
>>862
http://java.sun.com/j2se/1.4.2/ja/download.html
の「J2SE SDK のダウンロード」でダウンロードできるでしょ。
865862:04/05/19 00:29
>>864
できない(´Д⊂
866デフォルトの名無しさん:04/05/19 00:29
なぜ開発などでメソッドやクラス名に一番前に_をつけるのでしょうか?
人のソースとか見ると結構多いですよね?
>>865
素直に諦めろ。
>>866
シンボル名の衝突よけ。
ネームスペースが窮屈だったCその他の古臭い言語仕様の名残。
頭が古い人がよくやる。
>>866
Javaの「良いソース」ではほとんど見ない。
>868
そうだったんだ… Java やって5年で始めて知った_no
871デフォルトの名無しさん:04/05/19 01:00
>>870

Javaならパッケージで好き勝手にネームスペース分けられるし、きちんと
したクラス設計してあれば単一のクラスに衝突するほどメンバが増えること
なんかありゃしないでそ。
>871
いや、人が公開しているソースとか見ていて、前々から疑問だったんだけどさ。
そういう意味があったとは露知らず。

他の言語も知っておかないとダメなんだなあ…
>>866
メソッド内でインスタンス変数を簡単に識別するためのプレフィックスと
してアンダースコアなどを使う人がいるね。

そんなの、this.hogeつかえ、つうかそもそもそんなことが必要になるほど
長いメソッド書くな、分割しろ、ということなんだと思うけどさ。
>>866
フィールド名じゃなくて?
875デフォルトの名無しさん:04/05/19 04:16
{
work=line.substring(start,i);

loop:
{
for( k = 0 ; k<word_count ; k++)
{
if(word[k].equalsIgnoreCase(work))
{
count[k]++;
break loop;
}
}

word[word_count]=work;
count[word_count]=1;
word_count++;
}

start=i+1;
break;
}

どこが違うかわかりません。お願いします。
>>875
何が意図した動作なのかわかりません。お願いします。
877デフォルトの名無しさん:04/05/19 04:45
単語頻度なんですが、word[k]のどれかとworkが一致すればcount[k]に1を加え
どれも一致しないなら新しくword[word_count]=work;
を作ってその数を1とすると。word[k]は文字を表しcount[k]はword[k]の数です。
eclipseの使い方を解説したサイトおせーて。
>>877
いやそんなのは読めば想像つくんだけど。
ダメな部分と、それに対する意図した動作がわからん。

>>875 では切り出した部分が中途半端なので、言語仕様に反してる。
>word[k]は文字を表し文字を表し
単語と文字、どっちやねん
>>878
こっち行って聞け。

【Java/C/他】統合開発環境Eclipse M11
http://pc5.2ch.net/test/read.cgi/tech/1076074293/l50
882デフォルトの名無しさん:04/05/19 08:36
awtのScroolBarにフォーカスがあるとき左 右キーを押しすとスクロールします。
左 右キーを押した時スクロールしないようにする方法はありますか?
スタティックなフィールドを持ったクラスが
プログラム内にあるとき、
そのフィールドはプログラム開始前に作成されますよね?
= new Hoge();とか、初期化があったら、いつ実行されるんですか?

あと、シンクロナイズドなメソッドの実行中はそのインスタンスは他から同時に使用できませんよね。
では、クラスの宣言で、ひとつだけシンクロナイズドなメソッドがあった場合は、
それもシンクロナイズドされているのと同じですか?

質問3つでした。よろしくお願いします。
>>883
>スタティックなフィールドを持ったクラスが
>プログラム内にあるとき、
>そのフィールドはプログラム開始前に作成されますよね?
>= new Hoge();とか、初期化があったら、いつ実行されるんですか?
そのクラスがロードされるとき。

>あと、シンクロナイズドなメソッドの実行中はそのインスタンスは他から同時に使用できませんよね。
>では、クラスの宣言で、ひとつだけシンクロナイズドなメソッドがあった場合は、
>それもシンクロナイズドされているのと同じですか?
synchronizedの意味わかってないね。同時に一つのthreadからしかアクセスできないということだぞ。

>質問3つでした。よろしくお願いします。
2つじゃん
>>883
> スタティックなフィールドを持ったクラスが
クラスの初期化時。詳しくは以下を参照してくらさい。

12.4 クラス及びインタフェースの初期化
http://www.y-adagio.com/public/standards/tr_javalang2/execution.doc.html#44557

> あと、シンクロナイズドなメソッドの実行中はそのインスタンスは他から同時に使用できませんよね。
できるよ。
・synchronized でないメソッドの呼び出し
・「シンクロナイズドなメソッド」が非static である場合は staticメソッドの呼び出し
・「シンクロナイズドなメソッド」がstatic である場合は 非staticメソッドの呼び出し
・フィールドアクセス
>シンクロナイズドなメソッドの実行中はそのインスタンスは他から同時に使用できませんよね。
よーく考えてみよう。もしほんとに君の言う通りだったら、
特定のメソッドだけを synchronized と宣言することにどれほどの意味があるの?
クラスに宣言しても同じだと思わない?
違うか。違うわ。ごめん。
俺の バニアス コアはヒートアップしてるらしい。
888883:04/05/19 15:34
>では、クラスの宣言で、ひとつだけシンクロナイズドなメソッドがあった場合は、
では、クラスの宣言で、ひとつだけシンクロナイズド「でない」メソッドがあった場合は、
の書き間違いでした。

クラスってsynchronizedできるのですか?まだJava暦短いもので…

うーん。もっと勉強してから出直してきます…
できないよ
Stringクラスのソースコードってどこかに置いてないかな?
おれのHDD
まぁJavaやってりゃたいていみんな持ってるよな
そーすね
知らんうちにね
895デフォルトの名無しさん:04/05/19 19:52
てすぽ
896デフォルトの名無しさん:04/05/19 20:00
ちょっと聞いていいですか?
カレントディレクトリを取得する簡単な方法ってある?
ドキュメントから探すの下手で見つけれません助けて。
897デフォルトの名無しさん:04/05/19 20:01
java 1.4.2 windows版のapplet上で一定間隔でxml文書を取得するのに
SAXParser sp = SAXParserFactory.newInstance().newSAXParser();
としてSAXParserで読み出しているのですが、作るたびに
指定URL/META-INFservices/java.xml.parsers.SAXParserFactoryを
読もうとするようです。
調べてみるとロードするSAXParserFactory実装クラスを指定できるようで、
>可能であれば、JAR 仕様で詳細に説明されているサービス API を使用して、クラス名を判定する。サービス API は、実行時に使用できる jar 内の META-INF/services/javax.xml.parsers.SAXParserFactory ファイルからクラス名を検索する
とありました。
このシーケンスを抑制(appletでSAXParserFactory実装クラスを明示的に指定)する事は出来ないでしょうか。
NetBeans3.6を新規インストールしようとしてインストーラを立ち上げると、
ウィザードの起動中にinvalid name specifiedとかエラー吐いて進めない
のですがどうしたらよいでしょうか。
cpadで勉強してたのですがNetBeansに乗り換えようとした次第なので、
java1.4.2はちゃんとはいっているのですが、、、
>>896
System.getProperties();

"user.dir" で取れるけど作法的にどうかは知らない
900898:04/05/19 20:59
すいませんZIP版でやってみます。
901デフォルトの名無しさん:04/05/19 21:39
import java.applet.Applet;
public class Test extends Applet{
Button b
このButton bってButtonの変数b生成って意味でいいんですか?
>>900
OSは?Win98/MEには入らんよ。
>>902
XP Homeです。Zipで落とした中のidew.exeでちゃんと実行
できるようにはなりましたが、、、他の環境ではちゃんと
インストーラが立ち上がるのでしょうか
>>903
J2SESDKがProgram filesみたいな半角スペースを含むディレクトリにインストールされてるとか
905898:04/05/19 22:31
>>904
僕も最初インストール先を変更していたことに気がついて、
J2SDKをいったん削除してからデフォルトのCドライブ直下に
入れなおしたのですが、やっぱりだめでした。うーん、、、

とりあえず生Zipで使えるようなのですが、何か不都合とか
ありますか?ファイルの関連付けがうまくいかないとか、、、
無かったらこのままでもいいかなあと。
>>901
セミコロンをつければね。

でも「生成」っていう言葉は印象違うな・・・
フィールドなんだから、生成されうるのは Test のインスタンスであって、
付随して「宣言」されてるだけ。あるいは中に「確保」される、でもいいかもしれない(あまりよろしくない)。

少なくとも、ソースを書いた時点や、main から起動した直後、
クラス定義が VM にロードされたときは、まだ「生成」と呼べることは何もされていない。
907デフォルトの名無しさん:04/05/19 22:39
throw、throws、try〜catch
の違いがわかりません

参考書など使い方書き方などは載ってるのですが
それぞれの使い分けとかそれぞれの意味とかあまり載ってないので
教えてください
>の違いがわかりません
違い、というにはあまりに似てないが。。。だって、辞書引けば分かるじゃないか。

throw は投げる。能動的に。
throws は、こいつは投げますよ、と紹介する。
try〜 catch は、try〜で処理を行う。catch で、〜内から投げられたものを受け取る。
ちなみにそのあとに finally というのもあって、〜で何か起ころうが起こるまいが処理を行う。

void hoge() throws IOException { // hoge は 「IOException を投げることがありますよ」
 //処理して
 if (失敗) {
  throw new IOException(); //失敗したぞ!つーことで投げる
 }
}

void hogehoge() {
 try {
  hoge(); //投げてよこすかもしれない。とりあえず try してみる
 } catch (IOException ex) { //投げられたら catch してここに飛ぶ
  //エラー表示などを行う。
 }
}
>907
投げる/捕まえる、という言葉のイメージそのままで考えると分かりやすい。

最初に例外を投げる(throw)人がいる。
で、それに対しtry-catchをしてあればそこで例外をキャッチして終了。
キャッチしなければ後ろにいる人(呼び出し側)にそのまま例外が飛んでいく。
このとき、自分がキャッチできない例外があると分かっているのなら、予め後ろの人にそう伝えておくと安心だろ。
「自分はこの例外をキャッチしないので、後ろの人はちゃんとキャッチしてね」というのがthrows。

で、そもそも、例外とはどこから生まれるのか、という話。
例外はthrow文によって生成される。
それは自分が書いたthrow文かもしれないし、昔の人が描いたjava標準メソッドのthrow文かもしれない。
>>907
初心者なら、全部キャッチしてスタックトレース吐くだけで問題ない。
キャッチするときはExceptionクラスじゃなく、個々の例外サブクラスでな。

凝った(大規模な)アプリケーションだと、エラーの表示方法を統一したい等の理由で
呼び出し元に例外スローする。
911デフォルトの名無しさん:04/05/19 23:08
>>908
上記だと3つとも
同じにしか見えないんですが・・・

どれも例外処理を投げるかも知れませんよって事じゃないの?
実際例外が起こった時の処理するとこが違うって事でしょうか?
あとthrowとthrowsの違いがやっぱりわかりません
自作カスタムタグにJSTLのELはそのままじゃ使えないのでしょうか。
もし使えなかったら、使い方の指標を教えて頂けるとありがたいです。
>>911
throwとthrowsじゃ綴りも用法も全然違うじゃん。釣られたかぁ〜?
>911
> どれも例外処理を投げるかも知れませんよって事じゃないの?

投げるかもよ、っていう宣言が throws 。  throw は上でも散々ガイシュツだけど、ただの投げる処理。

で、メソッドの中で例外が発生する可能性が合って、かつどこでも catch していないと、
どこかで受け取らなきゃいけないね、だからこのメソッドを呼ぶ側で catch しなさいよってことで throws 宣言をつける。
そうすると、呼ぶ側からは throws 宣言があるから、 catch しなけりゃだめだねっていうのがすぐわかる。

逆に、メソッドの中で catch していれば、もう受け取る人がいるから throws は必要ないねってことになる。


いろんなパターンを自分で組んでみた方が、理解早いと思うなあ。


サーブレットから、とある指定の動画(QuickTime)を表示しようとしています。
しかし、このサーブレットにアクセスすると、
変な文字列(おそらく動画ファイルのバイナリデータ)が表示されています。

res.setContentType("video/quicktime");
RequestDispatcher rd = req.getRequestDispatcher(動画のパス);
rd.forward(req, res);

でいけると思ったのですが…
(req,resはそれぞれdoGetの引数HttpServletRequestとHttpServletResponse)

そもそもこの方法ではブラウザから動画を表示できないのでしょうか?
どなたか原因をご存知の方がおりましたらご教授ください。
916907では無い。:04/05/19 23:34
>>910
たいしたこと無いプログラムで、
個々の例外を考えるのが面倒だから、
Exceptionでcatchしたりしてたんですが、なんかマズかったですか?
きちんと個別にケアしてやらんとダメですか?
読む側には、面倒かもしれないけど、誰も読まないと思うし。
(例外が起きたら即、実行終了のプログラム。
>916
どうせ個別に書いても全てスタックトレース吐くだけだろ?ならそれでも構わない。

例外ってのは予期しないものだから例外と呼ぶわけで、予想できるものなら処理した方がいい。
例外をちゃんと処理しない癖が付くと、後でバグ取りに泣く事になる。
自分しか使わない、内容を全部把握できる規模のプログラムならどうでもいいけどな。

ちなみにEclipseとかの統合開発環境だと、一発で投げられうる例外全部のtry-catch書いてくれて楽だぞ。
あるメソッドが、例外を拾ってその後状態情報の復帰処理などをするこ
とができるなら拾うべき。そうでないなら普通は呼び元にそのままスロ
ーすべき。
どうせ拾っても何もしてやれないなら、鬱陶しいコードが増えて見通し
わるくなるだけでイミナイから、拾うな。

つうのが、エンタープライズJavaの現場での、「推奨すべき」使い方で
はなかったかな。
たしか、これって某アメリカの著名開発者の意見だったと思う。ニュア
ンス違ったかもしれないけどw

よく、例外を片っ端からひろっといてくだらないフォロー書いて握り
つぶす馬鹿がいるが、そんな事されると、実運用でそのルート通った
時に足跡(スタックトレース等)情報が分断されて、かえってバグ調査
がしづらくなることがある。アホカと思うね。
>916
例外によってエラーメッセージやら処理を代えたいとか、そういうことをしようとするときちんと書かないとだめ。

あとは、例外名によって中で何をやっているのか、どういうエラーケースがでているのかが予測できるから、
>読む側には、面倒かもしれないけど、誰も読まないと思うし。
とあるけど、やはり後のことを考えると書くべき。
書いておいたほうが、例外処理変わったーってときも便利だし。

IDE 使えばその辺は自動でやってくれるよ。
920デフォルトの名無しさん:04/05/20 00:03
>>918
>ちなみにEclipseとかの統合開発環境だと、一発で投げられうる例外全部のtry-catch書いてくれて楽だぞ。
どうかね、逆にラクすぎて全然身につかない
ずっとeclipseがある環境で開発するわけじゃないし
>>912
JSP2.0なら使える
>>920
いや、ずっとEclipseがある環境で開発する可能性は高いぞ。
JSFとか一般的になったら、IDEのない環境で開発することは少なくなるだろうし。
少なくとも、特別な環境じゃない限り、IDEのない環境で開発することはなくなるだろう。
>>905
NetBeansはzip版で問題ない。
>>921
やっぱりそうですか。
JSP1.2でも一部Strutsタグで使用出来るようにも可能と聞いたので、もしかしたら
出来ると思ったのですが、素直にJSP2.0にします。
ありがとうございました。
>>924
Commons ELとか使えばできるかもしれんけどね。
ど素人です。以後ヨロ
Eclipseを使ってる人が多いようだけどJBuilderは過去のもの?
>>926
無料版ではWebアプリが開発できず、ちょっとカネ払っただけではEclipseにも及ばず、GUI構築もNetBeansがあるので、無用です。
928926:04/05/20 02:48
orz
俺はJBuilder使ってる。
某ファンだから、JBuilder使い続けるよ。
930デフォルトの名無しさん:04/05/20 08:58
class Test01
{public static void main(String args[])
{int test[] = {80,60,20};
System.out.println(test.length());
System.out.println(test[].length());}}
クラスがありません)がありませんと二つエラーがでますどこがまちがってるんですか?
931デフォルトの名無しさん:04/05/20 09:06
あとSystem.out.println(test.length());
とするとlength()シンボルが解決できませんとでて
test.lengthだと正常にコンパイルします。本みるとlength()ついてる本と
lengtだけのもあるし。これはどう違うんですか?
>>931
そのtestのクラスは何よ?
Stringならlengthメソッド呼ぶから()付きだし、配列ならフィールドだから()いらねーよ。
933896:04/05/20 10:03
>>899
助かりました、ありがとうございます。
934デフォルトの名無しさん:04/05/20 11:26
>>932
どうしてフィールドなら()はいらないの?
>>934
言語仕様
>>927
JBuilderは無料のヤツで商用利用可能になったよ

でも使いやすさというかとっつきやすさはEclipseやNetBeansとは段違いにいい
初心者には向いていると思われ

俺はもうNetBeansに移行しちゃったけどな
>>936
いや、商用利用とかじゃなくて、Webアプリケーション開発の問題。
昔からJBuilderは無料のヤツでもwebアプリはtomcat連携でやってたぞ
そういう本もあったしな(Personal付属してってやつ)

何も設定が必要ない無料のやつならNetBeansだけだし
設定が必要という点でEclipseとJBuilderは同じ土俵だと思うぞ
>>938
JBuilderの無料版で、IDEに統合されたウィザードとかJSPのコード補完とかもできるのかな?
>>938
ググったけど、見つかるのは
・IDEからTomcatの起動ができる。
・Tomcatのライブラリを登録することでサーブレットがコンパイルできる。
といった程度だと思うんだけど。

たしかに設定が必要という点でEclipseと同じ土俵といえるかもしれないけど、設定した後でできることが違いすぎる気がする。
というか、無料版て業務に使えるのか?
>941
ループしてるぞ。
JBuilder用プラグインくらい作れよ
>>943
Eclipse使って。
JBuilderのほうがいいよ。
JBuilderってJSFに関する動きはどうなってるの?
JSFの実装が登場する順はIBMが一番速いとして次はやはりsunかなぁ

ボーランドとオラクルも発表してたような気がするが
strutsまわりが一番よくできてるのはJBuilderだし、JSFも期待はしたいが
別ラインナップになるのかな?

スタートダッシュでIBMが決めるような気がしないでもないが
今回もIBM製品高いような気がするし、結局安い価格つけたところが勝つかなぁ
BorlandはEclipse陣営になるんだよね?
>>947
JSFに関してはSunがSunJavaStudioCreatorを「非常に安く」提供するっていってるね。
950926:04/05/20 17:14
はい、926デス。

初心者ですが今までJbuilder、昨日からEclipseを使い始めました。
簡単な機能しか使ってないですが、Eclipseのほうが使いと思ってます。
もう戻れません。メモ帳からJbuilderに変わった時ほどの衝撃はないけどヽ(´ー`)ノ
951デフォルトの名無しさん:04/05/20 18:17
Eclipseを今日いれました。日本語化もしたんですが
System.out.prinln("こんにちは");
といれると、System.out.println("□□□□");
という風になってしまいます。どうすればいいのかご存知の方いらしたら
おしえてください。
フォントの設定が怪しい。設定>ワークベンチ>フォント

そんなところで引っかかった記憶は無いんだけどなぁ。
ちゃんと日本語化できてない予感。
メモ帳が一番に決まってんだろヴァカ。
type
>951
言語パックの対応してない、3.0をいれてないか?
もしくは2.1.3までのバージョンだけど言語パックを入れてない。

ちなみに3.0M8(つまり英語版)で、951の症例に対処するには

Window→Preferences→Workbench→Colors and Fonts
 CategoryをUncategorizedにした上で
 Colors and FontsのJava Editor Text Fontsを日本語フォントの好きなのに変更
956デフォルトの名無しさん:04/05/20 20:31
俺のマシンでEclipseをいるのは無理があったのだろうか
OS98 メモリ64M  起動に20分、5回起動して1回ひらけばいいほうだ
そろそろ誘導した方がいいかな。
【Java/C/他】統合開発環境Eclipse M11
ttp://pc5.2ch.net/test/read.cgi/tech/1076074293/
>>951-956
できればそゆーのは Eclipse スレでやってくれないか?
959デフォルトの名無しさん:04/05/20 21:24
Containar以下にあるComponentのすべてのprintメソッドが
呼び出されたことを知る方法はありますか
>957
次スレの誘導もヨロシコ。
961デフォルトの名無しさん:04/05/20 22:21
Frameの上のタイトルバーの高さを取得する方法はありますか?
LayoutManagerをnullに設定して、
conteinarにsetBound(0,0,w,h)してFrameにaddすると
Conteinarの0,0はFramenoタイトルバーのところにきてしまいますよね?
962デフォルトの名無しさん:04/05/20 22:35
プログラマー板で聞いたのですが解らないので
教えてください。
フォルダにj2sdk_1.4.2_04が存在してますが
パスの設定で環境変数Pathの変数値に;c:\j2sdk_1.4.2_04\bin
と加えてもJavaが使えません。
どうしたらいいですか?
インストールの時に「完了できませんでした」みたいなことが
表示されたのですが、解らなかったのでそのままにしておきました。
ダウンロードは正常にできたのですが、
やはり、インストールされてないということですか?
教えてください・・・
>>962
;C:\j2sdk1.4.2_04\bin
>>961
Frame に適当なコンテナをくっつけて
そのコンテナに対してくっつけていけばいいんじゃないですか。
そもそもレイアウトを null にするのが間違ってますが。
965デフォルトの名無しさん:04/05/20 22:53
APIというのは
いわゆる
http://java.sun.com/j2se/1.4/ja/docs/ja/api/index.html
の事でしょうか?

この場合JavaDocとの違いがよくわかりません
教えてください
966デフォルトの名無しさん:04/05/20 23:02
Eclipseでサーブレットを利用したいのですが
なぜかインポートできません
何か設定とかしなければならないのでしょうか?
>>965
え?APIとJavaDocの違い?
まったく違うものを比較してもしょうがないよ。
そのサイトは標準APIのJavaDocでしょ。
968957:04/05/20 23:05
>960
誘導は引き受けた。スレ立てを頼む。

>961
ttp://java.sun.com/j2se/1.4/ja/docs/ja/guide/swing/1.4/w2k_props.html
この辺かな。環境依存激しそうだけど。

>965
API=Application Program Interface。
JavaDocとはあるクラスのAPIを示した文書。
(ちなみにjavadocというツールで自動生成される。使い方はjavadocでぐぐれ)

で、それはjavaの標準クラスのAPIについて書いてあるJavaDocってわけ。
「API読め」って言われたら普通はそれ。
>>968
「API読め」って言うことあるの?
「JavaDoc読め」とか「ドキュメント嫁」はあるだろうけど。
「API読め」だと、ソース読まないといけない気がするなぁ。
970デフォルトの名無しさん:04/05/20 23:23
自作のExceptionを使うとき
どうすればいいのでしょうか?

Exceptionが記述されているJavaファイルをインポートすれば
普通にthrowsとか使えるのでしょうか?
>Exceptionが記述されているJavaファイルをインポートすれば

どういう意味?
>>965
API :
 ・ある種類のソフトウェアとコミュニケートする方法の集合。
 http://en.wikipedia.org/wiki/API

APIドキュメント:
 ・APIを記した文書。

javadoc:
 ・Javaでよく使われる、APIドキュメントを作成するツール。
 http://java.sun.com/j2se/1.4/ja/docs/ja/tooldocs/win32/javadoc.html

 ・または、javadocで作成された文書そのもの。

>>970
・例外クラスを自分で書く方法。
・例外クラスを使うために必要な import 宣言の書き方。
・例外を投げる方法。

以上3つを分けて考えれ。分けて学べ。
>>970
勝手に使え。
importはクラス名のパッケージ部分を省略できるだけ。
>>968
へんなのおしえるでない

>>964のやりかた、もしくはinsetsの取得でやるべし

JFrameならばパネルを一つボーダーレイアウトあたりで貼り付けて
そのパネルの推奨サイズを設定してJFrameのpackを呼ぶことで調整する
nullがつかいたければそのパネルのレイアウトをnullにすべし

FrameもしくはJFrame直ならならshowの前にpack読んでinsets取得、
それにあわせて描画

間違っても何も考えずにsetSize系で調整してはいけない

って何度書いたかな、これ
Swingの基本であるだけに大事だが

ほとんどのGUIエディタのデフォ動作だけどNetBansは設定でかえれる
Jbuilderはどうだったかな、忘れたけど問題ない方法があったはず
EclipseVEは設定がようわからん
975962:04/05/21 00:59
>>963さん
ありがとうございます。解決しました。
_ ←これが余計ですね。
>>866
いま気付いたけど、_つけるライターに結城タソがあげられるね。

>>868がいうとおりだと、頭の古い人なのか。
たしかに古くからの人だけど。
>>947
一番のりだがやはり高いな・・・
ttp://itpro.nikkeibp.co.jp/free/NSW/NEWS/20040520/144483/
>>977
そう? WSSDで15万くらい、(いろいろ制限はつくけど)DeveloperToolBoxなら
5万くらいだよ。
979978:04/05/21 07:28
昔は50万超のWSADしかなかったから安くなったなあと思う。
Tomcat上でアプリ実行時の例外発生時に、

>Caused by: java.lang.NullPointerException
>... 51 more

こんなふうに省略されてしまう例外メッセージがあると思うんだけど、
これを省略せずにすべて出力するにはどうすべき?
次スレたてるとき関連スレで
Eclipseとか誘導しといたら?
>>977
65万か・・・

webアプリでradでお手軽にというのはどちらかというと
小規模向けだよなぁ

ここはsunに10万切ってだしてもらいたいぞい
そうしたらsun見直してやる

JavaStudioStandard5も安かったしね
結局従来のWSと同じ価格帯か

環境がWinしかないってのはどーなんだろ
まぁ大概はそれでいいんだろうけど
>>984
DeveloperToolBox契約して59800円。
でもFAQみたら評価目的でしか、と書いてあるしな
仕事で使えないのならいみねーだろ
987デフォルトの名無しさん:04/05/21 13:26
Javaばかりやってたら、Cを妙にわすれた・・
そういうことあるか?
忘れた。というか & とか -> とか (void *) とか、もう思い出したくもない。
その割にアセンブラは楽しくやるワタシ。
あるある。int[] a = new int[4]なんて書いたり。
あと、忘れたというのとは違うけど、GCに慣れすぎて自力でメモリ管理をする自信がない。
>>986
FAQちゃんとよもうよ。

|Q. Subscription収録製品を評価目的以外に利用可能でしょうか?
|例) WASやDB2は評価目的にしか利用しませんが、WSADを開発目的に利用しよう
|としており、利用条件に合わないのではないかと思っています。
|
|A. WebSphere Studio Application Developer (WSAD)などを開発目的にご利用
|することは可能です。ただし、個人での利用に限られます。プロジェクトなど
|での利用は想定されてません。

でここでいうプロジェクトなどでの利用というのは
この契約上は5コピーまで複製が許されるけど、利用するのには
契約した会社内で特定できる1個人に限るという意味。
どのみちsubscriptionはサポート無しなんで企業が使うとは思えないな。
>>991 うち使ってるよ... orz
まあサポートが必要ならWSSDに関してはsubscriptionのemailサポートオプションが
$250で利用できる。英語で対応だから苦手な人には無理だろうけど。
プログラミングを始めてそんなに時間がたってないんですが、今までは
webで調べながらjavaをちょっとだけ勉強しました。
これから本を買ってしっかり勉強しようと思い、本屋で幾つか入門書っぽい奴を見てきたんですが、
↓はどうでしょうか?

javaチュートリアル
http://www.pearsoned.co.jp/washo/java/wa_java02-j.html

「プログラミング初心者でも読めて、javaの基礎を一通り押さえてそう」というのを目標に
探してたら目にとまって、前書き読んでる感じでは何となく良さげだと思ったんですが・・・
>>987
普通に文字列処理とか正規表現とか通信とかそこらの便利ライブラリを使おうとして、ハタと困る。
次スレを立てることができなかった。
次スレを立てる人は>>1のwikiを更新よろ。
http://www.wikiroom.com/java/
http://pc5.2ch.net/test/read.cgi/tech/1085129540/l50
ヤフーでスレ建てれた。びっくりした
>>996
乙。
>>981
俺も含めて長らく誰も更新していないが、関連スレや関連サイトへの誘導はすべて、
>>1のリンク先のwikiに書こうということになったんだよね。

なぜなら、2getが間に入ったり、
2chも同一IPアドレスからの連続書き込みができなくなったりと、いろいろあったからね。
昔のJavaスレは、>>1-10辺りに大量の関連スレや関連ページへのリンクがあったしなあ。
次からは、>>1にwikiサイトがあることを明示したほうがいいかもしれない。
このスレにも、>>787とかに、wikiでFAQを作らない? という書き込みもある。
>>1とかに明示するなどして周知させたほうが、
あのWikiのFaQも更新されていいかもしれないとおもった。

そもそも>>1のリンク先のwikiの管理人が、知識に乏しく、あまり有能ではないうえに、
更新しようという熱意も、どうやら今では無くなってしまったことにも、問題はあるのだが。
1000 どぞ

1000デフォルトの名無しさん:04/05/21 18:17
お言葉に甘えて
1000!
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。