【初心者】Java質問・相談スレッド103【大歓迎】at TECH
【初心者】Java質問・相談スレッド103【大歓迎】 - 暇つぶし2ch90:デフォルトの名無しさん
07/06/29 03:11:34
Javaアプレット(ファイル名:abc.jar)でOKボタンを押したときのイベントで、Javaアプレット自身を再起動させるプログラムを書きましたが、時々動作しなかったりしています。

OKボタンを押したときのイベントの中にRuntime.exec()で2つのシェルスクリプトを実行するプログラムを書きましたが、
1つ目のJavaアプレットのプロセスをkill するスクリプトは常に動作しますが、2つ目のJavaアプレットを起動するスクリプトが動作したり、動作しなかったりしています。
・1つ目 stop.sh:(abc.jarのプロセスをkill するスクリプト)
・2つ目 start.sh:java -jar abc.jar

String[] cmd= {"stop.sh", "start.sh"};
Runtime.getRuntime().exec(cmd)
でcmdにスクリプトを渡すようにしています。
この書き方はだめなのでしょうか?

ソースは手元にありません。すみません。
よろしくお願いします。

91:デフォルトの名無しさん
07/06/29 03:22:45
アプレットから Runtime.exec ですか。実に危険だな。

92:デフォルトの名無しさん
07/06/29 03:35:31
>>90
2つ目動作することある?

Runtime#exec(String[]) の2つ目以降の要素は1つ目の要素の引数ではないか?


93:90
07/06/29 03:47:39
すみません。間違えていたと思います。

>String[] cmd= {"stop.sh", "start.sh"};
>Runtime.getRuntime().exec(cmd)

String cmd[] = new String[2];
cmd[0]="stop.sh"
cmd[1]="start.sh"
Runtime.getRuntime().exec(cmd[0])
Runtime.getRuntime().exec(cmd[1])



94:デフォルトの名無しさん
07/06/29 04:39:48
>>85
組み込み用Cしか動かないような環境でJava動くの?


95:デフォルトの名無しさん
07/06/29 04:43:53
>>90
どうせネタだろうけど

Runtime.getRuntime().exec(cmd[1]);
Runtime.getRuntime().exec(cmd[0]);

これでいいよ


96:デフォルトの名無しさん
07/06/29 06:48:01
>>81
setの変更がremoveのみなら、こういう手も。
for(Iterator<Foo> iter = set.iterator(); iter.hasNext();){
 Foo f = iter.next();
 if(...){
  iter.remove();
 }
}
せっかくの enhanced for loop が使えないのはもったいないけど。

97:デフォルトの名無しさん
07/06/29 07:45:23
>>81
こんな感じにする
Set<Foo> set = new HashSet<Foo>();
Set<Foo> temp = new HashSet<Foo>(set); // 丸々コピー
for(Foo f: set) {
    // ここで temp を変更
}
set.clear();  // 一度、空にしてから
set.addAll(temp); // 全部詰めなおす

参照の問題が起きないのであれば、2行を、set = temp;としてもいいけど、
このメソッドでSetを生成して返すのでもなければ、clear addAll のコンボのがいいと思う。
もし、他のスレッドからsetの更新の可能性があるならば、同期も取ろう


98:デフォルトの名無しさん
07/06/29 15:40:33
URLConectionでリクエスト送信→レスポンス受信な処理をやろうとしてるんですが、
ループ内でリクエスト送信後、レスポンス受信の前に次のリクエストを送る事ってできないんでしょうか?
レスポンスを待たずにリクエストを送りたいと思っています。
こういうのはthreadを使うべきなんでしょうか?

99:デフォルトの名無しさん
07/06/29 17:11:46
threadを使うべき

100:デフォルトの名無しさん
07/06/29 17:53:15
国際化対応って最後にまとめてやったほうが効率いいですか?

101:デフォルトの名無しさん
07/06/29 19:48:07
>>100
はじめから考えなきゃだめな部分とそうでない部分がある。

まあ、とにかくはじめに検討することが大事。

102:デフォルトの名無しさん
07/06/30 00:14:50
ArrayList<Integer>クラスのインスタンスをint[]クラスに代入したいのですが、どうしたらよいのでしょうか?
toArray()メソッドを使おうと考えたのですが、Integer[]クラスへの代入はできるもののint[]クラスへは代入できませんでした

103:デフォルトの名無しさん
07/06/30 01:00:43
>>102
ArrayList<Integer>とint[]は一方が他方のサブクラスの関係でないので代入できない。
リストの各要素をint[]の各要素に代入したいのなら、
toArrayでInteger[]を生成したあとで、同じ要素数のint[]を作って、各要素に代入していく。

104:デフォルトの名無しさん
07/06/30 01:03:39
ArrayList<Integer>から各要素を直接取り出してint[]の各要素に代入してもいいし。

105:デフォルトの名無しさん
07/06/30 01:25:21
配列a[]と変数b,c,dがあったとして、

if(a[ i ] && b+c<=d)

という条件文の場合、条件を日本語を訳すと「a配列のⅰ番目の要素とb+cがともにd以下の場合」ということでいいんでしょうか?

106:デフォルトの名無しさん
07/06/30 01:30:52
「a配列のⅰ番目の要素とtrueかつb+cがd以下の場合」

107:デフォルトの名無しさん
07/06/30 01:31:33
×要素と
○要素が

108:デフォルトの名無しさん
07/06/30 01:32:17
JAVAの通信についての質問です、お願いします。

URL url = new URL(address);
URLConnection connection = url.openConnection();
としたとしてサーバーに「GET」としてリクエストが行くと思うのですが、ヘッダーのUser-AgentがJava/1.5.0_12となっています。
ネット上のデータを取得するときに、指定したヘッダーをサーバーに送信するやりかたはあるでしょうか?

今はテストとして、URLリンク(www.cybersyndrome.net)をURLクラスで取得して、User-Agentの書き換えをあれこれ試してるんのですが、
URLConnectionのsetRequestPropertyなど試してもなかなかうまくいきません。

よろしくお願いします。

109:デフォルトの名無しさん
07/06/30 02:16:26
>>108
setRequestPropertyはストリームを開く前にセットしないと効果がないよ。
URLConnection u = new URL(...).openConnection();
u.setRequestProperty("User-Agent", "hogehoge");
InputStream s = u.getInputStream();
こんな感じで。
もし、hogehoge Java/1.5.0_12みたいに後に元のUser-Agentが付いても構わないなら、
javaのオプションに-Dhttp.agent=hogehogeとかやるだけでいける。

110:デフォルトの名無しさん
07/06/30 02:24:22
BufferedReaderクラスのreadLineメソッドで一行ずつ読み込む処理を行っているのですが,
現在まで読んだ文字数を知る方法はないでしょうか?

読み込んだ文字列の長さを足していけばいいと思ったのですが,
改行が削除されているために,改行コードがCRかCRLFかわからない場合うまく数えられないのです.

111:デフォルトの名無しさん
07/06/30 02:30:11
>>110
BufferedReader#readLineではたぶん無理
一文字ずつ読んで行にまとめる処理は自分でやる

112:110
07/06/30 02:31:56
>>111
thx
了解です

113:デフォルトの名無しさん
07/06/30 02:35:55
もし改行コードが一貫していることが分かってるなら
とりあえず最初の行末端が出るまでは一文字ずつ読んで
改行がLFかCRLFかCRかを判断したら
あとはreadLineで読んで改行の種類に応じて行ごとに文字数に1か2を足してやる手もある

114:110
07/06/30 02:37:43
すみません,追加で質問させてください.
BufferedReaderで現在まで読んだバイト数(現在位置)も知ることは無理でしょうか?

115:108
07/06/30 02:44:38
>>109
継続的にUAの改変をしたいのでプログラム中に書こうと思ってます。
試した処理が
URL url = new URL(String address);
URLConnection connection = url.openConnection(); //オブジェクト取得
connection.setRequestProperty("User-Agent", "hogehoge"); //ヘッダーセット
connection.connect(); // 接続
という風にやってます。
その後は、BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));で読み込んでreadlineでデータ読み込むとやっぱりUAがJAVAのままになってます。

ぐぐって出てくるサイトはPOST処理について書かれてるものばかりで。
URLで中身取得するだけなら、これ以上処理はないと思ってるのですが。

connect()前にヘッダー送られてるのでしょうか…

116:デフォルトの名無しさん
07/06/30 02:52:28
URLConnectionの方でUser-Agentを設定してるのに
実際にデータを読むときはなんでURLからストリームを開いてるの?

117:デフォルトの名無しさん
07/06/30 02:54:22
if(blp==0) i=2;
for(;i<bln;i++){

}

if(blp==0){
i=2;}
for(i=2;i<bln;i++){
}

は一緒の意味?

118:デフォルトの名無しさん
07/06/30 02:56:18
>>114
多分無理っぽい。自分でカウントするしかなさそう。

>>115
わざわざconnectしなくてもデータを読もうとした時点で勝手に接続してくれるよ。

119:デフォルトの名無しさん
07/06/30 02:58:50
>>117
blpの値によって違う

120:110
07/06/30 02:59:18
>>118
ありがとう.了解です.


>>113の方法でやってみることにします

121:デフォルトの名無しさん
07/06/30 03:01:21
>>119
もしblpが0と1の2種類の場合、0と1でどう違うのでしょうか?

122:デフォルトの名無しさん
07/06/30 03:09:07
blpが非零の時にif文が終了した時点でiに何がセットされてるか考えてみ

123:デフォルトの名無しさん
07/06/30 03:10:59
>>122
実際に実行してみて分かりました!

124:108
07/06/30 03:15:28
>>116
ありがとうございます、UA表示が変わりました。
どうやら、本でURL先のデータ表示だけをする部分に
URLリンク(journal.mycom.co.jp)
ここのヘッダー取得処理を加えたときに、ごっちゃになったようです、すみません…

>>118
私も最初はconnect()いらないんじゃないかと思ったんですが、ぐぐったときに出たサイトで
// コネクション生成(この時点では、接続されていない)
con=(HttpURLConnection) url.openConnection();
とあったので、そういうものだとばかり思ってました。

ありがとうございました、またがんばろうと思います。

125:デフォルトの名無しさん
07/06/30 06:27:34
仕様書よりも馬の骨サイトの方を信用する癖は無くした方がいいよ

126:デフォルトの名無しさん
07/06/30 07:33:53
実行中のウィンドウがアクティブでなくなってもキーボード入力を受け付ける方法ってありませんか?

127:デフォルトの名無しさん
07/06/30 08:41:40
ありますよ

128:デフォルトの名無しさん
07/06/30 21:08:43
Servlet アプリケーションの設定って、どこに記述すればいいの?
Windows アプリケーションでいうところの INI ファイルみたいな
設定ファイルって Servlet にはないの?
properties ファイルはローケール依存テキストを記述するものだから
適当じゃないよね?

129:デフォルトの名無しさん
07/06/30 21:18:21
ここにその質問文を書く時間があれば、
グーグル先生に「Servlet 設定ファイル」で聞いてみろよ。
URLリンク(www.google.co.jp)

130:128
07/06/30 21:25:19
>>129
調べたんだけど、どこか分からないんです。
コンテキスト ファイルでもないし、server.xml でもないし、web.xml でもない。。。

外部プログラムのパスとか、アップロードしたファイルを記録するディレクトリとか、
Servlet を配備するユーザーが書き換えれるような設定ファイルって、どれになるのかな?


131:デフォルトの名無しさん
07/06/30 21:31:00
>>130
そういうことか
アプリケーション自体の設定ファイルなんぞ、読める場所に好きな形式で書いておけばいい
変更も少なく数も少なければ、web.xmlに記述するのもあり。
よくやるのは、設定ファイルのパスをweb.xmlに書いておき、実際の設定ファイルは別にするという形
そうすればテスト用の設定ファイルとかを使い分けるのが楽。

形式はXMLにするかプロパティファイルにするか独自形式か、それは好きにしてくれ

132:128
07/06/30 21:34:23
>>131
ありがとう。とても参考になったよ。

133:デフォルトの名無しさん
07/06/30 21:43:49
>>131
ありがとう。とても参考になったよ。

134:デフォルトの名無しさん
07/06/30 23:23:18
swingのJButtonについてですけど、ActionPerformed()の中でIconをsetIcon()で交互に付け替えています。
しかし、ボタンを2回以上押すとアイコンの後ろに「...」のような文字が入ります。 ちなみに、setActionCommand()も
同時に使っています。 何かのバグでしょうか?

アプリは簡単な動画再生プログラムでPlayとPauseのアイコンを入れ替えるだけのものですが、何か解決方法は
ないでしょうか?

135:デフォルトの名無しさん
07/06/30 23:27:30
>>134
ソースみなきゃ何ともいえないけど・・・
JButton playButton = new JButton();
JButton pauseButton = new JButton();
と個別にインスタンス作って、setEnableで制御した方が確実な気がする
どうしても1ボタンで済ませたいのであれば、setVisibleで見せる/見せないの制御を行うほうが自然

136:88
07/06/30 23:50:05
以前「やさしいjava」で勉強してて質問した88です。
値渡し、参照渡しの理解で苦しんでます。

値渡し、参照渡しは言語によってあったりなかったりぽいのですが、これは理屈どうこうっていうより「java仕様」って事で覚えた方がいいのでしょうか?
なぜ値渡し、参照渡しと別々の考え方なのかが理解できないでいます。

「やさしいjava」曰く、クラス型変数は代入=参照渡しだから~という内容で、int型等を「基本型」とくくって「基本型の変数は値渡し」と書いてあります。
他のサイトやwikiで調べてみると、基本型とかクラス型とか、そういう考え方は一切なく、intやdoubleは値渡しで処理して、String型等は参照渡しがjavaの仕様と書いてあるような気がしました。

やさしいjavaで「クラスで生成された変数は参照型の処理をされる」と書いてありますが、自分のコードのクラスで生成した変数だろうが、クラスライブラリ使用での変数だろうが、
どっちもクラス型変数のような気がして、いまいち「int型やdouble型は基本型の変数」というのが納得いきません。

int型やdouble型等は値渡し、String型は参照渡し みたいな感覚で覚えていいのでしょうか?
うまく説明できてい上に初歩すぎる質問かもですが、よろしくお願いします。


137:デフォルトの名無しさん
07/06/30 23:57:57
>>136
URLリンク(www.google.com)

138:デフォルトの名無しさん
07/07/01 00:11:09
>>136
やさしいJavaはろくな目にあわないなw
Javaでのプリミティブ型は特殊だという認識を持った上で、メソッド呼び出しの時は全てインスタンスの参照が渡されると認識するならばいいんじゃないか?

納得して先に進みたいならば、この辺に結構詳しく書いてあった
URLリンク(d.hatena.ne.jp)

139:88
07/07/01 00:27:18
>>138
仕組みについては理解できました!
クラス型の変数というところでひっかかっていたようです。
クラスで作った変数1=変数2だと参照型というのは理解していたのですが、
やさしいjavaで「String n」の引数に「一号車」と代入する時はクラス型変数なので参照型 という記述があって、
なぜString型がクラス型の変数なのか?とワケワカラン状態になってました。
プリミティブ型が特殊っていう考え方が非常にわかりやすかったですw
値渡しが基本で、参照渡しが特殊 ではなくて、参照渡しばっかりのjavaの中でプリミティブ型は値渡しが行われてる仕様 って事でいいんですね。
勉強になりました。ありがとうございました!

140:デフォルトの名無しさん
07/07/01 00:36:18
>>139
クラス型変数?
違和感を感じたのはそこか!
「クラス型変数なので参照型」は逆だ、逆。
「インスタンス(正確にはその参照)は、参照型変数に代入できる」が正しい
だから、参照型変数の型は必然的にクラスになる

インスタンスの存在に関する記述がテキトーなんだな、その本は

141:デフォルトの名無しさん
07/07/01 00:38:14
Eclipseにてデバッグした後、プログラム終了時に、
#
# An unexpected error has been detected by HotSpot Virtual Machine:
#
# EXCEPTION_ACCESS_VIOLATION 。。。

というメッセージがコンソール画面に出て来るときがあります。
Eclipseのデバッグ画面には、このエラーが発生した箇所が出てこないので、どこで発生しているのか分かりません…
このエラーメッセージが出た場合、とりあえずプログラムのどこをチェックすべきですか?
ACCESS_VIOLATIONってことなので、C言語だったらポインタ演算してる箇所とかをチェックするんですが…

142:デフォルトの名無しさん
07/07/01 00:39:09
javaの値型はC++の値型とは違うからなぁ・・・

143:デフォルトの名無しさん
07/07/01 00:45:57
>>141
Swingとかマルチスレッド関連?
どの手のアプリケーション実行していての話だろうか。
デバッグ時だと予期せぬ状態としか言いようがないな

144:デフォルトの名無しさん
07/07/01 00:54:24
>>141
それが出たときは飼い犬に咬まれたと思って諦めろ

145:デフォルトの名無しさん
07/07/01 01:02:59
>>143
今はSwingとマルチスレッド両方使ってます。Swingだけで出てきたこともあります。
エラーが発生した後、logファイルが吐かれてて、そこには
 
Current thread (0x00837440): JavaThread "JDWP Command Reader" daemon [_thread_in_native, id=5020]

と書かれてました。自分で作ったスレッドで発生したわけではないのかな…

>>144
諦めろ…ということは、原因を突き止めるのがすごく難しい問題だったり、まさかJavaの仕様だったりするんですか…

発生確率は1/10くらいなので「仕様」ということにしておきます。

146:デフォルトの名無しさん
07/07/01 01:09:08
>>145
マルチスレッドだと単純に不安定になるよ
デバッグでなく発生するのであれば、別の問題だろうけど
そうでないのであれば原因を突き止めるのはデバッグモードを創れるレベルが要求されそうな予感

147:デフォルトの名無しさん
07/07/01 01:12:19
>>139
>値渡しが基本で、参照渡しが特殊 ではなくて、参照渡しばっかりのjavaの中でプリミティブ型は値渡しが行われてる仕様

値渡しが全て。
プリミティブは、その値自身が、値渡しされる。
オブジェクトは、そのオブジェクトへの参照が、値渡しされる。

148:デフォルトの名無しさん
07/07/01 01:12:37
連続してデバッグしたりするとよく出るね

149:デフォルトの名無しさん
07/07/01 01:18:11
>>145
VMのバグ、または、JNIでの呼び出し先でのバグかも
Javaのプログラムを見ても解決するはずない、たぶん

150:デフォルトの名無しさん
07/07/01 02:55:57
すみません、超初歩の質問です。
URLリンク(www.javadrive.jp)を参考に
したのですが、java test1を実行すると

「注釈処理が~」というエラーメッセージが出ます。
エラーは1つです。

で、ためしにjava ソース で検索したものを実行させて
みたのですがこれも同じメッセージでエラー1つです。

これは設定が間違っているということなのでしょうか?


151:デフォルトの名無しさん
07/07/01 02:58:55
自分が書いたソース晒せー

152:150
07/07/01 03:02:09
>>151
 これです

class test1
{
public static void main(String args[])
  {
System.out.println("Hello World!");
}
}


153:150
07/07/01 03:03:36
なんかずれてる・・
もう1度

class test1
{
public static void main(String args[])
 {
System.out.println("Hello World!");
}
}

154:デフォルトの名無しさん
07/07/01 03:10:09
エラーメッセージじゃなくて警告だろ。
そのまま実行すれば実行できるよ。

155:デフォルトの名無しさん
07/07/01 03:11:12
そこは間違ってないな・・・throwされた例外を全部そのままコピペして。

あとjavacとjavaのバージョン

156:150
07/07/01 03:19:46
あ”あ・・
いろいろいじってたらまた出来なくなってきた
操作可能なプログラムまたはバッチファイルとして認識されません
とか出てきた・・・
ちょっと出直してきます。すみません・・・

javacのバージョンとは??
javaはjdk1.6.0_01です

157:150
07/07/01 03:23:53
あと、システムの環境変数で、PATHの所だけ
C:\Program Files\Java\jdk1.6.0_01\bin に変えればよいみたい
なのですが、間違えて class PATH とPatch もこれに
してしまったのですが、問題アリでしょうか??


158:デフォルトの名無しさん
07/07/01 03:26:01
PATHをいじったんだろう。そこでハマるのは本質じゃないから

cd C:\TestClass
C:\Java\jdk1.6.0_01\bin\javac test1.java
C:\Java\jdk1.6.0_01\bin\java test1

みたいにフルパスで指定するべし


159:デフォルトの名無しさん
07/07/01 03:38:28
というか普通は

JAVA_HOME = <install_dir>
Path = %Path%; %JAVA__HOME%\bin;

とする。
CLASS_PATHは必要な時だけ。

環境変数Pathって復元できたっけ?

160:150
07/07/01 04:05:09
なんとか最初の問題まで戻れました。
エラーはこういう表示です。

エラー:クラス名 'java' が受け入れられるのは、注釈処理が明示的に要求された場合だ
けです
エラー 1 個

C:\jsample>


こっから全く進めません・・・
ぐぐっても出てこないし



161:150
07/07/01 04:06:58

ファイル名をjavaに変更しました

162:デフォルトの名無しさん
07/07/01 04:21:33
ソースファイル名をtest1にしてjavac→java

163:150
07/07/01 04:26:10
>>162
 ダメです・・・
 同じメッセージしか出ません。
 なんでだろう????頭こんがらがってます
 3時間くらいずっとつまずいでます

164:デフォルトの名無しさん
07/07/01 04:27:13
答:今日はあきらめて寝る

165:デフォルトの名無しさん
07/07/01 04:29:58

Test01.java

------------------------------------

class Test01
{
public static void main(String args[])
 {
System.out.println("Hello World!");
}
}


166:150
07/07/01 04:30:14
'java' が受け入れられるのは、注釈処理が明示的に要求された場合だ
けです

このメッセージをぐぐっても出てこないのは
やっぱり普通はこういう事にはならないからなのでしょうか。
うーーーーん・・

>>164
 6時までは頑張ってやってみます
 ダメなら寝る

167:デフォルトの名無しさん
07/07/01 04:31:04
ミスった

Test01.java

public class Test01
{
public static void main(String args[])
 {
System.out.println("Hello World!");
}
}


168:デフォルトの名無しさん
07/07/01 04:32:29
javac test1 とやると「注釈処理が明示的に要求され・・」と出るようだ。
javacでは拡張子の.javaを含むファイル名を指定する必要あり。
java では拡張子の.classは付けない。

javac test1.java
java test1


169:150
07/07/01 04:49:15
CLASSファイルが作成されたらいいんですよね????

できましたーーーーーーーーーーーーー!!
ファイル名に .java をつけてjavaファイルにしていなかったのが
1番の原因だったと思われます。

ただ、サイトや実用書のように文字が表示されないのが
よくわかりませんが、とりあえず第一関門突破です
ありがとうございました

170:デフォルトの名無しさん
07/07/01 04:53:15
>>150
コマンドプロンプトとかDOSとかCUIってしってるか?

171:150
07/07/01 04:57:42
>>170
 コマンドプロンプトは分かります。
 DOSはDOS-Vとかのでしょうか?(真っ黒い画面のがそう?)
 DOSとCUIは言葉は聴いたことありますが今いちよく分かりません・・
 

172:デフォルトの名無しさん
07/07/01 04:57:55
JMenu m = new JMenu("ファイル選択");
m.add(new JFileChooser());

という感じで、JMenuにJFileChooserを置いて、メニュー内に選択画面を出す…
という変なことやってみたいんですが、ちゃんと表示はされます。
でも、スクロールバーが動かなかったり、ボタンも機能してくれません。
やっぱり無理なんですかね

173:デフォルトの名無しさん
07/07/01 05:00:12
hoge.java.txt っつーのもあるな

174:150
07/07/01 05:00:56
JAVAファイルをCLASSファイルに変換させるとこまでは
できましたが、Hello Worldの表示が出ない・・・


175:デフォルトの名無しさん
07/07/01 05:03:47
>>171
じゃあさっき生成されたclassファイルがあるディレクトリ(フォルダ)に潜って

java test1

>>172
メニューアイテムが選択された時にチューザを表示するようにする。とか。

176:150
07/07/01 05:12:33
>>175
 今までコンパイラとインタプリタを勘違いしてました。
 コンパイラで文字を出そうとしていたのですが
 やっと意味が分かってきました。
 
 でも、CLASSファイルができたので

 java test1 で出てきそうなのですがエラーになります


 うーーん・・・
 もうちょいやってみます

177:デフォルトの名無しさん
07/07/01 05:21:40
public class Test01
~~~~~~~~~~~~

178:150
07/07/01 05:29:22
Exception in thread "main" java.lang.No ClassDef FoundError:test1

このようなエラーがでます。
おかしいなぁ・・

179:デフォルトの名無しさん
07/07/01 05:40:49
もしかして元もとの環境変数Pathに;.含んでない?
ないなら追加。

180:デフォルトの名無しさん
07/07/01 05:48:14
ところでさ、>>1のwiki内のリンク参照するとたまに
URLリンク(ezrenai.takara-me.com)
にリダイレクトされるんだけどPHPおかしくない?

181:150
07/07/01 05:48:51
>>179
 PATHなんですが、いろいろいじったせいで
 元々設定してあったのを全部消して今は

 C:\Program Files\Java\jdk1.6.0_01\bin

 を設定してあります。; はどこに追加すればよいでしょうか?

182:150
07/07/01 05:51:20
すいません、がいしゅつ質問してしまいました。
>>1をちゃんと読んでなかったので
ちょいと行ってきます!!

183:150
07/07/01 06:21:16
なんかよく分からないけど、一応できました。
質問答えてくださったみなさんありがとうございました!
やっと次に進めます


184:デフォルトの名無しさん
07/07/01 06:35:34
皆さんて2人くらいしか居ない気がするw
どうせ俺はvipの深夜保守組だし気にするな。
ただし、昼間は頭使えw

185:デフォルトの名無しさん
07/07/01 09:00:24
色について以前質問したものですが
WEB上で見るときに色の情報がポップアップで見れたりできるようにしたいんですが
どなたか作ってもらえませんか
URLリンク(sky.ap.teacup.com)
欲を言えば最後に絵の具の番号で言うとどうなるのか変換してくれるボックスみたいのがあれば
うれしいんですが


186:デフォルトの名無しさん
07/07/01 09:03:21
モニタのキャリブレーションしてるか?

187:デフォルトの名無しさん
07/07/01 09:05:54
キャリブレーションってなんですか

188:デフォルトの名無しさん
07/07/01 09:12:49
Googleで検索くらいかけてから反応しような

189:デフォルトの名無しさん
07/07/01 09:36:13
>>168-169
Javaのエラーメッセージって相変わらず不親切だな。MSほどじゃないけどさ。
普通に「拡張子(.java)をつけてください」って出せよな


190:デフォルトの名無しさん
07/07/01 09:39:17
そこら辺の屑モニタにキャリブレーションする意味もないだろ。
元が狂いまくってんだし、幅が効かん。
それともそっち系のモニタの話?

にしても>>185はひどいな。

191:デフォルトの名無しさん
07/07/01 12:53:48
JAVA3Dなのですが、1秒ごとに1つずつ同じ図形をずれた位置に追加表示
させるにはどのようにすればいいのでしょうか。
↓こんな感じです

  最初 □

  一秒後□□

もう一秒後□□□



できれば5個くらい表示させたところで停止させる処理の記述も
教えていただけるとありがたいです。
よろしくお願いします。


192:デフォルトの名無しさん
07/07/01 14:15:28
キャンバスに文字を表示しているんですが、
public void paint(Graphics g) {
        ・
g.drawString("文字間隔",x,y);
        ・
}
その文字の間隔を任意に設定はできないんでしょうか?
ご教示願います。

193:デフォルトの名無しさん
07/07/01 16:27:49
>>191
スレッドまたはタイマー

>>192
g.drawString("文",x1,y);
g.drawString("字",x2,y);
g.drawString("間",x3,y);
g.drawString("隔",x4,y);
どのくらい間隔あけるかは、fontMetricsから計算する


194:192
07/07/01 16:43:43
>>193
わかりました。やってみます。ありがとうございました。

195:デフォルトの名無しさん
07/07/01 17:28:44
gifイメージをアイコンに読み込んで表示するプログラムですが、jarに固めるとgifファイルを
読み込んでくれません。 imagesディレクトリに入れてあり、ディレクトリ構造は同じなのですが、
何か MANIFEST.MFに書き加える必要はあるのでしょうか?

196:デフォルトの名無しさん
07/07/01 17:43:17
URLリンク(240k.main.jp)

197:デフォルトの名無しさん
07/07/01 17:48:03
>>196
わかりました。やってみます。ありがとうございました。

198:195
07/07/01 17:56:28
195だけど、getClass().getResource()を使うとうまくいった。 疲れた・・・

199:デフォルトの名無しさん
07/07/01 18:13:22
public class longtest {
public static void main(String[] args) {
long a=2147483647;
System.out.println(a);
}
}

このプログラムのaの値をより大きく表示できるように改変してください。
この値よりも1でも大きくなるとエラーが出てしまいます。
値は出来るだけ大きいほうが良いです。

200:デフォルトの名無しさん
07/07/01 18:16:20
jarに固めるとファイルを読み込めなくなるハマリの初心者的2大原因
1.リソース検索してそのURLを指定せず、ファイル名を直接指定している。
2.Windowsのような大文字小文字の区別をつけないファイルシステムを使っていて、区別をつけるjar内の事情を気にしていない。

201:デフォルトの名無しさん
07/07/01 18:19:59
>>199
どっちでも使え
public class longtest {
public static void main(String[] args) {
long a=2147483648L; //1増加
a=Long.MAX_VALUE; // 最大限に増加
System.out.println(a);
}
}

202:192
07/07/01 18:24:37
>>197
おいおい、IDでないからってパクるなよw
やってみたけど、めんどうですね。ところでMFCの
SetTextCharacterExtra
みたいに1発で指定できないですかね。
setCharacterSpacing
というのがあるみたいですけど、使い方がわからないです。

203:デフォルトの名無しさん
07/07/01 18:36:35
やってることは子供じみてるけれど、
自分の質問に対するレスへの自分を騙ったレスではないんだからいいんじゃね?
騙りとは違うからIDが出ないこととは無関係。

一発で指定したいのなら、後々のことも考えてsetTextCharacterExtraメソッドを自作する。

204:191
07/07/01 18:39:34
URLリンク(www.javaopen.org)
↑をもとに作ってみようとしたんですが、これだとBranchGroupや
TransformGroupはどこで定義すればいいのでしょうか?

205:デフォルトの名無しさん
07/07/01 18:42:30
>>203
了解。

206:デフォルトの名無しさん
07/07/01 20:22:37
>>204
リンク先のソースのどこにもBranchGroupやTransformGroupはないが?
自分のソース貼り付けてくれよ

207:デフォルトの名無しさん
07/07/01 21:39:23
↓の文章がコンソールのところに出てきたんですが・・・
どこが間違ってるってことなんでしょう?


Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at Shukudai453.main(Shukudai453.java:26)

二行目の()の中をクリックすると、ソースコードのこの部分↓が青くなるんですが・・・
int n = Integer.parseInt(args[0]);


*****************
という質問を他スレでしたら、「引数指定」といわれました。
それ以上聞くとスレ違いだらしいので、ここで聞かせてください。
どこを直せばいいんでしょう?

208:デフォルトの名無しさん
07/07/01 21:41:22
すみません
WindowsでSWT使ってプログラム書いて実行可能なjarを作ろうとして躓いています
マニフェストファイルを作って
Main-Class: Hoge
Class-Path: . swt.jar swt-win32-3236.dll
さらに
jar cvfm Hoge.jar Hoge.mf Hoge.class swt.jar swt-win32-3236.dll
として固めたjarを(Javaだけはインストールしてある)別の機械に持って行って
java -jar Hoge.jar
とするとDLLが見つからないと言われてしまいます
あらかじめカレントディレクトリに
swt-win32-3236.dll が存在する環境だと実行出来るみたいなのですが



209:デフォルトの名無しさん
07/07/01 21:43:43
>>207
java Shukudai453 数字
で実行

210:デフォルトの名無しさん
07/07/01 21:47:10
>>207
どんな環境でなにをどうやったらそうなったのか書け
それすら出来ないならば、ここでもスレ違いだ

211:デフォルトの名無しさん
07/07/01 21:51:49
ええっと
URLリンク(sourcepost.sytes.net)
を実行したんですが・・・

212:デフォルトの名無しさん
07/07/01 21:53:29
実行とは?
Javaのバージョンは?
そもそもコードを理解できている?
あと、学ぼうとする気ある?

213:実行したのはこっちの間違いでした
07/07/01 21:57:38
import java.util.List;
import java.util.ArrayList;
public class Cebysev {
private static List<Integer> primeCache;
static {
primeCache = new ArrayList<Integer>();
}
private static boolean isPrime(int value) {
if (!(primeCache.indexOf(value) != -1)) {
return true;
}


214:デフォルトの名無しさん
07/07/01 21:59:19
すいません>>213は忘れてください・・・

>>212
自分ホント分からないものだらけなんで。。。
明日までに完成させたいんです

215:デフォルトの名無しさん
07/07/01 22:02:41
そんな状態になるまで勉強をしなかったお前が悪い

216:デフォルトの名無しさん
07/07/01 22:04:27
完成させることは無理
同情の余地も無い

大学名と学部を晒したら変わりに提出しておいてやるよ


217:デフォルトの名無しさん
07/07/01 22:23:19
だから宿題スレの701嫁

218:デフォルトの名無しさん
07/07/01 22:28:12
絶望的に理解不足だなw

219:デフォルトの名無しさん
07/07/01 22:28:16
>>208
URLリンク(www.seman.cs.uec.ac.jp)


220:デフォルトの名無しさん
07/07/01 22:29:26
C++で typedef std::vector<std::string> strings_t; という感じに
ArrayList<String> に別名を付けたり出来ますか?

221:デフォルトの名無しさん
07/07/01 22:32:56
>>220
public class StringList extends ArrayList<String> {}
とかすれば出来る(?)けど、何にも意味がないような

222:デフォルトの名無しさん
07/07/01 22:38:17
コンストラクタも定義する必要がありそうな

223:デフォルトの名無しさん
07/07/01 22:38:51
>>220
Javaにはない

224:デフォルトの名無しさん
07/07/01 22:43:02
>>208
URLリンク(launch4j.sourceforge.net)


225:デフォルトの名無しさん
07/07/01 23:11:45
というかエイリアス使えるようにしたらC++みたいにタイプ数減らすためだけに
エイリアスを乱定義して可読性が落ちるからやめてほしいなぁ。

226:デフォルトの名無しさん
07/07/02 06:35:51
Javaの入門書、何を買うべきか迷っています。アドバイスをお願いします。

私の今のレベルは、Cが「少しは」できる感じです。
(配列・構造体・ポインタなど、基礎的な部分は分かる。
 コンパイラの挙動やプリプロセッサに関してもある程度分かる。
 作ったことがあるプログラムは、一つあたり1000行(.cファイル二つ、.hファイル一つ)程度)

個人的には、『独習Java』か『やさしいJava』かなあ、と思っていますが、どちらか決め難い。
他にもお勧めがあれば教えてください。

227:デフォルトの名無しさん
07/07/02 06:38:14
Javaとか言語にこだわらずに
オブジェクト指向の勉強もした方がいいよ


228:デフォルトの名無しさん
07/07/02 06:49:48
boolean[]の[]の中ってint型しか入らないんでしょうか?
long型では無理?


229:デフォルトの名無しさん
07/07/02 07:14:56
>>226
やさしいJavaはこのスレでもよく話題(笑)にあがるが、少なくともCをかじった人には糞本でしかない
独習Javaがいいと思う

>>228
無理
intの上限以上の配列を確保するってメモリどうなるかは考えた上で設計した方がいい

230:デフォルトの名無しさん
07/07/02 07:22:13
うーんそうなると代用とか利きますか?
どうしてもintの上限以上の配列を確保したいんですが・・・

231:デフォルトの名無しさん
07/07/02 07:23:43
>一つあたり1000行
って言われても全く規模が分からんな・・・未だにこんな言い方してる奴がいるのか。

悪いことは言わんからやさしいjavaはやめとけ。
他の糞本を読んだことないから他にどれが地雷かは分からんが
よほどのものでない限り普通に読めるはず。

後は何がしたいかによってそのジャンルの参考書もいるけど
javaの場合標準ライブラリが多くをカバーしてるんでjava+JAXP等
java開発者向けに標準ライブラリを使った専門分野な本も多くある。
これは外部ライブラリを学習するよりとっつき易さがあるので入門時にはそういう本もおすすめ。

あと、SwingはAWT覚えてから手を出した方が良い。
SwingとAWTは別ライブラリで作法が違うけどSwingはAWT上に構築されてるからSwing中で
(Swingが充実して最近減ったが)AWTのやり方が必要になってくることがあるが両方知ってないと混乱することがある。


232:デフォルトの名無しさん
07/07/02 07:29:45
>>230
intの上限を超えて配列は確保できない
そもそも上限を超えた配列を確保できてもライブラリを含め、使うことができない

配列ではない方法で同じデータ構造を持つ方法なんて幾らでもあるだろ
手っ取り早いのはlongをとって、全bitに対してフラグとして扱うとかな
分割して使うことができないとも考えられないし、一体何がしたいの?

233:デフォルトの名無しさん
07/07/02 07:32:14
>>231
1000ステップ程度ならば、規模を表すにはいいんじゃね?
自分はmainだけで収まるような簡単なサンプルが~100ステップ程度
いくつかの関数にわけてロジックを組み立てるというところで500~1000ステップ程度と感じている
個人差もあるし大雑把だけどねw

234:デフォルトの名無しさん
07/07/02 07:34:01
!seisu[n]

の!はどういう意味ですか?

235:デフォルトの名無しさん
07/07/02 07:34:41
>>230
boolean の情報量しかないんなら、
int の配列にして、その 32 ビットの 1 つ 1 つを boolean と見なせばいい。

236:デフォルトの名無しさん
07/07/02 07:35:44
あ、性格には
if(!seisu[n]){

ですね

237:デフォルトの名無しさん
07/07/02 07:36:35
>>230
現実的にはプリミティブな要素型を持つ配列を生成するケースは少ないので
だいたいの場合はint以上の長さの配列を確保するとすぐにメモリなくなる。

この場合、longを長さに取るコンテナを自作してメモリではなくディスクから読み書きして
必要な分だけメモリに置くクラスを作るのとかする。
マージソート自力で実装する程度のことが出来るならできるんじゃね?

というか配列の要素数は初期化時にint未満の型使ってもワイドニング変換でintになってるからな。

238:デフォルトの名無しさん
07/07/02 07:38:32
>>233>>235

つまり、long型の変数を宣言して、その各ビットを、0か1かによって、フラグとして代用するってことでしょうか?
3ビット目が1の場合、booiean[3]=true ってことですか?

239:訂正
07/07/02 07:40:15

つまり、long型の変数を宣言して、その各桁を、0か1かによって、フラグとして代用するってことでしょうか?
100の位が1の場合、booiean[3]=true ってことですか?

240:デフォルトの名無しさん
07/07/02 07:42:15
>>238 そんな感じ。

241:やってみます
07/07/02 07:43:24
ありがとうございました

242:デフォルトの名無しさん
07/07/02 07:44:40
>>233
細かい突っ込みだがCだと無意味な行が多いからステップ=LOCとは限らんような・・・。
テトリスくらいのをちゃんと関数分けてコメント書いてたら1000行くらいかな?

243:すいません・・・
07/07/02 07:47:11
if(!seisu[n]){
の!はどういう意味ですか?


244:デフォルトの名無しさん
07/07/02 07:51:19
条件反転

245:すいません・・・
07/07/02 07:53:16
!a=1のとき

の場合は

a=1以外のとき

ってことですか
でも>>243の場合はどういう意味になるのか分からないんです画・・・

246:デフォルトの名無しさん
07/07/02 07:57:09
seisu[n] が boolean 型で、その真偽を反転

247:すいません・・・
07/07/02 07:57:59
ありがとうございました

248:デフォルトの名無しさん
07/07/02 08:00:48
boolean a = seisu[n];
if(!a)...

こういうこと

249:デフォルトの名無しさん
07/07/02 08:01:03
「new」って調べたら
「new演算子: クラスのインスタンスを生成します 」
って出てきたんですがいまいち意味が・・・

250:デフォルトの名無しさん
07/07/02 08:07:11
本読め。本。

251:デフォルトの名無しさん
07/07/02 08:13:40
朝っぱらから二つのjavaスレがgdgdだな。
他人に考えさせる前に自分の頭使おうぜ?

252:228です
07/07/02 08:18:47
結局一からやり直すことにしました。
僕がやりたいのは、素数を探し出すプログラムで、例えば
「boolean[]のboolean[9967]=false」
だった場合、
「9967は素数ではない。」
といった感じで、素数であるかないかの表を作っていたわけですが、それだとintの上限以上の
素数を記憶できないってことで、皆さんの助言通りに、
「long型の各ビットをbooleanの真偽の代用にする」ことを目指しております。
で、さっきは分かったように思ったのですが、今考えて見るとやっぱりちょっと分からないところが出てきて・・・
long型の各ビットをbooleanの真偽の代用にする、とのことですが、long型の桁数ってint型の上限より少ないですよね?
ってことは「long型の上限の長さの配列」で代用するって意味だったのかなあっと思ったのですが、
配列の長さはintの上限を超えられないんですよね・・・?
結局、できるだけたくさんの素数であるかないかの表を作るにはどうすればいいんでしょう・・・?

253:デフォルトの名無しさん
07/07/02 08:22:52
普通は boolean に素数かどうかを貯めていくんじゃなくて、
素数を貯めていくんじゃないかな?

254:デフォルトの名無しさん
07/07/02 08:24:27
long は int の2倍のサイズなんだが

255:228です
07/07/02 08:27:23
それは、格納できる数字が2倍なのであって、
「longに格納できる最大の数」の「桁数」では素数表には少なすぎますよね?

256:デフォルトの名無しさん
07/07/02 08:28:07
配列にすればいいだろ?

257:デフォルトの名無しさん
07/07/02 08:28:10
javaってbitの集合扱うライブラリなかったけ?

258:デフォルトの名無しさん
07/07/02 08:30:11
>>252
全部メモリに持ち続ける必要ないでしょ。
区切りでファイルに吐けばlong使う必要ない。

259:デフォルトの名無しさん
07/07/02 08:30:16
BitSet ってのがあるな。

260:228です
07/07/02 08:31:03
その配列ですけど、
例えば
long n[99999999999]
とかはできるんですか?
配列の長さはどうやってもintの上限を超えられないby>>232
と聞いたので・・・

261:デフォルトの名無しさん
07/07/02 08:31:13
そもそも素数かどうか判定した時にメッセージ出力すれば良いんじゃない?
なんでループ分けるの?

262:デフォルトの名無しさん
07/07/02 08:31:18
でも、BitSet だとインデックスが int に収まらないといけないんだよな。

263:228です
07/07/02 08:32:11
>>258
すいません詳しくお願いします
(つまり足りなくなったら他の奴に乗り換えろってこと?)

264:デフォルトの名無しさん
07/07/02 08:35:37
>>260
配列の個数×longのビット数 だけの情報が扱えるじゃん。

265:デフォルトの名無しさん
07/07/02 08:36:52
で、素数表作って何をしたいんだろうか。
素数かどうかの判定でもするの?

266:228です
07/07/02 08:37:30
なるべくたくさんの素数表を作っておく必要があるんです

267:デフォルトの名無しさん
07/07/02 08:37:34
>>237

268:デフォルトの名無しさん
07/07/02 08:38:34
それは「素数かどうかのフラグ」を貯める方式じゃないと不都合があるの?
素数を貯めていくんじゃダメ?

269:デフォルトの名無しさん
07/07/02 08:38:41
>>266
>なるべくたくさんの素数表を作っておく必要があるんです
俺らはそれが何のためかと聞いている。

270:デフォルトの名無しさん
07/07/02 08:41:07
普通は long 型配列にでも素数を貯めていくよね。
prime[0] = 2;
prime[1] = 3;
prime[2] = 5;
prime[3] = 7;
prime[4] = 11;
みたいに。

271:デフォルトの名無しさん
07/07/02 08:50:27
素数の総数がint超えるって話じゃない?

272:デフォルトの名無しさん
07/07/02 08:51:26
ていうかお前らそろそろおなかいっぱいだろ?

273:デフォルトの名無しさん
07/07/02 08:56:37
素数かどうかのフラグで保存してるから
素数の総数が int を越えるとダメになるんじゃないの?

274:デフォルトの名無しさん
07/07/02 08:57:19
ちがうや。
素数の値が int を越えるとダメになる、だ。

275:デフォルトの名無しさん
07/07/02 08:59:16
Mapの実装て保持できるのエントリに上限あったけ?

276:デフォルトの名無しさん
07/07/02 09:06:32
long 配列に素数を貯めていっても、
素数が意外と多いからスペース削減にはならんっぽいな。
ファイルに書き出していけばいいけどもん。

277:デフォルトの名無しさん
07/07/02 09:09:26
そもそも素数かどうかのテーブルに何の意味があるんだ?
そこから間違ってる気がするんだが・・・

278:デフォルトの名無しさん
07/07/02 09:09:42
67,867,967 が 4,000,000 番目の素数か・・・。

279:デフォルトの名無しさん
07/07/02 09:15:41
ていうか素数の数がlong要る整数ってlongで足りるの?

今度はry・・・とか聞きそうな気がしてきた。

280:デフォルトの名無しさん
07/07/02 09:19:55
javaでも無限リストが扱えれば楽なんだけどな。
こういう問題は関数型の方が得意か・・・

281:デフォルトの名無しさん
07/07/02 09:20:04
素数判定の効率は悪いな。 >素数かどうかのテーブル

282:デフォルトの名無しさん
07/07/02 09:23:11
言い方が悪かった。
素数表の作成効率は悪いな。 >素数かどうかのテーブル

283:デフォルトの名無しさん
07/07/02 09:26:03
ん? いや、スペース削減にはなるや。
うん。やっぱり素数を配列に貯めていった方が、
速度的にも容量的にもいいみたいだ。

284:デフォルトの名無しさん
07/07/02 09:27:08
ん? いや、やっぱりスペース削減にはならんや・・・。
ちょっと混乱してきた・・・。

285:デフォルトの名無しさん
07/07/02 09:31:58
boolean * intとlong * intじゃ考えるまでもないぜ!

286:デフォルトの名無しさん
07/07/02 09:34:15
いや、式が何か違う気がするが伝わるはずだ!

287:デフォルトの名無しさん
07/07/02 09:40:28
素数かどうかのテーブルを使えば、
最大バイト数×8 の大きさの素数まで扱える。

素数を貯めていく場合、
最大バイト数/64 個の素数が扱える。
この時の素数の最大値が最大バイト数×8より大きければ
素数を貯めていく方が容量効率がいいことになるんだけど、
圧倒的に足りないから容量効率は悪いっぽ。

288:デフォルトの名無しさん
07/07/02 09:49:14
javaのbooleanって1byteに絶対すき間なく敷き詰めるんだっけ?
配列は飛び飛びなのに。

289:デフォルトの名無しさん
07/07/02 09:51:07
どちらにしろインデックスが int 越えられないんじゃなあ。

290:デフォルトの名無しさん
07/07/02 09:52:06
だから自分で作れとry

291:デフォルトの名無しさん
07/07/02 09:55:14
朝っぱらから3時間も続いてんのかこの流れ

292:デフォルトの名無しさん
07/07/02 10:10:00
所詮mp3も再生できない学術言語だからな

293:デフォルトの名無しさん
07/07/02 10:30:46
出来るだろ。どっからmp3が出てくんだよw

294:デフォルトの名無しさん
07/07/02 13:00:32
時代はOggとかAC3だろ

295:デフォルトの名無しさん
07/07/02 13:10:17
URLリンク(java.sun.com)

296:デフォルトの名無しさん
07/07/02 18:05:58
MD5で暗号化したのをSystem.out.printで表示すると巧く表示されるのですが、
JLabel.setTextで表示すると、後ろから1桁か2桁しか表示されません。
どうすれば全部表示されますか?

297:デフォルトの名無しさん
07/07/02 18:13:19
Java始めて半年の初心者です。
今は秀丸を使っているのですが、
上級者の方は後々「Java専用プログラミングエディタ」みたいなのを使い始めるのでしょうか。

298:デフォルトの名無しさん
07/07/02 18:21:20
>>296
どうやってMD5をかけたか、MD5をかけた後の変数の型、
System.out.print()した方法、setText()した方法をコードで示しましょう。

それから、MD5は暗号ではないです。



299:デフォルトの名無しさん
07/07/02 18:22:03
>>297
さいきんはEclipseを使う人が多いかもしれない。


300:デフォルトの名無しさん
07/07/02 18:23:11
>>296
digestをbyte配列で得てprintの方は順番に配列要素を表示していってるから全部表示されて、
JLabelの方には配列要素を順番に引数としてsetTextでセットしているから、
結局最後の配列要素しかJLabelには現れないというオチだったり。
もしそうなら、setTextはappendTextでないということは分かってないよね?

301:デフォルトの名無しさん
07/07/02 18:26:09
eclipseは別にJava専用プログラミングエディタではないと思うが
>>297
自分が慣れたエディタを使えばええやん

302:デフォルトの名無しさん
07/07/02 18:27:00
javaファイルからJavacsriptって動かせる?
xmlHttpRequest使いたいんだけど。
通信ってURLConnection使うしかない?

303:デフォルトの名無しさん
07/07/02 18:39:23
>>302
rhino

304:デフォルトの名無しさん
07/07/02 19:28:35
XmlHttpRequestはXML Extrasの成果だろ

305:デフォルトの名無しさん
07/07/02 20:52:25
GWT

306:デフォルトの名無しさん
07/07/02 20:58:11
ていうかURLConnectionから開いたInputStreemからDOM構築すれば良いだけだろ?
それかDOM Level 3 Load and Save使えよ。

307:デフォルトの名無しさん
07/07/02 20:58:36
>>297
そろそろEclipseに乗り換えてもいいと思うよ
禿丸使うよりも生産性が上がる

308:デフォルトの名無しさん
07/07/02 21:48:50
>>297
いきなりeclipseは導入で手間取りそうだね。
詳細なリファクタリングやコードフォーマットを頻繁に行わないならnetbeansでも良いと思う。

ヴュジュアル主体の開発とテキスト主体の開発っていうコンセプトの違いは大きいから選んだ方が良いけど。


プロトタイプでっち上げてそれをリファクタリングしまくりながら肉付けしていき開発する俺には
リファクタリング・フォーマッティング・ドキュメンテーションの面でnetbeansはかなり効率悪い。

けどGUI部分は書きたくないしリファクタリングなんてどうでもいいぜ!って人ならnetbeansの方が効率良い。

netbeansでGUI組んでeclipseでリファクタリングでも良いかも。

309:お願い!!
07/07/02 23:16:47
こんばんは。

WEBアプリケーションでよくファイルアップロード機能があると思います。
その仕組みとして直接クライアントで指定したファイルを
サーバにアップロードしないでDBにBLOGなどで登録は可能でしょうか?

可能であればその仕組みを教えてください。
よろしくお願い致します。


310:デフォルトの名無しさん
07/07/02 23:39:00
日本語でおk
どっちにしてもサーバは使うことになると思うが。


311:デフォルトの名無しさん
07/07/02 23:43:24
現在、C++のプログラムをJAVAに書き換えようとしているのですが、
C++で使われている構造体をJAVAで再現することは可能でしょうか?
もしそのまま流用して動作するのであれば有難いのですが・・・。
宜しくお願い致します。

312:デフォルトの名無しさん
07/07/02 23:44:55
>>309
FTP使えば?

313:デフォルトの名無しさん
07/07/02 23:46:40
>>309
マルチ乙

314:お願い!!
07/07/02 23:51:59
>どっちにしてもサーバは使うことになると思うが。
すみません。

サーバはAP、DBともに使うのですが、
どちらのサーバにも物理ファイルをアップロードしないで
クライアントにあるファイルを直接バイナリ変換して
DBに登録に登録出来るかが知りたかったのです。


315:デフォルトの名無しさん
07/07/02 23:53:51
>>314
クローズドなシステムだったら署名つきJavaApplet上で
JDBCでBLOBデータを流す感じかな。

とりあえず日本語の勉強しておいたほうがいい。

316:デフォルトの名無しさん
07/07/03 00:16:26
作った後のこと考えるとJWSの方が楽だろうね。

ファイルを直接バイナリ変換ってなに?
普通バイナリをBase64でテキストにエンコードするんじゃないの?

317:デフォルトの名無しさん
07/07/03 00:51:49
「アップロードしない」の意味がわからん。
バイナリ変換と言ってるが何をバイナリ変換するんだ?
アップロードされてないものを変換できないぞ。

318:デフォルトの名無しさん
07/07/03 01:18:54
>>314
アップロードしない → サーバにデータを送らない → サーバのDBに登録できない

319:デフォルトの名無しさん
07/07/03 01:26:28
物理ファイルをアップロードする → HDDから当該ファイルのセクタの磁気材料をひっぺがしてサーバの投入孔に入れる

320:デフォルトの名無しさん
07/07/03 01:45:00
>>314
クライアントにDBをインストールしてそこに目的のファイルをINSERT

バックアップファイルを作成

サーバにFTPでバックアップファイルを転送

サーバのDBにリストア

321:デフォルトの名無しさん
07/07/03 01:52:17
英文の書かれたtxtファイルがあって、そこに出現する英単語の出現頻度をカウントして、
降順にソートした状態で出力したいのですが、どのようにすればよいのでしょうか?

TreeMap使えばいいのかなーと思ったのですが、どうやってカウントしていけばいいのかというところで
ちょっとわからなくなってしまって・・・

322:デフォルトの名無しさん
07/07/03 02:00:22
英単語をキーにして出現頻度をバリューにして出現するたびに
マップを検索してなければその単語をキーにして頻度を1にして新規に加えて
あればその単語の頻度を1増やす

323:デフォルトの名無しさん
07/07/03 02:01:11
TreeMap#size() じゃダメなの?

324:デフォルトの名無しさん
07/07/03 02:06:59
コレクションに入れられるのは参照型なので
出現頻度はIntegerなどのラッパークラスを使って頻度更新のたびに入れ替えていくか
new int[1]した配列を入れてint[0]の値を更新していくか
その辺りは自分のポリシーで

325:デフォルトの名無しさん
07/07/03 03:20:07
なんとなく AtomicInteger を使ってみるとか

326:デフォルトの名無しさん
07/07/03 08:20:15
何?この素人集団w

327:デフォルトの名無しさん
07/07/03 09:23:48
流れぶった切るけど前944であがったJCursesってちゃんとつかえるの?

JNIのロード方法が特殊でjarに固めるとロード時にNoClassDefFoundErrorが出るし、固めずに実行するとExceptionInInitializerErrorが出る。

ちゃんと使えてる人居たらどうやって使ってるか教えてほしい。

うちの環境はjdk6u1とwin用JCurses 0.9.5

328:デフォルトの名無しさん
07/07/03 16:35:10
>>325
無駄では?


329:デフォルトの名無しさん
07/07/03 17:08:21
>>325
並行処理やるわけでもないのに何でそんなのが必要になるんだよw

330:デフォルトの名無しさん
07/07/03 18:18:22
単語を見つけるたびにスレッド一つ作って実行したりして。w

331:デフォルトの名無しさん
07/07/03 18:39:15
>>328-330
”なんとなく” という単語に俺が言いたいことを全部押し込めたわけだが

332:デフォルトの名無しさん
07/07/03 19:51:04
不可逆圧縮だったようです。
笑いどころも無いので皆さん解凍できなかった様子。

333:デフォルトの名無しさん
07/07/03 21:49:12
java.lang.thread
というエラーの解決法教えてくださいm(_ _)m

334:デフォルトの名無しさん
07/07/03 21:50:20
>>333
エラーは何ですか?

335:デフォルトの名無しさん
07/07/03 21:50:58
という莫迦がキてますよ

336:335
07/07/03 21:51:56
すまん>333ニダ

337:デフォルトの名無しさん
07/07/03 21:54:50
>>333
解決方法は質問じゃなくて自分で勉強することだろうな

338:お願い!!
07/07/03 22:00:08
本日色々調べてみました。
javaでのファイルアップロードの仕組みとして
一般的にクライアントで指定したファイルをサーバに
一度アップロードしてからデータベースへ
BLOB(バイナリラージオブジェクト)で登録するようです。

ただし、私の知りたいその2段階で行う処理を
サーバに一度もファイルを置かずに1段階で
データベースに登録が技術的に可能なのかが解かりませんでした。。


339:デフォルトの名無しさん
07/07/03 22:12:13
>>338
可能

340:お願い!!
07/07/03 22:14:03
やっぱり可能ですか?
出来そうな感じもするのですが
実装方法はどうしたらいいのでしょうか?

341:デフォルトの名無しさん
07/07/03 22:15:20
>>340
ちったあ調べれ

342:デフォルトの名無しさん
07/07/03 22:16:46
>>338
一度もサーバーに置かないというのは物理ファイルのことだよな?

それならば、サーバーの能力、転送量次第
十分に運用に耐えられると判断したならば、Servlet内でbyte[]やTempファイルなんかをメモリ上に作成すればいい
例えば数Kバイト程度のCSVファイルが1時間に1つ程度送られてくるとかならば、オンメモリでも問題ないだろう
だけど、例えばそれが月頭の特定時間に1万ファイル/分で転送されてくるならば止めた方がいいだろう


343:デフォルトの名無しさん
07/07/03 22:21:00
今勉強中の者ですが、
8進数や16進数など現場でつかいますか?

344:デフォルトの名無しさん
07/07/03 22:25:06
16進数は使いまくり。
8進数は使わない。

345:デフォルトの名無しさん
07/07/03 22:27:09
>>343
君が将来勤める工事現場では8進数も16進数もたぶん使わないんじゃないかな

346:デフォルトの名無しさん
07/07/03 22:30:56
16進? java.awt.Colorくらいかね?w

347:デフォルトの名無しさん
07/07/04 01:49:01
>>343
chmod 755 hogehoge.cgi

とかは 8進数


348:デフォルトの名無しさん
07/07/04 03:53:14
GUIとGraphicsについて初心者向けに解説しているサイトを教えてくださいmm

349:デフォルトの名無しさん
07/07/04 09:39:04
>>348
やだ

350:デフォルトの名無しさん
07/07/04 09:48:55
バイナリエディタって何?って奴らばっかだな

351:デフォルトの名無しさん
07/07/04 13:18:31
>>348
これからも聞きたいときは聞きに来ていいんだよ

答えたいときに答えるから


352:デフォルトの名無しさん
07/07/04 13:55:35
>>348
URLリンク(ja.wikipedia.org)
URLリンク(ja.wikipedia.org)

353:デフォルトの名無しさん
07/07/04 21:05:03
>>343
16進はよく使う。8進はあまり使わないが>>347のように使うことはある。


354:デフォルトの名無しさん
07/07/04 21:35:56
それ Java か?

355:デフォルトの名無しさん
07/07/04 22:36:41
URLリンク(java.sun.com)
Sunのホームページにあったサンプルですが、動きません。

RMIサーバ側で「Server exception:java.rmi.ServerException: RemoteException occurred in server th
read; nested exception is:」という例外が発生します。
ファイアウォールはブロック解除しましたが、結果は同じです。

昔は簡単にうごいたのに、Java1.5の仕様でしょうか?

スペック
OS:WindowsXP SP2
J2SDK:Java1.5.0_12
J2RE:Java1.5.0_12



356:デフォルトの名無しさん
07/07/04 22:37:46
もみあげ

357:デフォルトの名無しさん
07/07/04 22:39:16
>>335
その nested exception is: の後が重要。そっちも書いて

358:355
07/07/04 22:44:08
Server exception:java.rmi.ServerException: RemoteException occurred in server th
read; nested exception is:
java.rmi.UnmarshalException: error unmarshalling arguments; nested excep
tion is:
java.lang.ClassNotFoundException: example.hello.Hello
java.rmi.ServerException: RemoteException occurred in server thread; nested exce
ption is:
java.rmi.UnmarshalException: error unmarshalling arguments; nested excep
tion is:
java.lang.ClassNotFoundException: example.hello.Hello


359:355
07/07/04 22:44:50
at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:385
)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:240)
at sun.rmi.transport.Transport$1.run(Transport.java:153)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:4
66)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport
.java:707)


360:355
07/07/04 22:46:25
at java.lang.Thread.run(Thread.java:595)
at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(Unknow
n Source)
at sun.rmi.transport.StreamRemoteCall.executeCall(Unknown Source)
at sun.rmi.server.UnicastRef.invoke(Unknown Source)
at sun.rmi.registry.RegistryImpl_Stub.bind(Unknown Source)
at example.hello.Server.main(Server.java:24)
Caused by: java.rmi.UnmarshalException: error unmarshalling arguments; nested ex
ception is:
java.lang.ClassNotFoundException: example.hello.Hello


361:355
07/07/04 22:47:08
at sun.rmi.registry.RegistryImpl_Skel.dispatch(Unknown Source)
at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:375
)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:240)
at sun.rmi.transport.Transport$1.run(Transport.java:153)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:4
66)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport


362:355
07/07/04 22:47:58
.java:707)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.ClassNotFoundException: example.hello.Hello
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.Class.forName0(Native Method)


363:355
07/07/04 22:48:42
at java.lang.Class.forName(Class.java:242)
at sun.rmi.server.LoaderHandler.loadProxyInterfaces(LoaderHandler.java:707)
at sun.rmi.server.LoaderHandler.loadProxyClass(LoaderHandler.java:651)
at sun.rmi.server.LoaderHandler.loadProxyClass(LoaderHandler.java:588)
at java.rmi.server.RMIClassLoader$2.loadProxyClass(RMIClassLoader.java:628)
at java.rmi.server.RMIClassLoader.loadProxyClass(RMIClassLoader.java:294)
at sun.rmi.server.MarshalInputStream.resolveProxyClass(MarshalInputStream.java:238)
at java.io.ObjectInputStream.readProxyDesc(ObjectInputStream.java:1500)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1463)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1699)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
... 9 more

以上です。解析お願いします。

364:デフォルトの名無しさん
07/07/04 22:57:31
なげーよww
java.lang.ClassNotFoundException: example.hello.Hello だ、原因はStackTraceは一番下(元の)例外を読むのが原則
サーバの方でパスが通っている場所にクラスファイルがない

365:デフォルトの名無しさん
07/07/04 23:03:22
>>364
調べてみます。。。でもこんな感じなんですよね~
D:.
│ a.bat
│ コマンド プロンプト.lnk

└─example
└─hello
Client.class
Client.java
Hello.class
Hello.java
Server.class
Server.java


366:デフォルトの名無しさん
07/07/04 23:06:09
クラスパスもわかんないやつがRMIって。

367:355
07/07/04 23:09:00
>>366
動かしてみてびっくりでしたww

368:355
07/07/04 23:19:26
C:\Program Files\Java\jdk1.5.0_12\bin直下に置いたら動いたww

369:デフォルトの名無しさん
07/07/04 23:30:08
Caused by: java.lang.ClassNotFoundException: example.hello.Hello
が原因を教えてくれているな。
エラーメッセージには答えそのものが書いてあることが多いからよくよめ

370:デフォルトの名無しさん
07/07/04 23:32:09
>>368
まて、bin直下にクラスファイルを置かないと動かないってどういうことだよ!


371:デフォルトの名無しさん
07/07/04 23:35:48
>>370
そういうことだよ

372:デフォルトの名無しさん
07/07/04 23:43:32
>>371
そういうことじゃなくて、rmiregistry.exeを>>365のディレクトリ上に配置すればイイーンダヨ♪


373:デフォルトの名無しさん
07/07/05 01:35:07
済みません
以下のプログラムをコマンドプロントで実行することは可能ですか?
可能な場合はやり方を教えて頂けないでしょうか。

import java.applet.*;
import java.awt.*;
public class myclock extends Applet{
  Image fb;
  Graphics gg;

  public void init(){
    fb = createImage(200,200);
    gg = fb.getGraphics();
  }

  public void paint(Graphics g){
    /******時計のデザイン*******/
    gg.drawRect(5,5,190,190);
    g.drawImage(fb,0,0,this);
  }
}


374:
07/07/05 01:38:21
ある文字が英語のアルファベットかしりたいんですが、判別できるメソッドはないですか?
Character.isLetter(char)は日本語の文字にもtrueを返してしまいます。

375:デフォルトの名無しさん
07/07/05 01:45:08
>>373
結論いうと可能。アプレットだよね。

ソースファイルに以下のコメント記述でアプレットタグの内容を書く。
/**
<APPLET>内容</APPLET>
*/

コンパイルしたら、appletviewer.exeというjavaの実行フォルダにある
ビューワを使えば読める。

こんな感じ
c:\>appletviewer "ソースファイル名"

ただし、ブラウザと多少動作が違うから確認程度で我慢すること。
詳しくはぐぐれ

こことかどうよ
URLリンク(www.itlb.te.noda.sut.ac.jp)

376:デフォルトの名無しさん
07/07/05 01:53:33
>>374
あったようななかったような、、A~Z、a~zの範囲なら自作のAPIを作っても手間がそんなにかからないと思うけど。

URLリンク(charset.7jp.net)




377:デフォルトの名無しさん
07/07/05 01:59:02
>>375
ありがとうございます!

378:デフォルトの名無しさん
07/07/05 02:00:24
Cには関数ポインタなるものが存在しますが、Javaにも似たような使い方ができるコーディング方法ございますか?

379:デフォルトの名無しさん
07/07/05 02:06:44
そろそろできる

380:デフォルトの名無しさん
07/07/05 02:10:14
Methodsクラスをなめるように操作すれば出来なくもない

381:デフォルトの名無しさん
07/07/05 02:41:15
とりあえず、高橋麻奈のやさしいJAVAを一冊読んだのですが、
次はなにかを作りながら覚えて言ったほうがいいかなと思ったのですが

なにかいい参考書や方法はあるでしょうか?

みなさんはどういうステップJAVAを学んでいかれたのでしょうか?
よかったら教えてください。

382:デフォルトの名無しさん
07/07/05 03:02:31
>>381
資格取ったり仕事で使ったりしたから、いろいろ知ってるけど。
どうでもいいような事とかJavaで出来ること、出来るけど困難なこと、そもそも出来ないこと
の区別が付けることが出来たら、お客さんに気に入られるよってアドバイスする俺はSE兼PGです。
趣味の範囲ならアソシエイツを取る勢いで浅く広く覚えれば面白いと思うよ。深く追求すると嫌になるから。
URLリンク(suned.sun.co.jp)

383:デフォルトの名無しさん
07/07/05 09:35:44
お客さんに気に入られてアドバイスしているが
ほとんど無報酬のボランティアで答えている俺は
SE兼PG兼奴隷です。

384:デフォルトの名無しさん
07/07/05 10:37:04
JavaってFTPクライアントはカンタンにできると思っていましたが
ソケットで自作しないとだめなんでしょうか?

385:デフォルトの名無しさん
07/07/05 10:57:13
標準ライブラリのみなら、そういう認識であってる。
外部のライブラリ使えば簡単にできる。commons netとか
URLリンク(jakarta.apache.org)

386:デフォルトの名無しさん
07/07/05 11:37:20
>>378
Java "Script"なら関数オブジェクトを変数に入れて
コールすれば内部処理的にも関数ポインタに近いんだけどなぁ・・・
クロージャが追加されれば似たような事が出来るけど
Javaのクロージャってレキシカルスコープ引き継ぐんだろうか?

>>381
やさしいjavaをきれいさっぱり忘れて他の本をじっくり読む。マジオヌヌメ。


387:デフォルトの名無しさん
07/07/05 12:03:03
質問させていただきます
htmlで<textarea>に入力した文字をdatファイルに出力しようとしています、正確にはJavaではなくJSPを使っていますが
・Htmlソース部分
<form action="test.jsp"method="POST">
<textarea rows=5 cols=60 name="honbun" wrap="off"></textarea>
<input type="submit"name="save"value="送信">
</form>
・Javaソース部分
String path = "フォルダパス";
String fname = "out.dat";
String gen = request.getParameter("honbun");
String hon = gen.replaceAll("\n","<br>");
BufferedWriter logwrite = new BufferedWriter(new FileWriter(path+ File.separatorChar +fname,true));
logwrite.write(hon);
logwrite.newLine();
logwrite.close();

改行コードを<br>に変換してdatファイルに出力しようとしていますが、<br>は付与されますがどうしても改行コードが残ってしまいます
datファイル内でも改行されないように出力出来ないでしょうか?(例えるなら、ギコナビのスレッドdatファイルの様に)
datファイルを見るのにはTeraPadを使用していますが、メモ帳では改行されていないように見えます
もしかするとTeraPadで見るのが原因なのでしょうか・・・しかしギコナビのdatファイルはTeraPadでも改行されずに表示されます

388:デフォルトの名無しさん
07/07/05 12:10:35
>>387
\rが入ってるとか?

389:デフォルトの名無しさん
07/07/05 12:11:16

LFだけ消して
CRLFを消してないから
CRが残ってる



390:387
07/07/05 12:21:08
なるほど、改行コードは\nしか使っていなかったので盲点でした
\rを消して無事に一行で出力することができました
>>388さん>>389さんご回答ありがとうございました!

391:デフォルトの名無しさん
07/07/05 13:04:01
\nはエスケープシーケンスで改行コードは別だよね?
Javaのばあい、動作してるプラットフォームの改行コードに変換されるんじゃなかったけ?

392:デフォルトの名無しさん
07/07/05 13:25:24
1行目も2行目もNo

393:デフォルトの名無しさん
07/07/05 13:28:12
ブラウザから送ってきたものそのままだと思うが、
ブラウザがどういった改行コードを送ってくるかは環境依存?それとも何か決まりはある?

394:デフォルトの名無しさん
07/07/05 13:36:19
MacからはCRで送られてくるし
WindowsからはCRLFで送られてくるし
UNIX系からはLFで送られてくるよ

HTTP以外のSMTPとかのプロトコルだと
ちゃんとCRLFになってるみたいだけどね


395:デフォルトの名無しさん
07/07/05 13:52:38
JTreeでエクスプローラみたいなの作ろうとしてるんだけど
システム上でファイルに関連付けられてるアイコンを
自動的に表示するような方法ってない?

やっぱりひとつひとつアイコン設定するしかない?

396:デフォルトの名無しさん
07/07/05 13:55:19
あるよ

397:デフォルトの名無しさん
07/07/05 13:56:43
UIリソース変えるだけで済まない?

398:デフォルトの名無しさん
07/07/05 14:00:00
>>396
そうなんだ!
どうやるの?

399:デフォルトの名無しさん
07/07/05 14:56:46
>>398
ファイルに関連づけられてるアイコンって、
OS依存な気がするんだが・・・>>396は何か勘違いしてる気が・・・

400:デフォルトの名無しさん
07/07/05 14:59:09
違うよ、お前に言ったんじゃないよ

401:デフォルトの名無しさん
07/07/05 15:00:06
>>399
JTree上のアイコンだろ?

402:デフォルトの名無しさん
07/07/05 15:12:33
確かにフォルダの絵とかはUIリソースで変えられると思うが
エクスプローラみたいなのを作りたいってことは、exeファイルのアイコンとか
関連づけられたアプリのアイコンとかにしたいってことなんじゃないの?
>>401

403:デフォルトの名無しさん
07/07/05 15:47:41
>>402
そういうことっす

404:デフォルトの名無しさん
07/07/05 19:04:57
アイコンを用意するところからだな。

405:デフォルトの名無しさん
07/07/05 20:49:42
インスタンスの生成と破棄に関するパフォーマンスを調べたいのですが、測定ツールみたいなものはありますか?

406:デフォルトの名無しさん
07/07/05 21:03:29
>>403
同じプログラムを Linux へ持っていたらまったく意図した通りに動かない、ということですな・・・


407:デフォルトの名無しさん
07/07/05 21:05:44
Write once, Run one platform.


408:デフォルトの名無しさん
07/07/05 21:30:39
ファイラはどうやってアイコンとってきてるんだろね
デフォルトはシステムのどっかにアーカイブされてるんだろうが

409:デフォルトの名無しさん
07/07/05 21:45:57
explorer.exe とか run32.dll のなかにアイコンリソースがいっぱいあるね

410:デフォルトの名無しさん
07/07/05 21:50:05
JDICにそれっぽいAPIがありそうな感じ。
URLリンク(jdic.dev.java.net)
この辺のAssociationとか使えそうじゃね?
URLリンク(jdic.dev.java.net)

411:デフォルトの名無しさん
07/07/05 22:50:43
URLリンク(jdic.dev.java.net) のしたの方にデモがあるね
URLリンク(javadesktop.org)


412:デフォルトの名無しさん
07/07/05 22:51:45
サーバプログラムでクライアントから入力があれば、文字列を受信して、画面にその文字列を表示してループを抜ける。
また、画面から入力(Enter)があれば、ループを抜けずに、プログラムを強制終了させる。
上記の問題で条件文のことで質問があります。

while(true){
// 省略
if(System.in.available() > 0)
break;
}
「入力があれば」は上記if文でいいのでしょうか?
またEnterキーが入力された場合はどのように条件文を書けばいいのですか?

413:デフォルトの名無しさん
07/07/05 22:58:57
jarファイルにしたら外部に別のファイルを出力させることはできませんか?

414:デフォルトの名無しさん
07/07/05 23:01:12
>>411
それだと、ファイルの種類にかかわらずアイコンが全部同じになってるんだよね。
他に方法があるといいんだけど。

415:デフォルトの名無しさん
07/07/05 23:07:24
>>412
まったく意図が通じていないと思うがエスパーしてみる
socket.getInputStream() を使ってバイナリを受信するべし

416:412
07/07/05 23:20:24
すいません。
・画面からの入力が「Enterキー」ならプログラム強制終了。
の部分だけを知りたかったんです。
サーバ、クライアントなしでただのプログラムとして考えてください。


417:デフォルトの名無しさん
07/07/05 23:21:27
Javaでなんか作ってるスレない?

418:デフォルトの名無しさん
07/07/05 23:30:01
スレリンク(tech板)

419:デフォルトの名無しさん
07/07/05 23:33:58
System.inをScannerに放り込んで、nextLine()で終了。
Scanner scanner = new Scanner(System.in);
scanner.nextLine();

420:デフォルトの名無しさん
07/07/05 23:42:01
>>414
たぶんもう見てると思うけど
URLリンク(wisdom.sakura.ne.jp)
の一番下のとか
URLリンク(terai.xrea.jp)
とかがあるよね
でも >>395
「やっぱりひとつひとつアイコン設定するしかない? 」
の不満は解消されてないっぽ
シコシコやっても >>406-407 みたいになるのがオチ


421:デフォルトの名無しさん
07/07/05 23:43:41
ネットワークプログラミングの参考書で
お勧めの教えてくらさい

軽くその本の内容も書いてくれると嬉しいです

422:デフォルトの名無しさん
07/07/05 23:49:54
Javaネットワークプログラミングの真髄

423:デフォルトの名無しさん
07/07/05 23:57:28
>>422
サンクス
ググってみたが,出版されて日が浅いせいか
全然レビューないな
とりあえず,明日本屋で立ち読みしてみるわ

424:デフォルトの名無しさん
07/07/06 00:04:15
>>420
jdicのAssociationServiceのgetFileExtensionAssociationで拡張子指定して
Associationを取得してgetIconFileName()を使うとなんか帰ってくるな。
なんでか「絶対パス,整数」の形式になってる。
数字の意味がわからないが絶対パスの先はアイコンではなく
実行ファイルなのであった・・。

ああ、もしかするとアイコンを使ってるファイルのパスが帰ってくるのか(´д`)


425:デフォルトの名無しさん
07/07/06 00:04:25
執筆者乙

426:デフォルトの名無しさん
07/07/06 00:05:50
>>424
整数はリソースの番号だろ


427:デフォルトの名無しさん
07/07/06 00:06:45
>>424
アイコンを使ってるファイルのパスじゃなくて
アイコンを格納しているファイルだろうね

428:デフォルトの名無しさん
07/07/06 00:13:18
>>420を見て、Windows L&FにするとJFileChooserに適切なアイコンが表示されることを思い出した。
で、「もしや?」と思って試してみた。
上手くいったぞ。こんなコード。
JFileChooser chooser = new JFileChooser();
FileChooserUI ui = chooser.getUI();
FileView fileView = ui.getFileView(chooser);
JLabel pdfIcon = new JLabel("*.pdf");
Icon pdfIcon = fileView.getIcon(new File("a.pdf"));
pdfLabel.setIcon(pdfIcon);

こんなコードをJTreeのレンダラに仕込めば、
JTreeのノードに対応するすべてのファイルに対して、適切なアイコンが表示される。
もちろん、Windows L&F限定だが。

FileView#getIcon(File)に指定するファイルは、存在しないとFileNotFoundExceptionが発生した。

429:デフォルトの名無しさん
07/07/06 00:24:49
>>428
乙。


430:428
07/07/06 00:35:40
こんなレンダラでいけたよ。Metalだとみんなアイコン一緒だったけど。

public class FSTreeCellRenderer extends DefaultTreeCellRenderer {
 private FileView fileView;
 public FSTreeCellRenderer(){
  JFileChooser chooser = new JFileChooser();
  fileView = chooser.getUI().getFileView(chooser);
 }
 public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) {
  DefaultMutableTreeNode node = (DefaultMutableTreeNode) value;
  File file = (File) node.getUserObject();
  Component comp = super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus);
  setText(file.getName());
  setIcon(fileView.getIcon(file));
  return comp;
 }
}

431:デフォルトの名無しさん
07/07/06 00:43:17
>>428
javax.swing.filechooser.FileSystemView 使えば
Windows では 16x16のアイコンと、ファイルの種類だけは取れる。

432:デフォルトの名無しさん
07/07/06 07:27:44
これは覚えておかなくては

433:デフォルトの名無しさん
07/07/06 09:46:41
質問です。

Eclipseでプログラミングをしているのですが、
log4jとJCOMを外部jarとして追加しています。

この状態でjarファイルとしてプログラムをエクスポートすると、生成されたjarがそのまま実行できません。
CLASSPATHが通ってない・・・みたいなエラーが出ます。

通常のjarみたいにダブルクリックで起動させたいのですが、これはどうすれば解決できるでしょうか?

434:デフォルトの名無しさん
07/07/06 10:18:12
>>433
実行可能Jarでググれ。

435:デフォルトの名無しさん
07/07/06 10:33:12
>434
ググってみたんですけど、
外部Jarを使ったプログラムのエクスポート方法
などが載ってるページが見つかりませんでした。



436:デフォルトの名無しさん
07/07/06 10:56:55
「実行可能Jar」でググった1番最初に見つかるが、
お前さんが使ってるGoogleは別物なんだな。
わかった。ズバリ答え。
MANIFEST.MFにこう書け。

Class-Path: log4j.jar jcom.jar

log4j.jarとjcom.jarは、実行するJarファイルと同じフォルダに置くこと。

437:デフォルトの名無しさん
07/07/06 12:19:50
>>436
ありがとうございます!!
無事に実行することができました。

これで実行jarと同じ階層に3つのjarファイルがあるわけなんですが、
コレを1つのexeファイルにしたいんです。

Fat jarでまとめてexewrapでexeにする・・・というのはできるんでしょうか?

438:デフォルトの名無しさん
07/07/06 15:46:00
>>437
そこまで手順が確定しているなら自分でやってみればできるかどうかすぐ分かる。

439:たかひと
07/07/06 16:49:12
jspからftpサーバにファイルをアップロードするには
どのようにすればいいのでしょうか。
宜しくお願いします。

440:デフォルトの名無しさん
07/07/06 17:52:31
launch4j

441:デフォルトの名無しさん
07/07/06 18:05:44
log4JってWebアプリに使ってもいいですか?
スレッドとかぶつかっても平気ですか?

442:デフォルトの名無しさん
07/07/06 21:19:09
log4jはスレッドセーフじゃないです。残念ながら。
まぁ日付の書式に気をつければ何の問題もないけどね。

443:デフォルトの名無しさん
07/07/06 21:31:28
UDPだから負荷が重いときはデータ抜けしますよ

444:デフォルトの名無しさん
07/07/08 00:53:30
URLリンク(logging.apache.org)
> 1.7 Is log4j thread-safe?
> Yes, log4j is thread-safe. Log4j components are designed to be used in heavily multithreaded systems.

まことに残念

445:デフォルトの名無しさん
07/07/08 01:42:28
byteとintを論理演算すると、勝手に符号拡張されるので困ってます。
例えば以下のソースで、

------------------------
int i = 0;
byte b = -1;

i = i | b;
------------------------

やりたいことは、iのビットパターンを以下のようにしたいんだけど、
00000000 00000000 00000000 11111111

実際はこうなってしまいます。
11111111 11111111 11111111 11111111

これってどうすれば回避できるんでしたっけ・・・

446:デフォルトの名無しさん
07/07/08 02:00:34
スレッドに挑戦しようと思い、スレッドを含んだものを作ってみたのですが、コンパイルするときにスレッドの例外というのが発生してしまいます
単純に宣言や拡張が何か足りないだけなのでしょうか…

447:デフォルトの名無しさん
07/07/08 02:02:35
コンパイルするときに例外が発生ってどゆこと

448:デフォルトの名無しさん
07/07/08 02:04:26
>>445
i = i | (b & 0xFF)

449:デフォルトの名無しさん
07/07/08 02:04:33
>>445
0xFF と AND でもとれば

450:445
07/07/08 02:10:40
>>448
>>449

ありがとうございます。できました。(; ´д`)

451:デフォルトの名無しさん
07/07/08 02:16:37
i = i | (b & (byte)0xFF)

452:
07/07/08 02:59:39
Eclipseでどんなプログラムでもデバックモードで走らせると、いつも最初にTrueTypeFon.open()262行ででNullPointerExceptionが発生しています。
Eclipse3.21 JDK1.6.0_02、Windows2000SP5です。同じような症状の人いますか? 普通に実行してる分にはNullPointerExceptionは発生しないのですが。


453:452
07/07/08 03:01:22
どんなプログラムではありませんでした。Swingをつかうプログラムでした。

454:デフォルトの名無しさん
07/07/08 03:04:30
そのぬるぽは君のプログラムからじゃなくてEclipseから発生してるもの?

455:デフォルトの名無しさん
07/07/08 04:41:18
exewrapすると中身は見れないんですか?

456:452
07/07/08 04:44:03
自分のプログラムからだと思います。でも自分のプログラムが悪いという問題ではないと思います。
GUI(Swing)を使えば必ず出てきます。
階層的にはJFrame#initの呼び出しの果てに
Window#init(GraphicsConfiguration gc)
が呼び出されて、さらにその後もメソッドの呼び出しが続いてTrueTypeFon.open()でヌルポが発生してしまいます。

ただこのヌルポ、デバッグモードで動かさないとわかりません。
Eclipseならデバッグモードじゃなくてもヌルポが発生したらコンソールに知らせてくれるはずなのだと思いますが。

457:デフォルトの名無しさん
07/07/08 07:33:33
最低限のソースを


458:452
07/07/08 11:06:54
public class Test {

  public static void main(String[] args) {
    JFrame frame = new JFrame();
    frame.setSize(640, 400);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
  }

}
こんな単純なのでもデバッグモードで起動するとヌルポが出てしまいます。

459:452
07/07/08 11:10:08
最初のJFrameのコンストラクタの呼び出しの中でヌルポが発生しています。

460:デフォルトの名無しさん
07/07/08 11:31:51
>>452
それでも発生するならばEclipseの実行環境(JRE)の設定でJDK1.6となっているかを確認。
さらに、プロジェクトのプロパティからコンパイルレベルが、6.0になっているかを確認
ダメならば、Eclipseを入れなおしてみる

とりあえず、そんなとこかな?

461:452
07/07/08 12:17:34
>>460
どうもありがとうございます。JREの設定でJDK1.6、コンパイルレベルが、6.0、ともになっています。
ちょうどEclipse3.3が出たから、アドバイスどおりEclipseを入れなおしてみます。

462:デフォルトの名無しさん
07/07/08 12:23:47
>>461
3.3.1が出るまでは冒険でしょでしょ(=ω=.)

なんかプラグインが衝突しているんかねぇ
大量にプラグインいれた環境とかならば、再インスコがベストだろうな。
VEとかいれているならばかなり怪しい

463:デフォルトの名無しさん
07/07/08 13:46:20
コンパイルはできているのですが実行したら
Exception in thread "main" java.lang.NoClassDefFoundError:Sample1とエラーが出ます
そこでシステム環境変数のCLASSPATHを削除したら治ったのですがこれは削除してもよかったんでしょうか?

464:デフォルトの名無しさん
07/07/08 13:47:11
「.;」をわすれてね?


465:デフォルトの名無しさん
07/07/08 14:04:21
javacとjavaコマンドでやっているのか?
CLASSPATHは環境変数に設定するとトラブルを誘発するので勧めない

必要な時、javaコマンドなどのオプション-cpで設定する方がいいよ

466:デフォルトの名無しさん
07/07/08 14:08:51
>>465
はいそうです。
CLASSPATHの値を控えずに消してしまいました。元の状態に戻すことは不可能ですか?

467:デフォルトの名無しさん
07/07/08 14:16:00
>>466
不可能
Windowsのバックアップ機能とかあるならば可能かもしれないけど、そっちは詳しくないので知らん
何度も言うけどCLASSPATHに値を設定してトラブルになるより、-cpの使い方学べ、その上でCLASSPATHに必要ならば設定汁

468:デフォルトの名無しさん
07/07/08 14:23:49
>>467
そうですか・・ありがとうございました。
まあ今のところ問題なく動いているので大丈夫だと思いますが
ちなみにCLASSPATHは全くいじってませんでした。

469:2人の女性と付き合っている高1です
07/07/08 19:54:12
>>467
よこから割り込みますがCLASSPATHを環境変数に設定するとまずいという
ご意見がありますが、どういう時にまずいのでしょうか?

僕は現在JavaSE6up2しかマシンにインストールしていませんが、そんな
状況で起こりうる誤作動の事例をよろしければ教えてください。

470:桜井葵
07/07/08 20:11:37
ビジュアルクラスを開いたら『新規ファイルをエディターに設定しよぅとしてエラーが発生しました』『java.lang.NullPointerException』って出てプログラムしか出ないんですけど、誰か助けて下さい(ノ_・。)

471:デフォルトの名無しさん
07/07/08 20:46:41
>>469
CLASSPATHでググれカス

472:デフォルトの名無しさん
07/07/08 20:47:50
>>469
2人とも妊娠

473:デフォルトの名無しさん
07/07/08 23:43:42
ちった、役に立つかも!

URLリンク(www.yukinko-net.jp)


474:デフォルトの名無しさん
07/07/09 12:48:21
ど素人質問です。失礼します。
JDKを使って勉強したいのですが、
どれを使えばいいのでしょうか。
・JDK 5.0 Update 12 with NetBeans 5.5.1
・JDK 5.0 Update 9 with Java EE
・JDK 5.0 Update 12
・完全な環境と実行環境はGet the JDK download からダウンロードできます。
JDK5の次が7になっているのですが6のバージョンってないのでしょうか

475:デフォルトの名無しさん
07/07/09 12:56:49
>>474
JDK 6 はあるよ。>>1のWikiサイトからたどれる。
URLリンク(java.sun.com)
ここのJDK 6u2をダウンロードすればおけ。

with BetBeansってのは、IDEが付いてくる。
最初はエディタでやろうとしているなら、いらない。
with Java EEは、初心者なら忘れてしまってもかまわない。

476:デフォルトの名無しさん
07/07/09 13:10:49
質問です。
URLConnectionでGETパラメータを送ろうとしているんですが
どの時点で送信しているのかがわかりません。

String urlString = "URLリンク(hoge.com)
URL url = new URL( urlString );
URLConnection uc = url.openConnection();

DataInputStream dis = new DataInputStream( uc.getInputStream() );
String s;
while( ( s = dis.readLine() ) != null ) {
System.out.println( s );
}
dis.close();

リファレンス等を参考にするとopenConnection()で接続を確立しているらしいのですが
ここでhogehoge.jspに通信しているんでしょうか?

DataInputStream dis = new DataInputStream( uc.getInputStream() );
上の部分でhogehoge.jspに送信してそのまま受信に入っているんでしょうか?

タイミングがイマイチわからないので教えてください。

477:474
07/07/09 13:14:35
>>475
ありがとうございます。
後のいろいろな機能はあとから付けられるのでしょうか。
どのようにつけたらよいのでしょうか。
よろしくお願いします。

478:デフォルトの名無しさん
07/07/09 14:06:21
>>477
Java EEはここから
URLリンク(java.sun.com)
NetBeansはここから
URLリンク(www.netbeans.org)

後でダウンロードしてインストールできる。最初からなくても大丈夫。

479:デフォルトの名無しさん
07/07/09 14:10:17
JDK6はあるはずだが・・・

480:デフォルトの名無しさん
07/07/09 16:10:37
>>476
自分の書いたレスをじっくり読み直すんだ
前者以外に答えがあると思うかね

481:デフォルトの名無しさん
07/07/09 16:44:22
ポップアップについての質問です
いまJPanel上を右クリックでJPopupMenuを表示するところまではできたのですが、メニューを選んだときの処理をどうすべきかわかりません。
MouseEventだとどのメニューを選んだかわからず、ポップアップにつけたJMenuItemにsetActionCommandを付けようにも、JPanelにaddActionListenerがないため、どのように識別させるのかがわかりません。
また、上の識別の問題に関連するものですが、JPanel別にメニューを付けてるのですが、大部分が重なる処理なので、呼び出し元(JPanel)を識別して、イベント処理で振り分けるということはできないでしょうか。

以上2点、お願いします。

482:481
07/07/09 17:01:07
書いた直後なんですが、1つ目できました
ボタン処理のようにJMenuItemごとにアクションリスナーを登録するという方法があるようで、そうするとメニュー選択時に呼ばれるようになりました。
どうも、検索したときのキーワードの範囲が広すぎたようね…
2つ目はいまだわからず、getComponentだとパネルの位置はわかるんですが、ActionCommandのように得ることはできないですかね。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch