【初心者】Java質問・相談スレッド103【大歓迎】
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2007/06/27(水) 07:23:27JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作板をご利用ください。http://pc10.2ch.net/hp/
過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/
これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、
wikiからのリンクをおたどりください。
よくある質問
・「コマンドまたはファイル名が違います」
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
「Exception in thread "main" java.lang.NoClassDefFoundError: 」
http://www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals() を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」
前スレッド
【初心者】Java質問・相談スレッド102【大歓迎】
http://pc11.2ch.net/test/read.cgi/tech/1180419689/
/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */
また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝なく存じます。
次スレは>>980あたりで。
0002デフォルトの名無しさん
2007/06/27(水) 10:29:50int hoge = 100;
char buf[256];
memcpy(&buf[10], hoge, sizeof(hoge));
という処理をJavaで行うにはどのようなコードになりますでしょうか?
0003デフォルトの名無しさん
2007/06/27(水) 10:57:21char hoge = 100;
char[] buf = new char[256];
Arrays.fill(buf, hoge);
0004デフォルトの名無しさん
2007/06/27(水) 11:38:26嘘はいけないぞw
>>2
そのような処理は行えない。
char[] hoge = new char[256];
char[] buf = new char[256];
Arrays.fill(buf, hoge);
または、
System.arraycopyを使う
0005デフォルトの名無しさん
2007/06/27(水) 12:49:54Javaだと難しいのでしょうか?
0006デフォルトの名無しさん
2007/06/27(水) 12:57:13それ以上のデータを入れる場合は高度な圧縮技術が必要であろう
0007デフォルトの名無しさん
2007/06/27(水) 12:57:374バイトまでだったらシフトやマスクしてふつーにできますよ。
0008デフォルトの名無しさん
2007/06/27(水) 13:00:57char buf[256];
memcpy(&buf[10], hoge, sizeof(hoge));
コンパイルエラーです
本当にありがとうございました
0009デフォルトの名無しさん
2007/06/27(水) 13:01:170010デフォルトの名無しさん
2007/06/27(水) 13:08:36import java.io.*;
public class TestBinary{
public static void main(String[] args){
try{
int i = 100;
BufferedWriter bw = new BufferedWriter(
new OutputStreamWriter(
new FileOutputStream("a.bin", true)
)
);
bw.write(i);
bw.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
0011デフォルトの名無しさん
2007/06/27(水) 13:11:17new FileInputStream("a.bin")
);
int j;
j = isr.read();
System.out.println(Integer.toString(j));
isr.close();
0012デフォルトの名無しさん
2007/06/27(水) 13:18:29はい。計算すればできるってのはわかってました。
後だしですみません。
ただ、もうちょっと普通にできるのではないかと思ったので。
>>10
ファイルを使うっすか?
これのメモリー版ってないっすか?
0013デフォルトの名無しさん
2007/06/27(水) 13:21:04ごめんなさい。
memcpy(&buf[10], &hoge, sizeof(hoge));
でお願いします。
0014デフォルトの名無しさん
2007/06/27(水) 13:23:33ここまで出たんだからJavaDocでも調べろよ
InputStream系のクラスを組みあせればできるだろう
0015デフォルトの名無しさん
2007/06/27(水) 13:24:220016デフォルトの名無しさん
2007/06/27(水) 13:28:56http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/java/nio/MappedByteBuffer.html
http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/java/nio/ByteBuffer.html
0017デフォルトの名無しさん
2007/06/27(水) 13:31:04これだ!(・∀・)イイ!!
0018デフォルトの名無しさん
2007/06/27(水) 13:47:28import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
public class GetBytesTest{
public static void main(String[] args) throws Exception{
FileInputStream inStream = new FileInputStream(”filename”);
FileChannel channel = inStream.getChannel();
ByteBuffer buffer = ByteBuffer.allocate((int)channel.size());
channel.read(buffer);
buffer.clear();
byte[] bytes = new byte[buffer.capacity()];
buffer.get(bytes);
channel.close();
}
}
0019デフォルトの名無しさん
2007/06/27(水) 13:48:17http://www.itarchitect.jp/beginners/-/46269-2.html
http://www.itarchitect.jp/beginners/-/46269-3.html
http://www.itarchitect.jp/beginners/-/46269-4.html
http://www.itarchitect.jp/beginners/-/46269-5.html
http://www.itarchitect.jp/beginners/-/46269-6.html
0020デフォルトの名無しさん
2007/06/27(水) 14:58:12使うときに注意しなければいけないことってあるかな?
Toolkit.getDefaultToolkit();
を呼び出すと、AWT のスレッドが生成されるそうですけど、
Servlet から何度も呼び出しても、AWT スレッドは1つしか生成されないのかな。
0021デフォルトの名無しさん
2007/06/27(水) 15:18:35鯖でGUI開くの?w
蔵のGUIとしてAWTにしたいってならば全く別の話
0022デフォルトの名無しさん
2007/06/27(水) 15:31:26クライアントからアクセスあるたびにポップアップしまくるから
セッション終了したら閉じるように作っておくことが
とりあえず気をつけることかな
0023デフォルトの名無しさん
2007/06/27(水) 16:21:010024デフォルトの名無しさん
2007/06/27(水) 16:30:380025デフォルトの名無しさん
2007/06/27(水) 16:46:37クライアント側からサーバサイドのGUIをつかえると言うわけではないの?
0026デフォルトの名無しさん
2007/06/27(水) 16:59:10ん?
使えるが結果を見られないってことでは?
0027デフォルトの名無しさん
2007/06/27(水) 17:12:230028デフォルトの名無しさん
2007/06/27(水) 17:54:11クライアント側でGUIは表示されるけど、イベントは受付けないとか?
apptet以外にクライアント側でGUI表示できるの知らなかったんで
詳しくお願いします。
0029デフォルトの名無しさん
2007/06/27(水) 17:56:54> apptet以外にクライアント側でGUI表示できる
そんなこと誰も書いてないと思うが。
0030デフォルトの名無しさん
2007/06/27(水) 18:04:410031デフォルトの名無しさん
2007/06/27(水) 18:18:260032デフォルトの名無しさん
2007/06/27(水) 18:32:38idない板はこれだからややこしい
0033デフォルトの名無しさん
2007/06/27(水) 19:26:06ライアントにAWTのウィンドウ等が表示されるわけないでしょ。どこで
JVMが動いているか考えればあたりまえ。
servletでAWTのウィンドウを出したりすると、とうぜんservletが動いて
いるサーバの画面にウィンドウが出ることになる。そんなことして意味
があることはまずないが、できないわけじゃない。(>>22)
画像処理などのためにservlet内でAWTを使うことがある。そういうとき
のために headless モードというのがある。(>>27)
0034デフォルトの名無しさん
2007/06/27(水) 19:32:52jdbc+postgreSQLに手を出してみました。
php+mysqlのときみたいにaddslashをして
エスケープをしたいのですが、どうやったらいいかわかりません(涙)
java.sqlの中にはそういうものはないみたいだし・・・
0035デフォルトの名無しさん
2007/06/27(水) 19:48:520036デフォルトの名無しさん
2007/06/27(水) 19:53:47brainlessの印象を受けるからfacelessの方が良かった
0037デフォルトの名無しさん
2007/06/27(水) 21:10:26GWT
0038デフォルトの名無しさん
2007/06/27(水) 22:55:55PreparedStatementが勝手にやってくれる
0039デフォルトの名無しさん
2007/06/27(水) 23:32:07作成したプログラムの再配布の際にはソースコードの公開が必要でしょうか?
「動的なリンク、であれば利用元のプログラムはLGPLの呪縛から逃れられる」
というような解釈のようですが、動的なリンクとはJavaではどこまで該当するのでしょうか?
0040デフォルトの名無しさん
2007/06/27(水) 23:38:120041デフォルトの名無しさん
2007/06/28(木) 00:11:120042デフォルトの名無しさん
2007/06/28(木) 01:23:290043デフォルトの名無しさん
2007/06/28(木) 03:26:37java3Dの中のvecmathパッケージについて
このパッケージでできるベクトル計算の利点はどんなところにあるんでしょうか
また、java3Dの直近の日本語Documentを探しているのですが見つからず、
できたらURLを教えていただけないでしょうか
0044デフォルトの名無しさん
2007/06/28(木) 06:40:37「.」とか「-」とかは?
0045デフォルトの名無しさん
2007/06/28(木) 08:34:54ゲーム理論系を探すと経済学関連のが多くて選択しにくいもので、実際のプログラム例などが載っている本がいいです。
言語はJavaが得意ですが、Cなども最低限の知識はあります。
0046デフォルトの名無しさん
2007/06/28(木) 08:39:51ゲームという大きな括りではなく、どういう種類のゲームを作るかによって
学ぶものは変わってくると思うが。
0047デフォルトの名無しさん
2007/06/28(木) 08:44:00確かにそうですね。
やりたい種類は、ターン制のストラテジーゲームです。
手札などに制限が多く、打てる手数は高々10〜20程度。
ただし、先読みの要素が多いという感じです。
ぐぐってみたりするとげミニマックス法とか色々でてくるのですが、本として1冊は欲しいもので
0048デフォルトの名無しさん
2007/06/28(木) 08:57:05ありがとうございます
単純に実行部分のバイトコードを添付するだけでいいわけですか
↓の部分が適用されるってことですか?
>もし著作物が『ライブラリ』とリ ンクされた実行形式ならば、著作物を完全かつ機械読み取り可能な
>「『ラ イブラリ』を利用する著作物」のオブジェクトコードあるいはソースコー ド(どちらかでも可) と一緒にし、
>ユーザが『ライブラリ』を改変した後 に再リンクして、改変された『ライブラリ』を含む改変された実行形式を
>作成できるようにする
0049デフォルトの名無しさん
2007/06/28(木) 11:16:54org.postgresql.util.PSQLException: The connection attempt failed.
Caused by: java.net.UnknownHostException: localhost
こんなエラーがでて接続できないんだけど、
これってJDBCドライバ自体は認識できてるんかな?
ずっと「JDBCドライバがないYO」って言われてたんで、そこが気になる。
誰か教えてくれー
0050デフォルトの名無しさん
2007/06/28(木) 11:53:45いえす
localhost が解らんって言われているけど、postgresqlならば
jdbc:postgresql://localhost:5432/test
のようにURL指定してないとか?
それでもダメなら、localhost を 127.0.0.1 で試す。
後、WindowsのFireWallの可能性もあるかな?
005149
2007/06/28(木) 13:37:37レスありがとう。
なんとか動きました。
postgresqlにTCP接続する設定をやっていなかった。
// これがダメだったのかな?
postgresql.confを編集して
URL指定に「jdbc:postgresql://127.0.0.1:5432/hoge」で接続できました。
loclhostだと失敗したんで根本的な解決はしてない気もするけど、とりあえず動いたからおk!!!
005234
2007/06/28(木) 13:52:52ありがとうございます。
さっそく実行してみたのですが、次は
org.postgresql.util.PSQLException: The column index is out of range: 2, number of columns: 1.
と表示されてしまいます。
?の数とsetStringやsetIntの数が違うのかなと思ったのですが、
一緒でわかりません・・・
0053デフォルトの名無しさん
2007/06/28(木) 14:02:01「15歳からはじめる〜」って本を良く耳にする。でも読んだ事はない。
Javaでゲーム作成 2本目
http://pc11.2ch.net/test/read.cgi/gamedev/1130373830/
0054デフォルトの名無しさん
2007/06/28(木) 14:25:08配列の要素数が0で始まるのか1で始まるのかをもういちど確認してくれ
0055デフォルトの名無しさん
2007/06/28(木) 14:34:250056デフォルトの名無しさん
2007/06/28(木) 14:44:030057デフォルトの名無しさん
2007/06/28(木) 15:10:44PreparedStatement のメソッド setDate(int, Date) は引数 (int, Date) に適用できません。
どういうことだよorz
0058デフォルトの名無しさん
2007/06/28(木) 15:15:27setDate(int, java.sql.Date) は引数 (int, java.lang.Date) に適用できません。
ってことだ。エラーメッセージが悪い。
0059デフォルトの名無しさん
2007/06/28(木) 15:44:17そのスレッドを長時間実行してもタイムアウトになることはありませんよね?
0061デフォルトの名無しさん
2007/06/28(木) 18:35:06まぁ、>>47みてやりたいことは大体判った。
結局のところ探索、評価の繰り返しをいかに精確かつ高速にやるか、というところが肝なわけで…
まともにやろうとすると結構専門的なところまで踏み込むことになるけれども一応参考資料(英語ですが)
ttp://www.cs.ualberta.ca/~mburo/publications.html
もともとはリバーシのアルゴリズム解説だけれど、探索や評価のアルゴリズムは他にも応用がききそうなので。
日本語の資料だとつっこんだところまで解説したものってみたことないので情報工学とか数学関係の専門書を
あたった方が早いかもです。
0062デフォルトの名無しさん
2007/06/28(木) 19:28:14ボーンデジタル
006345
2007/06/28(木) 20:45:50やはり専門的な分野になると英語になるのかぁ・・・
最初の1〜2冊は日本語で勉強したかったんです。
Amazonで漁っていくつか候補があったのでとりあえず片っ端から買ってみますw
0064デフォルトの名無しさん
2007/06/28(木) 20:51:31これですか・・・
ttp://www.amazon.co.jp/Game-Programming-Gems-Mark-DeLoura/dp/4939007286/ref=pd_sim_b_1_img/249-4142550-3954713?ie=UTF8&qid=1183031211&sr=8-11
流石にいい値段しますが興味はあります・・・むぅ
0065デフォルトの名無しさん
2007/06/28(木) 22:39:12複数回読みたいんですが、どうしたらいいですか?
0066デフォルトの名無しさん
2007/06/28(木) 22:55:51できない
InputStreamのStreamの意味を調べたことあるか?
尚、普通の人は画像データを変数に格納するだろう
0067デフォルトの名無しさん
2007/06/28(木) 22:58:41一回closeしてしまったら、もう読み込めないから、もう一回接続して新しいInputStreamで読み込む。
もしくは、最初のInputStreamで読んだデータは手元にあるはずだから、それを利用する。
0068デフォルトの名無しさん
2007/06/28(木) 23:02:55> InputStreamのStreamの意味を調べたことあるか?
あります、すみません
resetメソッドとかよくわからずに使ってうまくいかなかったもので…
> 尚、普通の人は画像データを変数に格納するだろう
InputStreamが引数なメソッドを2つ呼び出す必要があるんですが、
やっぱそのたびに生成しなきゃいけないんでしょうか。
↑これがよくわからんかったのでリサイクルしたいと思いました。
>>67
接続は1回にしたいです。
0069デフォルトの名無しさん
2007/06/28(木) 23:05:13頭からもう一度とはいかない。全データのプッシュバックをサポートするstreamを作って、
HttpURLConnectionのInputStreamに接げばいけるかもだが、
それは最初に読んだデータを再利用するようにした方がいいような気が。
007066
2007/06/28(木) 23:11:05言い方がきつかった、すまん
ただ、Streamってのは流れなんだ、流れてくるものを2回読むことはできない
だからデータを溜めておかなければならない。
ちなみに、使うメソッドがInputStreamで引数を持つという事自体がおかしいということはないか?
Imageで受けたり、byte[]で受けたり出来ないような特殊な事情があるのか、検討して欲しい。
それでも、どうしてもInputStreamにしなければならないならば、byte[]等でキャッシュしておき、自前で再度流すようにコーディングする必要があるな
0071デフォルトの名無しさん
2007/06/28(木) 23:11:30InputStreamのサブクラスにはByteArrayInputStreamというものもある。
何もネットから読み込むだけのストリームではない。
最初にそのメソッドを呼ぶ前にHttpURLConnectionでバイト配列にデータを読んで、
そのメソッドにはバイト配列をバッファにしたByteArrayInputStreamを渡してやればいい。
0072デフォルトの名無しさん
2007/06/28(木) 23:31:38最終的にはswtのImageを作るんですが、
その前に元のデータのハッシュを取る必要があるんです。
最初はImageを作って それからgetImageData().dataのハッシュを
取ればいいかと思ってたんですが、dataってビットマップ(広義)と知って…
>>71
そうですね、
一旦bete[]にバッファしてそれぞれByteArrayInputStream作ることにします。
ご協力ありがとうございました。
007357
2007/06/29(金) 00:12:38ありがとう やっと意味がわかったよ
0074デフォルトの名無しさん
2007/06/29(金) 00:22:36そういうのってNIOでやるんじゃない?
0075デフォルトの名無しさん
2007/06/29(金) 00:29:41DigestInputStream
0076デフォルトの名無しさん
2007/06/29(金) 00:51:14教えてください。
RMIとかなんでしょうか
0077デフォルトの名無しさん
2007/06/29(金) 00:54:31遠隔機器操作だけじゃわからん。どういう事をやりたいか具体的に書く。
0078デフォルトの名無しさん
2007/06/29(金) 01:05:56知りたいのは、ネットワークのストリームの確立方法と制御命令の伝達方法、及び監視情報のリアルタイム
での送受信方法です。
0079デフォルトの名無しさん
2007/06/29(金) 01:10:10回線は優先無線の両方を考えてますが、とりあえず有線の方法、通常のインターネット経由の方法で
教えていただけたらと思います。
0080デフォルトの名無しさん
2007/06/29(金) 01:17:500081デフォルトの名無しさん
2007/06/29(金) 01:20:20for(Foo f: set) {
// ここで set を変更
}
で ConcurrentModificationException が出るときの解決案って
for(Foo f: set.toArray(new Foo[set.size()])) {
// ここで set を変更
}
以外にどのようなものがありますか?
0082デフォルトの名無しさん
2007/06/29(金) 01:43:20>>81とか俺には理解できない・・・
0084デフォルトの名無しさん
2007/06/29(金) 02:26:47色々調べたのですがわからなかったので、初歩的な質問ですが教えてください。
class Car
{
int n;
}
とした時に
Car car[ ] = new Car[3];
のような配列ぽい変数にできるのでしょうか?
今試しているのですがエラーになります。
コンストラクタを使ってオブジェクトを作る時は配列は使用できないのでしょうか?
先のページには出来ている様なコードが書いてあるのですが、抽象クラスでないとダメなんでしょうか?
0085デフォルトの名無しさん
2007/06/29(金) 02:27:12失礼Cはマイコン用のCで低レベルの制御用にのみ使うものです、通信そのもは複雑なネットワークに
も対応できるようにJAVAを使おうと思っています。
0086デフォルトの名無しさん
2007/06/29(金) 02:29:50配列要素それぞれをnew Car()で生成する必要があります
Vector使ったほうが簡単では?
0087デフォルトの名無しさん
2007/06/29(金) 02:31:17エラーの種類がわからないから断定は出来ないけど、
おそらく発生しているエラーは NullPointerException だと思う。
Car[] car = new Car[3];
for (int i = 0; i < car.length; i++)
car[i] = new Car();
0088デフォルトの名無しさん
2007/06/29(金) 02:34:24>>87
なるほど!!
まずは配列要素それぞれで生成するわけですね。
早速試してみます。
0090デフォルトの名無しさん
2007/06/29(金) 03:11:34OKボタンを押したときのイベントの中に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にスクリプトを渡すようにしています。
この書き方はだめなのでしょうか?
ソースは手元にありません。すみません。
よろしくお願いします。
0091デフォルトの名無しさん
2007/06/29(金) 03:22:450092デフォルトの名無しさん
2007/06/29(金) 03:35:312つ目動作することある?
Runtime#exec(String[]) の2つ目以降の要素は1つ目の要素の引数ではないか?
009390
2007/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])
0094デフォルトの名無しさん
2007/06/29(金) 04:39:48組み込み用Cしか動かないような環境でJava動くの?
0095デフォルトの名無しさん
2007/06/29(金) 04:43:53どうせネタだろうけど
Runtime.getRuntime().exec(cmd[1]);
Runtime.getRuntime().exec(cmd[0]);
これでいいよ
0096デフォルトの名無しさん
2007/06/29(金) 06:48:01setの変更がremoveのみなら、こういう手も。
for(Iterator<Foo> iter = set.iterator(); iter.hasNext();){
Foo f = iter.next();
if(...){
iter.remove();
}
}
せっかくの enhanced for loop が使えないのはもったいないけど。
0097デフォルトの名無しさん
2007/06/29(金) 07:45:23こんな感じにする
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の更新の可能性があるならば、同期も取ろう
0098デフォルトの名無しさん
2007/06/29(金) 15:40:33ループ内でリクエスト送信後、レスポンス受信の前に次のリクエストを送る事ってできないんでしょうか?
レスポンスを待たずにリクエストを送りたいと思っています。
こういうのはthreadを使うべきなんでしょうか?
0099デフォルトの名無しさん
2007/06/29(金) 17:11:460100デフォルトの名無しさん
2007/06/29(金) 17:53:150101デフォルトの名無しさん
2007/06/29(金) 19:48:07はじめから考えなきゃだめな部分とそうでない部分がある。
まあ、とにかくはじめに検討することが大事。
0102デフォルトの名無しさん
2007/06/30(土) 00:14:50toArray()メソッドを使おうと考えたのですが、Integer[]クラスへの代入はできるもののint[]クラスへは代入できませんでした
0103デフォルトの名無しさん
2007/06/30(土) 01:00:43ArrayList<Integer>とint[]は一方が他方のサブクラスの関係でないので代入できない。
リストの各要素をint[]の各要素に代入したいのなら、
toArrayでInteger[]を生成したあとで、同じ要素数のint[]を作って、各要素に代入していく。
0104デフォルトの名無しさん
2007/06/30(土) 01:03:390105デフォルトの名無しさん
2007/06/30(土) 01:25:21if(a[ i ] && b+c<=d)
という条件文の場合、条件を日本語を訳すと「a配列の�@番目の要素とb+cがともにd以下の場合」ということでいいんでしょうか?
0106デフォルトの名無しさん
2007/06/30(土) 01:30:520107デフォルトの名無しさん
2007/06/30(土) 01:31:33○要素が
0108デフォルトの名無しさん
2007/06/30(土) 01:32:17URL url = new URL(address);
URLConnection connection = url.openConnection();
としたとしてサーバーに「GET」としてリクエストが行くと思うのですが、ヘッダーのUser-AgentがJava/1.5.0_12となっています。
ネット上のデータを取得するときに、指定したヘッダーをサーバーに送信するやりかたはあるでしょうか?
今はテストとして、http://www.cybersyndrome.net/evc.htmlをURLクラスで取得して、User-Agentの書き換えをあれこれ試してるんのですが、
URLConnectionのsetRequestPropertyなど試してもなかなかうまくいきません。
よろしくお願いします。
0109デフォルトの名無しさん
2007/06/30(土) 02:16:26setRequestPropertyはストリームを開く前にセットしないと効果がないよ。
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とかやるだけでいける。
0110デフォルトの名無しさん
2007/06/30(土) 02:24:22現在まで読んだ文字数を知る方法はないでしょうか?
読み込んだ文字列の長さを足していけばいいと思ったのですが,
改行が削除されているために,改行コードがCRかCRLFかわからない場合うまく数えられないのです.
0111デフォルトの名無しさん
2007/06/30(土) 02:30:11BufferedReader#readLineではたぶん無理
一文字ずつ読んで行にまとめる処理は自分でやる
0113デフォルトの名無しさん
2007/06/30(土) 02:35:55とりあえず最初の行末端が出るまでは一文字ずつ読んで
改行がLFかCRLFかCRかを判断したら
あとはreadLineで読んで改行の種類に応じて行ごとに文字数に1か2を足してやる手もある
0114110
2007/06/30(土) 02:37:43BufferedReaderで現在まで読んだバイト数(現在位置)も知ることは無理でしょうか?
0115108
2007/06/30(土) 02:44:38継続的に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()前にヘッダー送られてるのでしょうか…
0116デフォルトの名無しさん
2007/06/30(土) 02:52:28実際にデータを読むときはなんでURLからストリームを開いてるの?
0117デフォルトの名無しさん
2007/06/30(土) 02:54:22for(;i<bln;i++){
}
と
if(blp==0){
i=2;}
for(i=2;i<bln;i++){
}
は一緒の意味?
0118デフォルトの名無しさん
2007/06/30(土) 02:56:18多分無理っぽい。自分でカウントするしかなさそう。
>>115
わざわざconnectしなくてもデータを読もうとした時点で勝手に接続してくれるよ。
0119デフォルトの名無しさん
2007/06/30(土) 02:58:50blpの値によって違う
0121デフォルトの名無しさん
2007/06/30(土) 03:01:21もしblpが0と1の2種類の場合、0と1でどう違うのでしょうか?
0122デフォルトの名無しさん
2007/06/30(土) 03:09:070123デフォルトの名無しさん
2007/06/30(土) 03:10:59実際に実行してみて分かりました!
0124108
2007/06/30(土) 03:15:28ありがとうございます、UA表示が変わりました。
どうやら、本でURL先のデータ表示だけをする部分に
ttp://journal.mycom.co.jp/column/java/054/index.html
ここのヘッダー取得処理を加えたときに、ごっちゃになったようです、すみません…
>>118
私も最初はconnect()いらないんじゃないかと思ったんですが、ぐぐったときに出たサイトで
// コネクション生成(この時点では、接続されていない)
con=(HttpURLConnection) url.openConnection();
とあったので、そういうものだとばかり思ってました。
ありがとうございました、またがんばろうと思います。
0125デフォルトの名無しさん
2007/06/30(土) 06:27:340126デフォルトの名無しさん
2007/06/30(土) 07:33:530127デフォルトの名無しさん
2007/06/30(土) 08:41:400128デフォルトの名無しさん
2007/06/30(土) 21:08:43Windows アプリケーションでいうところの INI ファイルみたいな
設定ファイルって Servlet にはないの?
properties ファイルはローケール依存テキストを記述するものだから
適当じゃないよね?
0129デフォルトの名無しさん
2007/06/30(土) 21:18:21グーグル先生に「Servlet 設定ファイル」で聞いてみろよ。
http://www.google.co.jp/search?q=Servlet+%E8%A8%AD%E5%AE%9A%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox-a
0130128
2007/06/30(土) 21:25:19調べたんだけど、どこか分からないんです。
コンテキスト ファイルでもないし、server.xml でもないし、web.xml でもない。。。
外部プログラムのパスとか、アップロードしたファイルを記録するディレクトリとか、
Servlet を配備するユーザーが書き換えれるような設定ファイルって、どれになるのかな?
0131デフォルトの名無しさん
2007/06/30(土) 21:31:00そういうことか
アプリケーション自体の設定ファイルなんぞ、読める場所に好きな形式で書いておけばいい
変更も少なく数も少なければ、web.xmlに記述するのもあり。
よくやるのは、設定ファイルのパスをweb.xmlに書いておき、実際の設定ファイルは別にするという形
そうすればテスト用の設定ファイルとかを使い分けるのが楽。
形式はXMLにするかプロパティファイルにするか独自形式か、それは好きにしてくれ
0133デフォルトの名無しさん
2007/06/30(土) 21:43:49ありがとう。とても参考になったよ。
0134デフォルトの名無しさん
2007/06/30(土) 23:23:18しかし、ボタンを2回以上押すとアイコンの後ろに「...」のような文字が入ります。 ちなみに、setActionCommand()も
同時に使っています。 何かのバグでしょうか?
アプリは簡単な動画再生プログラムでPlayとPauseのアイコンを入れ替えるだけのものですが、何か解決方法は
ないでしょうか?
0135デフォルトの名無しさん
2007/06/30(土) 23:27:30ソースみなきゃ何ともいえないけど・・・
JButton playButton = new JButton();
JButton pauseButton = new JButton();
と個別にインスタンス作って、setEnableで制御した方が確実な気がする
どうしても1ボタンで済ませたいのであれば、setVisibleで見せる/見せないの制御を行うほうが自然
013688
2007/06/30(土) 23:50:05値渡し、参照渡しの理解で苦しんでます。
値渡し、参照渡しは言語によってあったりなかったりぽいのですが、これは理屈どうこうっていうより「java仕様」って事で覚えた方がいいのでしょうか?
なぜ値渡し、参照渡しと別々の考え方なのかが理解できないでいます。
「やさしいjava」曰く、クラス型変数は代入=参照渡しだから〜という内容で、int型等を「基本型」とくくって「基本型の変数は値渡し」と書いてあります。
他のサイトやwikiで調べてみると、基本型とかクラス型とか、そういう考え方は一切なく、intやdoubleは値渡しで処理して、String型等は参照渡しがjavaの仕様と書いてあるような気がしました。
やさしいjavaで「クラスで生成された変数は参照型の処理をされる」と書いてありますが、自分のコードのクラスで生成した変数だろうが、クラスライブラリ使用での変数だろうが、
どっちもクラス型変数のような気がして、いまいち「int型やdouble型は基本型の変数」というのが納得いきません。
int型やdouble型等は値渡し、String型は参照渡し みたいな感覚で覚えていいのでしょうか?
うまく説明できてい上に初歩すぎる質問かもですが、よろしくお願いします。
0137デフォルトの名無しさん
2007/06/30(土) 23:57:57http://www.google.com/search?num=50&hl=ja&lr=lang_ja&ie=UTF-8&oe=sjis&q=%E3%82%88%E3%82%8A%E6%AD%A3%E7%A2%BA%E3%81%AB%E8%A8%80%E3%81%86%E3%81%AA%E3%82%89%E3%81%B0%E3%80%8C%E5%8F%82%E7%85%A7%E3%82%92%E5%80%A4%E6%B8%A1%E3%81%97%E3%80%8D
0138デフォルトの名無しさん
2007/07/01(日) 00:11:09やさしいJavaはろくな目にあわないなw
Javaでのプリミティブ型は特殊だという認識を持った上で、メソッド呼び出しの時は全てインスタンスの参照が渡されると認識するならばいいんじゃないか?
納得して先に進みたいならば、この辺に結構詳しく書いてあった
ttp://d.hatena.ne.jp/Strada/20070216
013988
2007/07/01(日) 00:27:18仕組みについては理解できました!
クラス型の変数というところでひっかかっていたようです。
クラスで作った変数1=変数2だと参照型というのは理解していたのですが、
やさしいjavaで「String n」の引数に「一号車」と代入する時はクラス型変数なので参照型 という記述があって、
なぜString型がクラス型の変数なのか?とワケワカラン状態になってました。
プリミティブ型が特殊っていう考え方が非常にわかりやすかったですw
値渡しが基本で、参照渡しが特殊 ではなくて、参照渡しばっかりのjavaの中でプリミティブ型は値渡しが行われてる仕様 って事でいいんですね。
勉強になりました。ありがとうございました!
0140デフォルトの名無しさん
2007/07/01(日) 00:36:18クラス型変数?
違和感を感じたのはそこか!
「クラス型変数なので参照型」は逆だ、逆。
「インスタンス(正確にはその参照)は、参照型変数に代入できる」が正しい
だから、参照型変数の型は必然的にクラスになる
インスタンスの存在に関する記述がテキトーなんだな、その本は
0141デフォルトの名無しさん
2007/07/01(日) 00:38:14#
# An unexpected error has been detected by HotSpot Virtual Machine:
#
# EXCEPTION_ACCESS_VIOLATION 。。。
というメッセージがコンソール画面に出て来るときがあります。
Eclipseのデバッグ画面には、このエラーが発生した箇所が出てこないので、どこで発生しているのか分かりません…
このエラーメッセージが出た場合、とりあえずプログラムのどこをチェックすべきですか?
ACCESS_VIOLATIONってことなので、C言語だったらポインタ演算してる箇所とかをチェックするんですが…
0142デフォルトの名無しさん
2007/07/01(日) 00:39:090143デフォルトの名無しさん
2007/07/01(日) 00:45:57Swingとかマルチスレッド関連?
どの手のアプリケーション実行していての話だろうか。
デバッグ時だと予期せぬ状態としか言いようがないな
0144デフォルトの名無しさん
2007/07/01(日) 00:54:24それが出たときは飼い犬に咬まれたと思って諦めろ
0145デフォルトの名無しさん
2007/07/01(日) 01:02:59今はSwingとマルチスレッド両方使ってます。Swingだけで出てきたこともあります。
エラーが発生した後、logファイルが吐かれてて、そこには
Current thread (0x00837440): JavaThread "JDWP Command Reader" daemon [_thread_in_native, id=5020]
と書かれてました。自分で作ったスレッドで発生したわけではないのかな…
>>144
諦めろ…ということは、原因を突き止めるのがすごく難しい問題だったり、まさかJavaの仕様だったりするんですか…
発生確率は1/10くらいなので「仕様」ということにしておきます。
0146デフォルトの名無しさん
2007/07/01(日) 01:09:08マルチスレッドだと単純に不安定になるよ
デバッグでなく発生するのであれば、別の問題だろうけど
そうでないのであれば原因を突き止めるのはデバッグモードを創れるレベルが要求されそうな予感
0147デフォルトの名無しさん
2007/07/01(日) 01:12:19>値渡しが基本で、参照渡しが特殊 ではなくて、参照渡しばっかりのjavaの中でプリミティブ型は値渡しが行われてる仕様
値渡しが全て。
プリミティブは、その値自身が、値渡しされる。
オブジェクトは、そのオブジェクトへの参照が、値渡しされる。
0148デフォルトの名無しさん
2007/07/01(日) 01:12:370149デフォルトの名無しさん
2007/07/01(日) 01:18:11VMのバグ、または、JNIでの呼び出し先でのバグかも
Javaのプログラムを見ても解決するはずない、たぶん
0150デフォルトの名無しさん
2007/07/01(日) 02:55:57ttp://www.javadrive.jp/start/before/index2.htmlを参考に
したのですが、java test1を実行すると
「注釈処理が〜」というエラーメッセージが出ます。
エラーは1つです。
で、ためしにjava ソース で検索したものを実行させて
みたのですがこれも同じメッセージでエラー1つです。
これは設定が間違っているということなのでしょうか?
0151デフォルトの名無しさん
2007/07/01(日) 02:58:550152150
2007/07/01(日) 03:02:09これです
class test1
{
public static void main(String args[])
{
System.out.println("Hello World!");
}
}
0153150
2007/07/01(日) 03:03:36もう1度
class test1
{
public static void main(String args[])
{
System.out.println("Hello World!");
}
}
0154デフォルトの名無しさん
2007/07/01(日) 03:10:09そのまま実行すれば実行できるよ。
0155デフォルトの名無しさん
2007/07/01(日) 03:11:12あとjavacとjavaのバージョン
0156150
2007/07/01(日) 03:19:46いろいろいじってたらまた出来なくなってきた
操作可能なプログラムまたはバッチファイルとして認識されません
とか出てきた・・・
ちょっと出直してきます。すみません・・・
javacのバージョンとは??
javaはjdk1.6.0_01です
0157150
2007/07/01(日) 03:23:53C:\Program Files\Java\jdk1.6.0_01\bin に変えればよいみたい
なのですが、間違えて class PATH とPatch もこれに
してしまったのですが、問題アリでしょうか??
0158デフォルトの名無しさん
2007/07/01(日) 03:26:01cd C:\TestClass
C:\Java\jdk1.6.0_01\bin\javac test1.java
C:\Java\jdk1.6.0_01\bin\java test1
みたいにフルパスで指定するべし
0159デフォルトの名無しさん
2007/07/01(日) 03:38:28JAVA_HOME = <install_dir>
Path = %Path%; %JAVA__HOME%\bin;
とする。
CLASS_PATHは必要な時だけ。
環境変数Pathって復元できたっけ?
0160150
2007/07/01(日) 04:05:09エラーはこういう表示です。
エラー:クラス名 'java' が受け入れられるのは、注釈処理が明示的に要求された場合だ
けです
エラー 1 個
C:\jsample>
こっから全く進めません・・・
ぐぐっても出てこないし
0161150
2007/07/01(日) 04:06:58ファイル名をjavaに変更しました
0162デフォルトの名無しさん
2007/07/01(日) 04:21:330164デフォルトの名無しさん
2007/07/01(日) 04:27:130165デフォルトの名無しさん
2007/07/01(日) 04:29:58Test01.java
------------------------------------
class Test01
{
public static void main(String args[])
{
System.out.println("Hello World!");
}
}
0166150
2007/07/01(日) 04:30:14けです
このメッセージをぐぐっても出てこないのは
やっぱり普通はこういう事にはならないからなのでしょうか。
うーーーーん・・
>>164
6時までは頑張ってやってみます
ダメなら寝る
0167デフォルトの名無しさん
2007/07/01(日) 04:31:04Test01.java
public class Test01
{
public static void main(String args[])
{
System.out.println("Hello World!");
}
}
0168デフォルトの名無しさん
2007/07/01(日) 04:32:29javacでは拡張子の.javaを含むファイル名を指定する必要あり。
java では拡張子の.classは付けない。
javac test1.java
java test1
0169150
2007/07/01(日) 04:49:15できましたーーーーーーーーーーーーー!!
ファイル名に .java をつけてjavaファイルにしていなかったのが
1番の原因だったと思われます。
ただ、サイトや実用書のように文字が表示されないのが
よくわかりませんが、とりあえず第一関門突破です
ありがとうございました
0170デフォルトの名無しさん
2007/07/01(日) 04:53:15コマンドプロンプトとかDOSとかCUIってしってるか?
0171150
2007/07/01(日) 04:57:42コマンドプロンプトは分かります。
DOSはDOS−Vとかのでしょうか?(真っ黒い画面のがそう?)
DOSとCUIは言葉は聴いたことありますが今いちよく分かりません・・
0172デフォルトの名無しさん
2007/07/01(日) 04:57:55m.add(new JFileChooser());
という感じで、JMenuにJFileChooserを置いて、メニュー内に選択画面を出す…
という変なことやってみたいんですが、ちゃんと表示はされます。
でも、スクロールバーが動かなかったり、ボタンも機能してくれません。
やっぱり無理なんですかね
0173デフォルトの名無しさん
2007/07/01(日) 05:00:120174150
2007/07/01(日) 05:00:56できましたが、Hello Worldの表示が出ない・・・
0175デフォルトの名無しさん
2007/07/01(日) 05:03:47じゃあさっき生成されたclassファイルがあるディレクトリ(フォルダ)に潜って
java test1
>>172
メニューアイテムが選択された時にチューザを表示するようにする。とか。
0176150
2007/07/01(日) 05:12:33今までコンパイラとインタプリタを勘違いしてました。
コンパイラで文字を出そうとしていたのですが
やっと意味が分かってきました。
でも、CLASSファイルができたので
java test1 で出てきそうなのですがエラーになります
うーーん・・・
もうちょいやってみます
0177デフォルトの名無しさん
2007/07/01(日) 05:21:40~~~~~~~~~~~~
0178150
2007/07/01(日) 05:29:22このようなエラーがでます。
おかしいなぁ・・
0179デフォルトの名無しさん
2007/07/01(日) 05:40:49ないなら追加。
0180デフォルトの名無しさん
2007/07/01(日) 05:48:14ttp://ezrenai.takara-me.com/
にリダイレクトされるんだけどPHPおかしくない?
0181150
2007/07/01(日) 05:48:51PATHなんですが、いろいろいじったせいで
元々設定してあったのを全部消して今は
C:\Program Files\Java\jdk1.6.0_01\bin
を設定してあります。; はどこに追加すればよいでしょうか?
0183150
2007/07/01(日) 06:21:16質問答えてくださったみなさんありがとうございました!
やっと次に進めます
0184デフォルトの名無しさん
2007/07/01(日) 06:35:34どうせ俺はvipの深夜保守組だし気にするな。
ただし、昼間は頭使えw
0185デフォルトの名無しさん
2007/07/01(日) 09:00:24WEB上で見るときに色の情報がポップアップで見れたりできるようにしたいんですが
どなたか作ってもらえませんか
http://sky.ap.teacup.com/meki55/img/1183168156.png
欲を言えば最後に絵の具の番号で言うとどうなるのか変換してくれるボックスみたいのがあれば
うれしいんですが
0186デフォルトの名無しさん
2007/07/01(日) 09:03:210187デフォルトの名無しさん
2007/07/01(日) 09:05:540188デフォルトの名無しさん
2007/07/01(日) 09:12:490189デフォルトの名無しさん
2007/07/01(日) 09:36:13Javaのエラーメッセージって相変わらず不親切だな。MSほどじゃないけどさ。
普通に「拡張子(.java)をつけてください」って出せよな
0190デフォルトの名無しさん
2007/07/01(日) 09:39:17元が狂いまくってんだし、幅が効かん。
それともそっち系のモニタの話?
にしても>>185はひどいな。
0191デフォルトの名無しさん
2007/07/01(日) 12:53:48させるにはどのようにすればいいのでしょうか。
↓こんな感じです
最初 □
一秒後□□
もう一秒後□□□
・
・
・
できれば5個くらい表示させたところで停止させる処理の記述も
教えていただけるとありがたいです。
よろしくお願いします。
0192デフォルトの名無しさん
2007/07/01(日) 14:15:28public void paint(Graphics g) {
・
g.drawString("文字間隔",x,y);
・
}
その文字の間隔を任意に設定はできないんでしょうか?
ご教示願います。
0193デフォルトの名無しさん
2007/07/01(日) 16:27:49スレッドまたはタイマー
>>192
g.drawString("文",x1,y);
g.drawString("字",x2,y);
g.drawString("間",x3,y);
g.drawString("隔",x4,y);
どのくらい間隔あけるかは、fontMetricsから計算する
0195デフォルトの名無しさん
2007/07/01(日) 17:28:44読み込んでくれません。 imagesディレクトリに入れてあり、ディレクトリ構造は同じなのですが、
何か MANIFEST.MFに書き加える必要はあるのでしょうか?
0196デフォルトの名無しさん
2007/07/01(日) 17:43:170197デフォルトの名無しさん
2007/07/01(日) 17:48:03わかりました。やってみます。ありがとうございました。
0198195
2007/07/01(日) 17:56:280199デフォルトの名無しさん
2007/07/01(日) 18:13:22public static void main(String[] args) {
long a=2147483647;
System.out.println(a);
}
}
このプログラムのaの値をより大きく表示できるように改変してください。
この値よりも1でも大きくなるとエラーが出てしまいます。
値は出来るだけ大きいほうが良いです。
0200デフォルトの名無しさん
2007/07/01(日) 18:16:201.リソース検索してそのURLを指定せず、ファイル名を直接指定している。
2.Windowsのような大文字小文字の区別をつけないファイルシステムを使っていて、区別をつけるjar内の事情を気にしていない。
0201デフォルトの名無しさん
2007/07/01(日) 18:19:59どっちでも使え
public class longtest {
public static void main(String[] args) {
long a=2147483648L; //1増加
a=Long.MAX_VALUE; // 最大限に増加
System.out.println(a);
}
}
0202192
2007/07/01(日) 18:24:37おいおい、IDでないからってパクるなよw
やってみたけど、めんどうですね。ところでMFCの
SetTextCharacterExtra
みたいに1発で指定できないですかね。
setCharacterSpacing
というのがあるみたいですけど、使い方がわからないです。
0203デフォルトの名無しさん
2007/07/01(日) 18:36:35自分の質問に対するレスへの自分を騙ったレスではないんだからいいんじゃね?
騙りとは違うからIDが出ないこととは無関係。
一発で指定したいのなら、後々のことも考えてsetTextCharacterExtraメソッドを自作する。
0204191
2007/07/01(日) 18:39:34↑をもとに作ってみようとしたんですが、これだとBranchGroupや
TransformGroupはどこで定義すればいいのでしょうか?
0205デフォルトの名無しさん
2007/07/01(日) 18:42:30了解。
0206デフォルトの名無しさん
2007/07/01(日) 20:22:37リンク先のソースのどこにもBranchGroupやTransformGroupはないが?
自分のソース貼り付けてくれよ
0207デフォルトの名無しさん
2007/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]);
*****************
という質問を他スレでしたら、「引数指定」といわれました。
それ以上聞くとスレ違いだらしいので、ここで聞かせてください。
どこを直せばいいんでしょう?
0208デフォルトの名無しさん
2007/07/01(日) 21:41:22Windowsで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 が存在する環境だと実行出来るみたいなのですが
0209デフォルトの名無しさん
2007/07/01(日) 21:43:43java Shukudai453 数字
で実行
0210デフォルトの名無しさん
2007/07/01(日) 21:47:10どんな環境でなにをどうやったらそうなったのか書け
それすら出来ないならば、ここでもスレ違いだ
0211デフォルトの名無しさん
2007/07/01(日) 21:51:49http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29488
を実行したんですが・・・
0212デフォルトの名無しさん
2007/07/01(日) 21:53:29Javaのバージョンは?
そもそもコードを理解できている?
あと、学ぼうとする気ある?
0213実行したのはこっちの間違いでした
2007/07/01(日) 21:57:38import 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;
}
0214デフォルトの名無しさん
2007/07/01(日) 21:59:19>>212
自分ホント分からないものだらけなんで。。。
明日までに完成させたいんです
0215デフォルトの名無しさん
2007/07/01(日) 22:02:410216デフォルトの名無しさん
2007/07/01(日) 22:04:27同情の余地も無い
大学名と学部を晒したら変わりに提出しておいてやるよ
0217デフォルトの名無しさん
2007/07/01(日) 22:23:190218デフォルトの名無しさん
2007/07/01(日) 22:28:120219デフォルトの名無しさん
2007/07/01(日) 22:28:16http://www.seman.cs.uec.ac.jp/~ryu-zr/blog/archives/000571.html
0220デフォルトの名無しさん
2007/07/01(日) 22:29:26ArrayList<String> に別名を付けたり出来ますか?
0221デフォルトの名無しさん
2007/07/01(日) 22:32:56public class StringList extends ArrayList<String> {}
とかすれば出来る(?)けど、何にも意味がないような
0222デフォルトの名無しさん
2007/07/01(日) 22:38:170223デフォルトの名無しさん
2007/07/01(日) 22:38:51Javaにはない
0224デフォルトの名無しさん
2007/07/01(日) 22:43:02ttp://launch4j.sourceforge.net/
0225デフォルトの名無しさん
2007/07/01(日) 23:11:45エイリアスを乱定義して可読性が落ちるからやめてほしいなぁ。
0226デフォルトの名無しさん
2007/07/02(月) 06:35:51私の今のレベルは、Cが「少しは」できる感じです。
(配列・構造体・ポインタなど、基礎的な部分は分かる。
コンパイラの挙動やプリプロセッサに関してもある程度分かる。
作ったことがあるプログラムは、一つあたり1000行(.cファイル二つ、.hファイル一つ)程度)
個人的には、『独習Java』か『やさしいJava』かなあ、と思っていますが、どちらか決め難い。
他にもお勧めがあれば教えてください。
0227デフォルトの名無しさん
2007/07/02(月) 06:38:14オブジェクト指向の勉強もした方がいいよ
0228デフォルトの名無しさん
2007/07/02(月) 06:49:48long型では無理?
0229デフォルトの名無しさん
2007/07/02(月) 07:14:56やさしいJavaはこのスレでもよく話題(笑)にあがるが、少なくともCをかじった人には糞本でしかない
独習Javaがいいと思う
>>228
無理
intの上限以上の配列を確保するってメモリどうなるかは考えた上で設計した方がいい
0230デフォルトの名無しさん
2007/07/02(月) 07:22:13どうしてもintの上限以上の配列を確保したいんですが・・・
0231デフォルトの名無しさん
2007/07/02(月) 07:23:43って言われても全く規模が分からんな・・・未だにこんな言い方してる奴がいるのか。
悪いことは言わんからやさしいjavaはやめとけ。
他の糞本を読んだことないから他にどれが地雷かは分からんが
よほどのものでない限り普通に読めるはず。
後は何がしたいかによってそのジャンルの参考書もいるけど
javaの場合標準ライブラリが多くをカバーしてるんでjava+JAXP等
java開発者向けに標準ライブラリを使った専門分野な本も多くある。
これは外部ライブラリを学習するよりとっつき易さがあるので入門時にはそういう本もおすすめ。
あと、SwingはAWT覚えてから手を出した方が良い。
SwingとAWTは別ライブラリで作法が違うけどSwingはAWT上に構築されてるからSwing中で
(Swingが充実して最近減ったが)AWTのやり方が必要になってくることがあるが両方知ってないと混乱することがある。
0232デフォルトの名無しさん
2007/07/02(月) 07:29:45intの上限を超えて配列は確保できない
そもそも上限を超えた配列を確保できてもライブラリを含め、使うことができない
配列ではない方法で同じデータ構造を持つ方法なんて幾らでもあるだろ
手っ取り早いのはlongをとって、全bitに対してフラグとして扱うとかな
分割して使うことができないとも考えられないし、一体何がしたいの?
0233デフォルトの名無しさん
2007/07/02(月) 07:32:141000ステップ程度ならば、規模を表すにはいいんじゃね?
自分はmainだけで収まるような簡単なサンプルが〜100ステップ程度
いくつかの関数にわけてロジックを組み立てるというところで500〜1000ステップ程度と感じている
個人差もあるし大雑把だけどねw
0234デフォルトの名無しさん
2007/07/02(月) 07:34:01の!はどういう意味ですか?
0235デフォルトの名無しさん
2007/07/02(月) 07:34:41boolean の情報量しかないんなら、
int の配列にして、その 32 ビットの 1 つ 1 つを boolean と見なせばいい。
0236デフォルトの名無しさん
2007/07/02(月) 07:35:44if(!seisu[n]){
ですね
0237デフォルトの名無しさん
2007/07/02(月) 07:36:35現実的にはプリミティブな要素型を持つ配列を生成するケースは少ないので
だいたいの場合はint以上の長さの配列を確保するとすぐにメモリなくなる。
この場合、longを長さに取るコンテナを自作してメモリではなくディスクから読み書きして
必要な分だけメモリに置くクラスを作るのとかする。
マージソート自力で実装する程度のことが出来るならできるんじゃね?
というか配列の要素数は初期化時にint未満の型使ってもワイドニング変換でintになってるからな。
0238デフォルトの名無しさん
2007/07/02(月) 07:38:32つまり、long型の変数を宣言して、その各ビットを、0か1かによって、フラグとして代用するってことでしょうか?
3ビット目が1の場合、booiean[3]=true ってことですか?
0239訂正
2007/07/02(月) 07:40:15つまり、long型の変数を宣言して、その各桁を、0か1かによって、フラグとして代用するってことでしょうか?
100の位が1の場合、booiean[3]=true ってことですか?
0240デフォルトの名無しさん
2007/07/02(月) 07:42:150241やってみます
2007/07/02(月) 07:43:240242デフォルトの名無しさん
2007/07/02(月) 07:44:40細かい突っ込みだがCだと無意味な行が多いからステップ=LOCとは限らんような・・・。
テトリスくらいのをちゃんと関数分けてコメント書いてたら1000行くらいかな?
0243すいません・・・
2007/07/02(月) 07:47:11の!はどういう意味ですか?
0244デフォルトの名無しさん
2007/07/02(月) 07:51:190245すいません・・・
2007/07/02(月) 07:53:16の場合は
a=1以外のとき
ってことですか
でも>>243の場合はどういう意味になるのか分からないんです画・・・
0246デフォルトの名無しさん
2007/07/02(月) 07:57:090247すいません・・・
2007/07/02(月) 07:57:590248デフォルトの名無しさん
2007/07/02(月) 08:00:48if(!a)...
こういうこと
0249デフォルトの名無しさん
2007/07/02(月) 08:01:03「new演算子: クラスのインスタンスを生成します 」
って出てきたんですがいまいち意味が・・・
0250デフォルトの名無しさん
2007/07/02(月) 08:07:110251デフォルトの名無しさん
2007/07/02(月) 08:13:40他人に考えさせる前に自分の頭使おうぜ?
0252228です
2007/07/02(月) 08:18:47僕がやりたいのは、素数を探し出すプログラムで、例えば
「boolean[]のboolean[9967]=false」
だった場合、
「9967は素数ではない。」
といった感じで、素数であるかないかの表を作っていたわけですが、それだとintの上限以上の
素数を記憶できないってことで、皆さんの助言通りに、
「long型の各ビットをbooleanの真偽の代用にする」ことを目指しております。
で、さっきは分かったように思ったのですが、今考えて見るとやっぱりちょっと分からないところが出てきて・・・
long型の各ビットをbooleanの真偽の代用にする、とのことですが、long型の桁数ってint型の上限より少ないですよね?
ってことは「long型の上限の長さの配列」で代用するって意味だったのかなあっと思ったのですが、
配列の長さはintの上限を超えられないんですよね・・・?
結局、できるだけたくさんの素数であるかないかの表を作るにはどうすればいいんでしょう・・・?
0253デフォルトの名無しさん
2007/07/02(月) 08:22:52素数を貯めていくんじゃないかな?
0254デフォルトの名無しさん
2007/07/02(月) 08:24:270255228です
2007/07/02(月) 08:27:23「longに格納できる最大の数」の「桁数」では素数表には少なすぎますよね?
0256デフォルトの名無しさん
2007/07/02(月) 08:28:070257デフォルトの名無しさん
2007/07/02(月) 08:28:100258デフォルトの名無しさん
2007/07/02(月) 08:30:11全部メモリに持ち続ける必要ないでしょ。
区切りでファイルに吐けばlong使う必要ない。
0259デフォルトの名無しさん
2007/07/02(月) 08:30:160260228です
2007/07/02(月) 08:31:03例えば
long n[99999999999]
とかはできるんですか?
配列の長さはどうやってもintの上限を超えられないby>>232
と聞いたので・・・
0261デフォルトの名無しさん
2007/07/02(月) 08:31:13なんでループ分けるの?
0262デフォルトの名無しさん
2007/07/02(月) 08:31:180263228です
2007/07/02(月) 08:32:11すいません詳しくお願いします
(つまり足りなくなったら他の奴に乗り換えろってこと?)
0264デフォルトの名無しさん
2007/07/02(月) 08:35:37配列の個数×longのビット数 だけの情報が扱えるじゃん。
0265デフォルトの名無しさん
2007/07/02(月) 08:36:52素数かどうかの判定でもするの?
0266228です
2007/07/02(月) 08:37:300267デフォルトの名無しさん
2007/07/02(月) 08:37:340268デフォルトの名無しさん
2007/07/02(月) 08:38:34素数を貯めていくんじゃダメ?
0269デフォルトの名無しさん
2007/07/02(月) 08:38:41>なるべくたくさんの素数表を作っておく必要があるんです
俺らはそれが何のためかと聞いている。
0270デフォルトの名無しさん
2007/07/02(月) 08:41:07prime[0] = 2;
prime[1] = 3;
prime[2] = 5;
prime[3] = 7;
prime[4] = 11;
みたいに。
0271デフォルトの名無しさん
2007/07/02(月) 08:50:270272デフォルトの名無しさん
2007/07/02(月) 08:51:260273デフォルトの名無しさん
2007/07/02(月) 08:56:37素数の総数が int を越えるとダメになるんじゃないの?
0274デフォルトの名無しさん
2007/07/02(月) 08:57:19素数の値が int を越えるとダメになる、だ。
0275デフォルトの名無しさん
2007/07/02(月) 08:59:160276デフォルトの名無しさん
2007/07/02(月) 09:06:32素数が意外と多いからスペース削減にはならんっぽいな。
ファイルに書き出していけばいいけどもん。
0277デフォルトの名無しさん
2007/07/02(月) 09:09:26そこから間違ってる気がするんだが・・・
0278デフォルトの名無しさん
2007/07/02(月) 09:09:420279デフォルトの名無しさん
2007/07/02(月) 09:15:41今度はry・・・とか聞きそうな気がしてきた。
0280デフォルトの名無しさん
2007/07/02(月) 09:19:55こういう問題は関数型の方が得意か・・・
0281デフォルトの名無しさん
2007/07/02(月) 09:20:040282デフォルトの名無しさん
2007/07/02(月) 09:23:11素数表の作成効率は悪いな。 >素数かどうかのテーブル
0283デフォルトの名無しさん
2007/07/02(月) 09:26:03うん。やっぱり素数を配列に貯めていった方が、
速度的にも容量的にもいいみたいだ。
0284デフォルトの名無しさん
2007/07/02(月) 09:27:08ちょっと混乱してきた・・・。
0285デフォルトの名無しさん
2007/07/02(月) 09:31:580286デフォルトの名無しさん
2007/07/02(月) 09:34:150287デフォルトの名無しさん
2007/07/02(月) 09:40:28最大バイト数×8 の大きさの素数まで扱える。
素数を貯めていく場合、
最大バイト数/64 個の素数が扱える。
この時の素数の最大値が最大バイト数×8より大きければ
素数を貯めていく方が容量効率がいいことになるんだけど、
圧倒的に足りないから容量効率は悪いっぽ。
0288デフォルトの名無しさん
2007/07/02(月) 09:49:14配列は飛び飛びなのに。
0289デフォルトの名無しさん
2007/07/02(月) 09:51:070290デフォルトの名無しさん
2007/07/02(月) 09:52:060291デフォルトの名無しさん
2007/07/02(月) 09:55:140292デフォルトの名無しさん
2007/07/02(月) 10:10:000293デフォルトの名無しさん
2007/07/02(月) 10:30:460294デフォルトの名無しさん
2007/07/02(月) 13:00:320295デフォルトの名無しさん
2007/07/02(月) 13:10:170296デフォルトの名無しさん
2007/07/02(月) 18:05:58JLabel.setTextで表示すると、後ろから1桁か2桁しか表示されません。
どうすれば全部表示されますか?
0297デフォルトの名無しさん
2007/07/02(月) 18:13:19今は秀丸を使っているのですが、
上級者の方は後々「Java専用プログラミングエディタ」みたいなのを使い始めるのでしょうか。
0298デフォルトの名無しさん
2007/07/02(月) 18:21:20どうやってMD5をかけたか、MD5をかけた後の変数の型、
System.out.print()した方法、setText()した方法をコードで示しましょう。
それから、MD5は暗号ではないです。
0299デフォルトの名無しさん
2007/07/02(月) 18:22:03さいきんはEclipseを使う人が多いかもしれない。
0300デフォルトの名無しさん
2007/07/02(月) 18:23:11digestをbyte配列で得てprintの方は順番に配列要素を表示していってるから全部表示されて、
JLabelの方には配列要素を順番に引数としてsetTextでセットしているから、
結局最後の配列要素しかJLabelには現れないというオチだったり。
もしそうなら、setTextはappendTextでないということは分かってないよね?
0301デフォルトの名無しさん
2007/07/02(月) 18:26:09>>297
自分が慣れたエディタを使えばええやん
0302デフォルトの名無しさん
2007/07/02(月) 18:27:00xmlHttpRequest使いたいんだけど。
通信ってURLConnection使うしかない?
0303デフォルトの名無しさん
2007/07/02(月) 18:39:23rhino
0304デフォルトの名無しさん
2007/07/02(月) 19:28:350305デフォルトの名無しさん
2007/07/02(月) 20:52:250306デフォルトの名無しさん
2007/07/02(月) 20:58:11それかDOM Level 3 Load and Save使えよ。
0307デフォルトの名無しさん
2007/07/02(月) 20:58:36そろそろEclipseに乗り換えてもいいと思うよ
禿丸使うよりも生産性が上がる
0308デフォルトの名無しさん
2007/07/02(月) 21:48:50いきなりeclipseは導入で手間取りそうだね。
詳細なリファクタリングやコードフォーマットを頻繁に行わないならnetbeansでも良いと思う。
ヴュジュアル主体の開発とテキスト主体の開発っていうコンセプトの違いは大きいから選んだ方が良いけど。
プロトタイプでっち上げてそれをリファクタリングしまくりながら肉付けしていき開発する俺には
リファクタリング・フォーマッティング・ドキュメンテーションの面でnetbeansはかなり効率悪い。
けどGUI部分は書きたくないしリファクタリングなんてどうでもいいぜ!って人ならnetbeansの方が効率良い。
netbeansでGUI組んでeclipseでリファクタリングでも良いかも。
0309お願い!!
2007/07/02(月) 23:16:47WEBアプリケーションでよくファイルアップロード機能があると思います。
その仕組みとして直接クライアントで指定したファイルを
サーバにアップロードしないでDBにBLOGなどで登録は可能でしょうか?
可能であればその仕組みを教えてください。
よろしくお願い致します。
0310デフォルトの名無しさん
2007/07/02(月) 23:39:00どっちにしてもサーバは使うことになると思うが。
0311デフォルトの名無しさん
2007/07/02(月) 23:43:24C++で使われている構造体をJAVAで再現することは可能でしょうか?
もしそのまま流用して動作するのであれば有難いのですが・・・。
宜しくお願い致します。
0312デフォルトの名無しさん
2007/07/02(月) 23:44:55FTP使えば?
0313デフォルトの名無しさん
2007/07/02(月) 23:46:40マルチ乙
0314お願い!!
2007/07/02(月) 23:51:59すみません。
サーバはAP、DBともに使うのですが、
どちらのサーバにも物理ファイルをアップロードしないで
クライアントにあるファイルを直接バイナリ変換して
DBに登録に登録出来るかが知りたかったのです。
0315デフォルトの名無しさん
2007/07/02(月) 23:53:51クローズドなシステムだったら署名つきJavaApplet上で
JDBCでBLOBデータを流す感じかな。
とりあえず日本語の勉強しておいたほうがいい。
0316デフォルトの名無しさん
2007/07/03(火) 00:16:26ファイルを直接バイナリ変換ってなに?
普通バイナリをBase64でテキストにエンコードするんじゃないの?
0317デフォルトの名無しさん
2007/07/03(火) 00:51:49バイナリ変換と言ってるが何をバイナリ変換するんだ?
アップロードされてないものを変換できないぞ。
0318デフォルトの名無しさん
2007/07/03(火) 01:18:54アップロードしない → サーバにデータを送らない → サーバのDBに登録できない
0319デフォルトの名無しさん
2007/07/03(火) 01:26:280320デフォルトの名無しさん
2007/07/03(火) 01:45:00クライアントにDBをインストールしてそこに目的のファイルをINSERT
↓
バックアップファイルを作成
↓
サーバにFTPでバックアップファイルを転送
↓
サーバのDBにリストア
0321デフォルトの名無しさん
2007/07/03(火) 01:52:17降順にソートした状態で出力したいのですが、どのようにすればよいのでしょうか?
TreeMap使えばいいのかなーと思ったのですが、どうやってカウントしていけばいいのかというところで
ちょっとわからなくなってしまって・・・
0322デフォルトの名無しさん
2007/07/03(火) 02:00:22マップを検索してなければその単語をキーにして頻度を1にして新規に加えて
あればその単語の頻度を1増やす
0323デフォルトの名無しさん
2007/07/03(火) 02:01:110324デフォルトの名無しさん
2007/07/03(火) 02:06:59出現頻度はIntegerなどのラッパークラスを使って頻度更新のたびに入れ替えていくか
new int[1]した配列を入れてint[0]の値を更新していくか
その辺りは自分のポリシーで
0325デフォルトの名無しさん
2007/07/03(火) 03:20:070326デフォルトの名無しさん
2007/07/03(火) 08:20:150327デフォルトの名無しさん
2007/07/03(火) 09:23:48JNIのロード方法が特殊でjarに固めるとロード時にNoClassDefFoundErrorが出るし、固めずに実行するとExceptionInInitializerErrorが出る。
ちゃんと使えてる人居たらどうやって使ってるか教えてほしい。
うちの環境はjdk6u1とwin用JCurses 0.9.5
0328デフォルトの名無しさん
2007/07/03(火) 16:35:10無駄では?
0329デフォルトの名無しさん
2007/07/03(火) 17:08:21並行処理やるわけでもないのに何でそんなのが必要になるんだよw
0330デフォルトの名無しさん
2007/07/03(火) 18:18:220331デフォルトの名無しさん
2007/07/03(火) 18:39:15”なんとなく” という単語に俺が言いたいことを全部押し込めたわけだが
0332デフォルトの名無しさん
2007/07/03(火) 19:51:04笑いどころも無いので皆さん解凍できなかった様子。
0333デフォルトの名無しさん
2007/07/03(火) 21:49:12というエラーの解決法教えてくださいm(_ _)m
0334デフォルトの名無しさん
2007/07/03(火) 21:50:20エラーは何ですか?
0335デフォルトの名無しさん
2007/07/03(火) 21:50:580336335
2007/07/03(火) 21:51:560337デフォルトの名無しさん
2007/07/03(火) 21:54:50解決方法は質問じゃなくて自分で勉強することだろうな
0338お願い!!
2007/07/03(火) 22:00:08javaでのファイルアップロードの仕組みとして
一般的にクライアントで指定したファイルをサーバに
一度アップロードしてからデータベースへ
BLOB(バイナリラージオブジェクト)で登録するようです。
ただし、私の知りたいその2段階で行う処理を
サーバに一度もファイルを置かずに1段階で
データベースに登録が技術的に可能なのかが解かりませんでした。。
0339デフォルトの名無しさん
2007/07/03(火) 22:12:13可能
0340お願い!!
2007/07/03(火) 22:14:03出来そうな感じもするのですが
実装方法はどうしたらいいのでしょうか?
0341デフォルトの名無しさん
2007/07/03(火) 22:15:20ちったあ調べれ
0342デフォルトの名無しさん
2007/07/03(火) 22:16:46一度もサーバーに置かないというのは物理ファイルのことだよな?
それならば、サーバーの能力、転送量次第
十分に運用に耐えられると判断したならば、Servlet内でbyte[]やTempファイルなんかをメモリ上に作成すればいい
例えば数Kバイト程度のCSVファイルが1時間に1つ程度送られてくるとかならば、オンメモリでも問題ないだろう
だけど、例えばそれが月頭の特定時間に1万ファイル/分で転送されてくるならば止めた方がいいだろう
0343デフォルトの名無しさん
2007/07/03(火) 22:21:008進数や16進数など現場でつかいますか?
0344デフォルトの名無しさん
2007/07/03(火) 22:25:068進数は使わない。
0345デフォルトの名無しさん
2007/07/03(火) 22:27:09君が将来勤める工事現場では8進数も16進数もたぶん使わないんじゃないかな
0346デフォルトの名無しさん
2007/07/03(火) 22:30:560347デフォルトの名無しさん
2007/07/04(水) 01:49:01chmod 755 hogehoge.cgi
とかは 8進数
0348デフォルトの名無しさん
2007/07/04(水) 03:53:140349デフォルトの名無しさん
2007/07/04(水) 09:39:04やだ
0350デフォルトの名無しさん
2007/07/04(水) 09:48:550351デフォルトの名無しさん
2007/07/04(水) 13:18:31これからも聞きたいときは聞きに来ていいんだよ
答えたいときに答えるから
0352デフォルトの名無しさん
2007/07/04(水) 13:55:35http://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%83%BC%E3%83%BB%E3%82%B0%E3%83%A9%E3%83%95%E3%82%A3%E3%83%83%E3%82%AF%E3%82%B9
http://ja.wikipedia.org/wiki/%E3%82%B0%E3%83%A9%E3%83%95%E3%82%A3%E3%82%AB%E3%83%AB%E3%83%A6%E3%83%BC%E3%82%B6%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%95%E3%82%A7%E3%83%BC%E3%82%B9
0353デフォルトの名無しさん
2007/07/04(水) 21:05:0316進はよく使う。8進はあまり使わないが>>347のように使うことはある。
0354デフォルトの名無しさん
2007/07/04(水) 21:35:560355デフォルトの名無しさん
2007/07/04(水) 22:36:41Sunのホームページにあったサンプルですが、動きません。
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
0356デフォルトの名無しさん
2007/07/04(水) 22:37:460357デフォルトの名無しさん
2007/07/04(水) 22:39:16その nested exception is: の後が重要。そっちも書いて
0358355
2007/07/04(水) 22:44:08read; 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
0359355
2007/07/04(水) 22:44:50)
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)
0360355
2007/07/04(水) 22:46:25at 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
0361355
2007/07/04(水) 22:47:08at 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
0362355
2007/07/04(水) 22:47:58at 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)
0363355
2007/07/04(水) 22:48:42at 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
以上です。解析お願いします。
0364デフォルトの名無しさん
2007/07/04(水) 22:57:31java.lang.ClassNotFoundException: example.hello.Hello だ、原因はStackTraceは一番下(元の)例外を読むのが原則
サーバの方でパスが通っている場所にクラスファイルがない
0365デフォルトの名無しさん
2007/07/04(水) 23:03:22調べてみます。。。でもこんな感じなんですよね〜
D:.
│ a.bat
│ コマンド プロンプト.lnk
│
└─example
└─hello
Client.class
Client.java
Hello.class
Hello.java
Server.class
Server.java
0366デフォルトの名無しさん
2007/07/04(水) 23:06:090368355
2007/07/04(水) 23:19:260369デフォルトの名無しさん
2007/07/04(水) 23:30:08が原因を教えてくれているな。
エラーメッセージには答えそのものが書いてあることが多いからよくよめ
0370デフォルトの名無しさん
2007/07/04(水) 23:32:09まて、bin直下にクラスファイルを置かないと動かないってどういうことだよ!
0371デフォルトの名無しさん
2007/07/04(水) 23:35:48そういうことだよ
0372デフォルトの名無しさん
2007/07/04(水) 23:43:32そういうことじゃなくて、rmiregistry.exeを>>365のディレクトリ上に配置すればイイーンダヨ♪
0373デフォルトの名無しさん
2007/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);
}
}
Character.isLetter(char)は日本語の文字にもtrueを返してしまいます。
0375デフォルトの名無しさん
2007/07/05(木) 01:45:08結論いうと可能。アプレットだよね。
ソースファイルに以下のコメント記述でアプレットタグの内容を書く。
/**
<APPLET>内容</APPLET>
*/
コンパイルしたら、appletviewer.exeというjavaの実行フォルダにある
ビューワを使えば読める。
こんな感じ
c:\>appletviewer "ソースファイル名"
ただし、ブラウザと多少動作が違うから確認程度で我慢すること。
詳しくはぐぐれ
こことかどうよ
http://www.itlb.te.noda.sut.ac.jp/~takuma/lecture/java/step1.html
0376デフォルトの名無しさん
2007/07/05(木) 01:53:33あったようななかったような、、A〜Z、a〜zの範囲なら自作のAPIを作っても手間がそんなにかからないと思うけど。
http://charset.7jp.net/unicode2.html
0377デフォルトの名無しさん
2007/07/05(木) 01:59:02ありがとうございます!
0378デフォルトの名無しさん
2007/07/05(木) 02:00:240379デフォルトの名無しさん
2007/07/05(木) 02:06:440380デフォルトの名無しさん
2007/07/05(木) 02:10:140381デフォルトの名無しさん
2007/07/05(木) 02:41:15次はなにかを作りながら覚えて言ったほうがいいかなと思ったのですが
なにかいい参考書や方法はあるでしょうか?
みなさんはどういうステップJAVAを学んでいかれたのでしょうか?
よかったら教えてください。
0382デフォルトの名無しさん
2007/07/05(木) 03:02:31資格取ったり仕事で使ったりしたから、いろいろ知ってるけど。
どうでもいいような事とかJavaで出来ること、出来るけど困難なこと、そもそも出来ないこと
の区別が付けることが出来たら、お客さんに気に入られるよってアドバイスする俺はSE兼PGです。
趣味の範囲ならアソシエイツを取る勢いで浅く広く覚えれば面白いと思うよ。深く追求すると嫌になるから。
http://suned.sun.co.jp/JPN/certification/sjcaobj.html
0383デフォルトの名無しさん
2007/07/05(木) 09:35:44ほとんど無報酬のボランティアで答えている俺は
SE兼PG兼奴隷です。
0384デフォルトの名無しさん
2007/07/05(木) 10:37:04ソケットで自作しないとだめなんでしょうか?
0385デフォルトの名無しさん
2007/07/05(木) 10:57:13外部のライブラリ使えば簡単にできる。commons netとか
ttp://jakarta.apache.org/commons/net/
0386デフォルトの名無しさん
2007/07/05(木) 11:37:20Java "Script"なら関数オブジェクトを変数に入れて
コールすれば内部処理的にも関数ポインタに近いんだけどなぁ・・・
クロージャが追加されれば似たような事が出来るけど
Javaのクロージャってレキシカルスコープ引き継ぐんだろうか?
>>381
やさしいjavaをきれいさっぱり忘れて他の本をじっくり読む。マジオヌヌメ。
0387デフォルトの名無しさん
2007/07/05(木) 12:03:03htmlで<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でも改行されずに表示されます
0388デフォルトの名無しさん
2007/07/05(木) 12:10:35\rが入ってるとか?
0389デフォルトの名無しさん
2007/07/05(木) 12:11:16LFだけ消して
CRLFを消してないから
CRが残ってる
0390387
2007/07/05(木) 12:21:08\rを消して無事に一行で出力することができました
>>388さん>>389さんご回答ありがとうございました!
0391デフォルトの名無しさん
2007/07/05(木) 13:04:01Javaのばあい、動作してるプラットフォームの改行コードに変換されるんじゃなかったけ?
0392デフォルトの名無しさん
2007/07/05(木) 13:25:240393デフォルトの名無しさん
2007/07/05(木) 13:28:12ブラウザがどういった改行コードを送ってくるかは環境依存?それとも何か決まりはある?
0394デフォルトの名無しさん
2007/07/05(木) 13:36:19WindowsからはCRLFで送られてくるし
UNIX系からはLFで送られてくるよ
HTTP以外のSMTPとかのプロトコルだと
ちゃんとCRLFになってるみたいだけどね
0395デフォルトの名無しさん
2007/07/05(木) 13:52:38システム上でファイルに関連付けられてるアイコンを
自動的に表示するような方法ってない?
やっぱりひとつひとつアイコン設定するしかない?
0396デフォルトの名無しさん
2007/07/05(木) 13:55:190397デフォルトの名無しさん
2007/07/05(木) 13:56:430398デフォルトの名無しさん
2007/07/05(木) 14:00:00そうなんだ!
どうやるの?
0399デフォルトの名無しさん
2007/07/05(木) 14:56:46ファイルに関連づけられてるアイコンって、
OS依存な気がするんだが・・・>>396は何か勘違いしてる気が・・・
0400デフォルトの名無しさん
2007/07/05(木) 14:59:090401デフォルトの名無しさん
2007/07/05(木) 15:00:06JTree上のアイコンだろ?
0402デフォルトの名無しさん
2007/07/05(木) 15:12:33エクスプローラみたいなのを作りたいってことは、exeファイルのアイコンとか
関連づけられたアプリのアイコンとかにしたいってことなんじゃないの?
>>401
0403デフォルトの名無しさん
2007/07/05(木) 15:47:41そういうことっす
0404デフォルトの名無しさん
2007/07/05(木) 19:04:570405デフォルトの名無しさん
2007/07/05(木) 20:49:420406デフォルトの名無しさん
2007/07/05(木) 21:03:29同じプログラムを Linux へ持っていたらまったく意図した通りに動かない、ということですな・・・
0407デフォルトの名無しさん
2007/07/05(木) 21:05:440408デフォルトの名無しさん
2007/07/05(木) 21:30:39デフォルトはシステムのどっかにアーカイブされてるんだろうが
0409デフォルトの名無しさん
2007/07/05(木) 21:45:570410デフォルトの名無しさん
2007/07/05(木) 21:50:05ttps://jdic.dev.java.net/
この辺のAssociationとか使えそうじゃね?
ttps://jdic.dev.java.net/documentation/Examples.html
0411デフォルトの名無しさん
2007/07/05(木) 22:50:43http://javadesktop.org/jdic/demo/FileExplorer/fileexplorer.jnlp
0412デフォルトの名無しさん
2007/07/05(木) 22:51:45また、画面から入力(Enter)があれば、ループを抜けずに、プログラムを強制終了させる。
上記の問題で条件文のことで質問があります。
while(true){
// 省略
if(System.in.available() > 0)
break;
}
「入力があれば」は上記if文でいいのでしょうか?
またEnterキーが入力された場合はどのように条件文を書けばいいのですか?
0413デフォルトの名無しさん
2007/07/05(木) 22:58:570414デフォルトの名無しさん
2007/07/05(木) 23:01:12それだと、ファイルの種類にかかわらずアイコンが全部同じになってるんだよね。
他に方法があるといいんだけど。
0415デフォルトの名無しさん
2007/07/05(木) 23:07:24まったく意図が通じていないと思うがエスパーしてみる
socket.getInputStream() を使ってバイナリを受信するべし
0416412
2007/07/05(木) 23:20:24・画面からの入力が「Enterキー」ならプログラム強制終了。
の部分だけを知りたかったんです。
サーバ、クライアントなしでただのプログラムとして考えてください。
0417デフォルトの名無しさん
2007/07/05(木) 23:21:270418デフォルトの名無しさん
2007/07/05(木) 23:30:010419デフォルトの名無しさん
2007/07/05(木) 23:33:58Scanner scanner = new Scanner(System.in);
scanner.nextLine();
0420デフォルトの名無しさん
2007/07/05(木) 23:42:01たぶんもう見てると思うけど
http://wisdom.sakura.ne.jp/system/java/swing/swing38.html
の一番下のとか
http://terai.xrea.jp/Swing/PreviewAccessory.html
とかがあるよね
でも >>395 の
「やっぱりひとつひとつアイコン設定するしかない? 」
の不満は解消されてないっぽ
シコシコやっても >>406-407 みたいになるのがオチ
0421デフォルトの名無しさん
2007/07/05(木) 23:43:41お勧めの教えてくらさい
軽くその本の内容も書いてくれると嬉しいです
0422デフォルトの名無しさん
2007/07/05(木) 23:49:540423デフォルトの名無しさん
2007/07/05(木) 23:57:28サンクス
ググってみたが,出版されて日が浅いせいか
全然レビューないな
とりあえず,明日本屋で立ち読みしてみるわ
0424デフォルトの名無しさん
2007/07/06(金) 00:04:15jdicのAssociationServiceのgetFileExtensionAssociationで拡張子指定して
Associationを取得してgetIconFileName()を使うとなんか帰ってくるな。
なんでか「絶対パス,整数」の形式になってる。
数字の意味がわからないが絶対パスの先はアイコンではなく
実行ファイルなのであった・・。
ああ、もしかするとアイコンを使ってるファイルのパスが帰ってくるのか(´д`)
0425デフォルトの名無しさん
2007/07/06(金) 00:04:250426デフォルトの名無しさん
2007/07/06(金) 00:05:50整数はリソースの番号だろ
0427デフォルトの名無しさん
2007/07/06(金) 00:06:45アイコンを使ってるファイルのパスじゃなくて
アイコンを格納しているファイルだろうね
0428デフォルトの名無しさん
2007/07/06(金) 00:13:18で、「もしや?」と思って試してみた。
上手くいったぞ。こんなコード。
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が発生した。
0429デフォルトの名無しさん
2007/07/06(金) 00:24:49乙。
0430428
2007/07/06(金) 00:35:40public 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;
}
}
0431デフォルトの名無しさん
2007/07/06(金) 00:43:17javax.swing.filechooser.FileSystemView 使えば
Windows では 16x16のアイコンと、ファイルの種類だけは取れる。
0432デフォルトの名無しさん
2007/07/06(金) 07:27:440433デフォルトの名無しさん
2007/07/06(金) 09:46:41Eclipseでプログラミングをしているのですが、
log4jとJCOMを外部jarとして追加しています。
この状態でjarファイルとしてプログラムをエクスポートすると、生成されたjarがそのまま実行できません。
CLASSPATHが通ってない・・・みたいなエラーが出ます。
通常のjarみたいにダブルクリックで起動させたいのですが、これはどうすれば解決できるでしょうか?
0434デフォルトの名無しさん
2007/07/06(金) 10:18:12実行可能Jarでググれ。
0435デフォルトの名無しさん
2007/07/06(金) 10:33:12ググってみたんですけど、
外部Jarを使ったプログラムのエクスポート方法
などが載ってるページが見つかりませんでした。
0436デフォルトの名無しさん
2007/07/06(金) 10:56:55お前さんが使ってるGoogleは別物なんだな。
わかった。ズバリ答え。
MANIFEST.MFにこう書け。
Class-Path: log4j.jar jcom.jar
log4j.jarとjcom.jarは、実行するJarファイルと同じフォルダに置くこと。
0437デフォルトの名無しさん
2007/07/06(金) 12:19:50ありがとうございます!!
無事に実行することができました。
これで実行jarと同じ階層に3つのjarファイルがあるわけなんですが、
コレを1つのexeファイルにしたいんです。
Fat jarでまとめてexewrapでexeにする・・・というのはできるんでしょうか?
0438デフォルトの名無しさん
2007/07/06(金) 15:46:00そこまで手順が確定しているなら自分でやってみればできるかどうかすぐ分かる。
0439たかひと
2007/07/06(金) 16:49:12どのようにすればいいのでしょうか。
宜しくお願いします。
0440デフォルトの名無しさん
2007/07/06(金) 17:52:310441デフォルトの名無しさん
2007/07/06(金) 18:05:44スレッドとかぶつかっても平気ですか?
0442デフォルトの名無しさん
2007/07/06(金) 21:19:09まぁ日付の書式に気をつければ何の問題もないけどね。
0443デフォルトの名無しさん
2007/07/06(金) 21:31:280444デフォルトの名無しさん
2007/07/08(日) 00:53:30> 1.7 Is log4j thread-safe?
> Yes, log4j is thread-safe. Log4j components are designed to be used in heavily multithreaded systems.
まことに残念
0445デフォルトの名無しさん
2007/07/08(日) 01:42:28例えば以下のソースで、
------------------------
int i = 0;
byte b = -1;
i = i | b;
------------------------
やりたいことは、iのビットパターンを以下のようにしたいんだけど、
00000000 00000000 00000000 11111111
実際はこうなってしまいます。
11111111 11111111 11111111 11111111
これってどうすれば回避できるんでしたっけ・・・
0446デフォルトの名無しさん
2007/07/08(日) 02:00:34単純に宣言や拡張が何か足りないだけなのでしょうか…
0447デフォルトの名無しさん
2007/07/08(日) 02:02:350448デフォルトの名無しさん
2007/07/08(日) 02:04:26i = i | (b & 0xFF)
0449デフォルトの名無しさん
2007/07/08(日) 02:04:330xFF と AND でもとれば
0451デフォルトの名無しさん
2007/07/08(日) 02:16:37Eclipse3.21 JDK1.6.0_02、Windows2000SP5です。同じような症状の人いますか? 普通に実行してる分にはNullPointerExceptionは発生しないのですが。
0453452
2007/07/08(日) 03:01:220454デフォルトの名無しさん
2007/07/08(日) 03:04:300455デフォルトの名無しさん
2007/07/08(日) 04:41:180456452
2007/07/08(日) 04:44:03GUI(Swing)を使えば必ず出てきます。
階層的にはJFrame#initの呼び出しの果てに
Window#init(GraphicsConfiguration gc)
が呼び出されて、さらにその後もメソッドの呼び出しが続いてTrueTypeFon.open()でヌルポが発生してしまいます。
ただこのヌルポ、デバッグモードで動かさないとわかりません。
Eclipseならデバッグモードじゃなくてもヌルポが発生したらコンソールに知らせてくれるはずなのだと思いますが。
0457デフォルトの名無しさん
2007/07/08(日) 07:33:330458452
2007/07/08(日) 11:06:54public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setSize(640, 400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
こんな単純なのでもデバッグモードで起動するとヌルポが出てしまいます。
0459452
2007/07/08(日) 11:10:080460デフォルトの名無しさん
2007/07/08(日) 11:31:51それでも発生するならばEclipseの実行環境(JRE)の設定でJDK1.6となっているかを確認。
さらに、プロジェクトのプロパティからコンパイルレベルが、6.0になっているかを確認
ダメならば、Eclipseを入れなおしてみる
とりあえず、そんなとこかな?
0461452
2007/07/08(日) 12:17:34どうもありがとうございます。JREの設定でJDK1.6、コンパイルレベルが、6.0、ともになっています。
ちょうどEclipse3.3が出たから、アドバイスどおりEclipseを入れなおしてみます。
0462デフォルトの名無しさん
2007/07/08(日) 12:23:473.3.1が出るまでは冒険でしょでしょ(=ω=.)
なんかプラグインが衝突しているんかねぇ
大量にプラグインいれた環境とかならば、再インスコがベストだろうな。
VEとかいれているならばかなり怪しい
0463デフォルトの名無しさん
2007/07/08(日) 13:46:20Exception in thread "main" java.lang.NoClassDefFoundError:Sample1とエラーが出ます
そこでシステム環境変数のCLASSPATHを削除したら治ったのですがこれは削除してもよかったんでしょうか?
0464デフォルトの名無しさん
2007/07/08(日) 13:47:110465デフォルトの名無しさん
2007/07/08(日) 14:04:21CLASSPATHは環境変数に設定するとトラブルを誘発するので勧めない
必要な時、javaコマンドなどのオプション-cpで設定する方がいいよ
0466デフォルトの名無しさん
2007/07/08(日) 14:08:51はいそうです。
CLASSPATHの値を控えずに消してしまいました。元の状態に戻すことは不可能ですか?
0467デフォルトの名無しさん
2007/07/08(日) 14:16:00不可能
Windowsのバックアップ機能とかあるならば可能かもしれないけど、そっちは詳しくないので知らん
何度も言うけどCLASSPATHに値を設定してトラブルになるより、-cpの使い方学べ、その上でCLASSPATHに必要ならば設定汁
0468デフォルトの名無しさん
2007/07/08(日) 14:23:49そうですか・・ありがとうございました。
まあ今のところ問題なく動いているので大丈夫だと思いますが
ちなみにCLASSPATHは全くいじってませんでした。
04692人の女性と付き合っている高1です
2007/07/08(日) 19:54:12よこから割り込みますがCLASSPATHを環境変数に設定するとまずいという
ご意見がありますが、どういう時にまずいのでしょうか?
僕は現在JavaSE6up2しかマシンにインストールしていませんが、そんな
状況で起こりうる誤作動の事例をよろしければ教えてください。
0470桜井葵
2007/07/08(日) 20:11:370471デフォルトの名無しさん
2007/07/08(日) 20:46:41CLASSPATHでググれカス
0472デフォルトの名無しさん
2007/07/08(日) 20:47:502人とも妊娠
0473デフォルトの名無しさん
2007/07/08(日) 23:43:42↓
http://www.yukinko-net.jp/
0474デフォルトの名無しさん
2007/07/09(月) 12:48:21JDKを使って勉強したいのですが、
どれを使えばいいのでしょうか。
・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のバージョンってないのでしょうか
0475デフォルトの名無しさん
2007/07/09(月) 12:56:49JDK 6 はあるよ。>>1のWikiサイトからたどれる。
ttp://java.sun.com/javase/ja/6/download.html
ここのJDK 6u2をダウンロードすればおけ。
with BetBeansってのは、IDEが付いてくる。
最初はエディタでやろうとしているなら、いらない。
with Java EEは、初心者なら忘れてしまってもかまわない。
0476デフォルトの名無しさん
2007/07/09(月) 13:10:49URLConnectionでGETパラメータを送ろうとしているんですが
どの時点で送信しているのかがわかりません。
String urlString = "http://hoge.com/hogehoge.jsp?a1=test&a2=TEST";
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に送信してそのまま受信に入っているんでしょうか?
タイミングがイマイチわからないので教えてください。
0477474
2007/07/09(月) 13:14:35ありがとうございます。
後のいろいろな機能はあとから付けられるのでしょうか。
どのようにつけたらよいのでしょうか。
よろしくお願いします。
0478デフォルトの名無しさん
2007/07/09(月) 14:06:21Java EEはここから
ttp://java.sun.com/javaee/downloads/index.jsp
NetBeansはここから
ttp://www.netbeans.org/products/
後でダウンロードしてインストールできる。最初からなくても大丈夫。
0479デフォルトの名無しさん
2007/07/09(月) 14:10:170480デフォルトの名無しさん
2007/07/09(月) 16:10:37自分の書いたレスをじっくり読み直すんだ
前者以外に答えがあると思うかね
0481デフォルトの名無しさん
2007/07/09(月) 16:44:22いまJPanel上を右クリックでJPopupMenuを表示するところまではできたのですが、メニューを選んだときの処理をどうすべきかわかりません。
MouseEventだとどのメニューを選んだかわからず、ポップアップにつけたJMenuItemにsetActionCommandを付けようにも、JPanelにaddActionListenerがないため、どのように識別させるのかがわかりません。
また、上の識別の問題に関連するものですが、JPanel別にメニューを付けてるのですが、大部分が重なる処理なので、呼び出し元(JPanel)を識別して、イベント処理で振り分けるということはできないでしょうか。
以上2点、お願いします。
0482481
2007/07/09(月) 17:01:07ボタン処理のようにJMenuItemごとにアクションリスナーを登録するという方法があるようで、そうするとメニュー選択時に呼ばれるようになりました。
どうも、検索したときのキーワードの範囲が広すぎたようね…
2つ目はいまだわからず、getComponentだとパネルの位置はわかるんですが、ActionCommandのように得ることはできないですかね。
0483デフォルトの名無しさん
2007/07/09(月) 17:25:50(Wordなら、文字の削除とオートシェイプの削除、など)
ActionMapで振り分けるとか。
JPanel p1 = new JPanel();
p1.getActionMap().put("edit", new AbstractAction(){
public void actionPerformed(ActionEvent e){
// 編集時の処理
}
};
p1.getActionMap().put("delete", new AbstractAction(){
public void actionPerformed(ActionEvent e){
// 削除時の処理
}
};
のようなJPanelを用意しておいて、JPopupMenu表示時には
ActionMapからJMenuItemを組み立てる。こんな感じ
private JPopupMenu createMenu(ActionMap map){
JPoppuMenu menu = new JPopupMenu();
JMenuItem editItem = new JMenuItem("編集");
if(map.get("edit") != null){
editItem.setAction(map.get("edit"));
} else {
editItem.setEnable(false);
}
menu.add(editItem);
// 以下略
return menu;
}
0484481
2007/07/09(月) 17:37:35なるほど、ActionMapってそういう使い方をするためにあったんですね。
もう少し調べて試してみます。
ありがとうございました。
0485デフォルトの名無しさん
2007/07/09(月) 18:24:07一度描画したものをドラッグで移動させるにはどのような方法があるのでしょうか?
「java ドラッグ」とかでググっても出てこない・・・
0486デフォルトの名無しさん
2007/07/09(月) 18:26:55[1] ドラッグされたことを知る
[2] 描画したものを移動させる
がんがれ
0487デフォルトの名無しさん
2007/07/09(月) 18:32:29[1]についてはマウスイベントで成功しました。
[2]がよくわかりません。
いちいち白塗りして細かく描きなおすのでしょうか。
0488デフォルトの名無しさん
2007/07/09(月) 19:43:28スプライト処理でぐぐってみれ。
要はTVゲームのスプライトと同じで描画領域と位置をコントロールする
後はマウスのイベントで移動量を測ればOK
0489デフォルトの名無しさん
2007/07/09(月) 22:54:08昔WebStartのサンプルで画像エディタがあって、コンポーネント単位で画像の移動、重ね貼りが
出来るのがあったけど、そういうのを作ろうとしているの?
0490デフォルトの名無しさん
2007/07/09(月) 23:09:17あれだ、ソリティアみたいなやつ
結構簡単に出来るといっていたけど、ソースみてもわからんorz
0491デフォルトの名無しさん
2007/07/09(月) 23:40:07今ならレイヤーで簡単
0492デフォルトの名無しさん
2007/07/10(火) 00:32:21ブラウザを2つ立ち上げると2つとも同じ数をカウントしていきます。int変数でカウントを記録しています。
ブラウザAを立ち上げる→1と表示される
ブラウザBを立ち上げる→2と表示される
ブラウザAの更新ボタンを2回クリック→4と表示される
ブラウザBの更新ボタンを1回クリック→5と表示される
これだと、いろんなユーザにint変数が共有されてしまうようにおもうんですが
これでいいものなんですか?
以下、ソースを載せます。
0493492
2007/07/10(火) 00:34:04import javax.servlet.*;
import javax.servlet.http.*;
public class Lesson03 extends HttpServlet {
int intCount = 0;
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
response.setContentType("text/html; charset=iso-2022-jp");
intCount++;
PrintWriter pw = response.getWriter();
pw.println("<html><head><title>カウントアップするサーブレット</title></head>\n"
+ "<center><br><br>読み込む度にカウントアップします<hr><br><br>\n"
+ intCount + "回読み込まれました。<br></center></body></html>\n");
}
}
0494デフォルトの名無しさん
2007/07/10(火) 00:35:53サーブレットのインスタンスは通常1個しか生成されず、
複数のリクエストは同じインスタンスを呼び出す
0495デフォルトの名無しさん
2007/07/10(火) 00:38:07原則、インスタンスフィールドは作らない
0496492
2007/07/10(火) 00:42:53どうもありがとうございます。よ〜くわかりました。doGetメソッドの中で宣言したらよかったです。
ありがとうございました。
0497デフォルトの名無しさん
2007/07/10(火) 00:45:290498デフォルトの名無しさん
2007/07/10(火) 00:49:54DnDをどうやって認識させるかで書き方が変わるね。
0499デフォルトの名無しさん
2007/07/10(火) 01:16:58求めたいX座標Y座標の値を返す関数を作りたいのですが教えてください。
0500デフォルトの名無しさん
2007/07/10(火) 03:10:10java.awt.geom.Point2D method(java.awt.geom.Point2D p, 斜辺の型 a, 傾きの型 b) {
return new java.awt.geom.Point2D(p,a,bから求めたx, p,a,bから求めたy);
}
実際にはjava.awt.geom.Point2Dは抽象クラスなんでnewでインスタンスを作れないから、
必要な精度に合わせてjava.awt.Pointとかjava.awt.geom.Point2D.Doubleとかを生成して返す。
引数の方はjava.awt.geom.Point2Dでなく問いのようにx,yを別々に指定するようにしても。
両方のメソッドを作ってオーバーロードしておいてもいいかと。
0501デフォルトの名無しさん
2007/07/10(火) 08:28:03パソコンのバックグラウンドで待機して、メール受信時にまずプロキシがメールデータ
を取得し、迷惑メールでなければそのままメールクライアントにメールデータを渡したい
です。
サーバーソケットを作って待機しているのですが、メール受信時にローカルにバインド
されるポート番号を検出できず悩んでいます。当然、110番で待機してはダメですよね?
メールクライアント側でプロキシサーバーアドレス、ポートを指定できれば早いのですが…。
(IEのように)
アンチウィルスソフトは、ローカルにプロキシサーバーを置いているように見受けられる
のですが、どうやって実現しているのでしょう?
どなたか、アドバイスをお願いいたします。
0502デフォルトの名無しさん
2007/07/10(火) 10:33:56まだ一度もセルにフォーカス取得してない状態だとフォーカスが消えたようになる。
もう一度TABを押すとようやくセルが選択状態になるのだが・・・・・。
一度セルにフォーカスを取得すると他のコンポーネントから一発で移動できるように
なるんだがな・・。
ちなみにScrollPaneは使っても使わなくても同じでした。
JDKは1.5す。
どなた原因&回避策おながいします。
0503デフォルトの名無しさん
2007/07/10(火) 10:43:18あれはシステムに食い込んでるからこそできること。
Java では原理的に無理。
メーラーではメールサーバーに localhost を指定して、
設定その他は自分のプログラムでやるしかないと思う。
0504501
2007/07/10(火) 11:35:41レスありがとうございます。
メーラーのメールサーバーに localhost を指定して、通信をパイプする
ような感じで実装してみようと思います。
この場合、メールアカウントごとの設定がめんどくさいっすねー・・・。
どうやって保持しようかしら。
0505デフォルトの名無しさん
2007/07/10(火) 14:25:52屑メーラーを捨てれば良いだけ。
それとも、まともなスパムフィルタを作れるほどの
技術があるならメーラーそのものから作るって方法もある。
0506デフォルトの名無しさん
2007/07/10(火) 14:44:29既にあるから作る意味ないって?
つまらない考え方だな。
0507デフォルトの名無しさん
2007/07/10(火) 14:44:52↓
DBクラスYで振込情報をINSERT
↓
DBクラスZで入金情報をINSERT
↓
業務ロジッククラスXでCOMMITとDB切断
をする際にDBクラスY,Zでconnection.commit()をさせない、
コンパイルエラーにする方法ってありますか?
INSERTをさせるためにはDBクラスY,Zにconnectionを渡さなければならず
connectionを渡せばcommit()が可能になってしまいます。
commit()やrollback()が不可能なDB接続を渡すとかできないでしょうか?
テストでバグ潰せばいいじゃんというのもわかりますができればコンパイル時にはじきたいです。
0508デフォルトの名無しさん
2007/07/10(火) 15:22:18いけないならともかく、上乗せできるなら悪いことじゃないでしょ、
普通に考えても
0509デフォルトの名無しさん
2007/07/10(火) 16:25:27java.sql.Connectionをラップしたクラスを作れば?
ほとんど全てのメソッドはスルーするけど、
commit()やrollback()が呼ばれたらIllegalStateExceptionを投げるようなの。
0510509
2007/07/10(火) 16:28:05それならAspectJという手も。
ttp://www.kronos-jp.net/tech/tech100/tech100.html
0511デフォルトの名無しさん
2007/07/10(火) 16:49:20DBクラスY,ZにはNewConnectionを渡す。
NewConnectionのラッパークラスを作り、DBクラスY,Zからconnectionのアクセスが出来るようにする。
で、どうよ?
0512デフォルトの名無しさん
2007/07/10(火) 17:16:500513デフォルトの名無しさん
2007/07/10(火) 17:40:48WindowsマシンならALT+変換押せ
0514デフォルトの名無しさん
2007/07/10(火) 17:56:06ありがとうございます。そうです、コンパイル時にはじきたいです。
>>511
その場合、
Connection connection = DriverManager.getConnection( 略 );
↓※
NewConnection newConnection = new NewConnectionWrapper();
※の部分の、実際のconnectionをnewConnectionにどうやって渡してあげればいいですか?
頭がこんがらがってきた・・・
0515デフォルトの名無しさん
2007/07/10(火) 18:02:00まずは落ち着け。
0516デフォルトの名無しさん
2007/07/10(火) 18:06:050517デフォルトの名無しさん
2007/07/10(火) 18:07:04NewConnection newConnection = new NewConnection(connection);
ただし、NewConnection は java.sql.Connection になれないので、
java.sql.Connectionを前提にしているプログラムが既にあるなら、
それを書き直さないといけなくなる。新規開発ならいいけどね。
あとは個人的な感覚だけど、独自規則のAPIを強制されるのはイヤダ。
APIは標準だが実装は(APIの範囲内で)独自、なら許せるが。
0518デフォルトの名無しさん
2007/07/10(火) 18:17:13なるほど。newConnectionの中でconnectionをprivateで持っておいて
commit()とrollback()は作らず、それ以外はnewConnectionのpublicメソッドを通して
connectionに投げると。ありがとうございます。
>あとは個人的な感覚だけど、独自規則のAPIを強制されるのはイヤダ。
>APIは標準だが実装は(APIの範囲内で)独自、なら許せるが。
自分も独自APIを強制して自由度を奪うのは好きじゃないですが
DB関連クラスだけでcommit()とrollback()のみの制限ならギリギリ許容範囲内かなと思っています
0519デフォルトの名無しさん
2007/07/10(火) 18:20:17判定したい型が決まっているなら
instanceof演算子
とりあえず型を知りたいだけなら
"不明オブジェクト".getClass().getName()
0520デフォルトの名無しさん
2007/07/10(火) 19:57:44逆に送信者に攻撃を仕掛けて
二度と送ってこないようにするには
Javaではどのような方法がありますか?
0521デフォルトの名無しさん
2007/07/10(火) 20:32:13さようなら。
0522デフォルトの名無しさん
2007/07/10(火) 20:48:44オーケー。いい方法を思いついた。
試してみたいので、お前のメールアドレスを教えてくれ。
0523デフォルトの名無しさん
2007/07/10(火) 21:41:060524デフォルトの名無しさん
2007/07/10(火) 21:58:09よろしければ教えていただけないでしょうか?
0525デフォルトの名無しさん
2007/07/10(火) 22:05:35サイズを変更したことをリアルタイムに感知したいんですが、どのような方法があるでしょうか?
MouseMotionだとD&Dしてる間はメッセージが送られず、componentResizedも試しましたがマウスボタンを離した瞬間しか感知しません
(できればその移動距離か変更後のサイズも知りたいです)
JAVAではそういうのは想定してないんでしょうか。
>>524
Windowsなら、○○.batっていうファイルつくって右クリック編集
中に
------------
cd 移動先
java メインクラスの名前
-----------
の2行を書けばできるます。
詳しくはバッチファイルでしらべてくらはい
0526デフォルトの名無しさん
2007/07/10(火) 22:06:09それぞれのフォルダはさらにサブフォルダをいくつか持っています
全部のフォルダをたどって全部のExcelファイルから
特定のシートの特定のセルを抽出していきたいのですが
どのようにすればよいのか検討も付きません
0527524
2007/07/10(火) 22:12:30そのやり方を知っていたら教えて下さい。
0528デフォルトの名無しさん
2007/07/10(火) 22:14:57そういうことね、勘違いしてた
0529デフォルトの名無しさん
2007/07/10(火) 22:57:20Runtime.getRuntime().exec(☆DOSコマンド☆);
特定の処理がわからないのでここまで
0530デフォルトの名無しさん
2007/07/10(火) 23:06:56jrunscriptつかえ。そういうときのためにわざわざ用意されたんだから
0531デフォルトの名無しさん
2007/07/10(火) 23:27:40Java歴半年くらいでいまJSPとかデータベース使って小規模なシステム作ってる
0532デフォルトの名無しさん
2007/07/10(火) 23:42:01java1.5ならProcessBuilderが熱い
0533デフォルトの名無しさん
2007/07/10(火) 23:49:44EclipseのプラグインとかSwingなどのGUI
イベントドリブンなアプリケーションに慣れ、スレッドをある程度使いこなすと差は出来る
0534デフォルトの名無しさん
2007/07/11(水) 00:29:28そこで Visual C++ ですよ
0535デフォルトの名無しさん
2007/07/11(水) 00:40:07EDTで時間かけてイベントキュー詰まらせてアーーーー!!とか・・・
VMのスレッド実装の差異やCPUの数が2以上あってアーーー−!!とか?
個人的にはJWSに触れとくのお勧め。
0536デフォルトの名無しさん
2007/07/11(水) 02:45:59どっちかを消すと上手くいくのに、
どちらも宣言するとシンボルが見つかりませんといわれる・・・
0537デフォルトの名無しさん
2007/07/11(水) 02:51:480538デフォルトの名無しさん
2007/07/11(水) 13:28:05形はそこそこ出来てきたので「同一人物(同IP)からの二重投稿を禁止する」機能をつけようとしているのですが
こういったものを作るのに便利なクラスはあるのでしょうか?
0539デフォルトの名無しさん
2007/07/11(水) 15:19:110540デフォルトの名無しさん
2007/07/11(水) 15:23:12b = a;
a = 1;
System.out.println(b);
みたいに書いてa > bでないときでもa = 1;が実行されるように錯覚させる悪い奴のこと
0541デフォルトの名無しさん
2007/07/11(水) 15:25:29a > bの時にしかa = 1;が実行されないように、だ
0542デフォルトの名無しさん
2007/07/11(水) 17:19:25どうせ後から変更されるんだし。
if (a > b){
b = a;
}
a = 1;
System.out.println(b);
0543デフォルトの名無しさん
2007/07/11(水) 19:31:51a = 1;
System.out.println(b);
こう書けば短い。
0544デフォルトの名無しさん
2007/07/11(水) 23:26:192:javaでcsvファイル読んだりあれこれしてDBに書き込む
3:DB書き込み結果をJSPで表示、というのを作っています。
これに規定の時間を越したらエラーとしてタイムアウト画面へ遷移する機能を
追加しようと思っています。
で、Actionで
try{
Timer timer = new Timer();
timer.schedule(new myTimer(),3000);
色々
}catch(myTimeoutException e){
return (mapping.findForward("error"));
}
myTimer#run() ←TimerTask継承クラス
myTimeoutException e = new myTimeoutException ();
throw e;
みたいにやってみましたが
myTimer#run()までは来るけどActionの方にmyTimeoutException で飛んでこないです。
なんでException飛んでこないのでしょうか?
0545デフォルトの名無しさん
2007/07/11(水) 23:33:56Threadに関して基本から学びなおして来い
簡単なサンプルをおいておくので実行してみてくれ
class ThreadA extends Thread {
public void run() {
throw new RuntimeException();
}
public static void main(String[] args) {
new ThreadA().start();
}
}
0546デフォルトの名無しさん
2007/07/11(水) 23:56:24今注目されてるのがあれば教えてください。
0547デフォルトの名無しさん
2007/07/12(木) 00:12:42java3dとかその拡張ライブラリのことか?
0548デフォルトの名無しさん
2007/07/12(木) 00:21:01"フレームワークの"定番って書いてあるだろ
0549デフォルトの名無しさん
2007/07/12(木) 00:21:570550デフォルトの名無しさん
2007/07/12(木) 00:31:470551デフォルトの名無しさん
2007/07/12(木) 00:34:40定番はBorderLayoutとGridBagLayoutだよ、で満足するのかな(=ω=.)
0552デフォルトの名無しさん
2007/07/12(木) 00:36:31runメソッド内でThread.currentThread().getName()を出力してみれば?
あと、myTimeoutExceptionクラスのコンストラクタの中でもThread.currentThread().getName()を出力して
違いが分かれば無問題♪
0553デフォルトの名無しさん
2007/07/12(木) 00:43:35Webサーバとクライアントのイベントのやり取りを調べてくれ、それじゃ実装できん
1.クライアントでタイムアウトを検知したい
⇒ JavaScriptなどで実装
2.サーバーでタイムアウトを検知したい
⇒ 最初のアクセス時間を記録していて差分を取ればいい
尚、2の場合、「せっかっく頑張って入力したのに><」ってなるので注意。
0554546
2007/07/12(木) 00:46:37swing自体フレームワークなのですが、
http://journal.mycom.co.jp/news/2007/04/27/015/index.html
http://itpro.nikkeibp.co.jp/article/COLUMN/20070516/271165/
をみて、只気になっただけです。
0555デフォルトの名無しさん
2007/07/12(木) 05:40:19javaでswing以上のGUI出しても高度なだけでどのOSでも通用するGUIが提供できなくなるんじゃないかな?
LnFがjavaなだけでwin/macユーザーは避けるし。
ポトペタ支援はJSRガンガン出すだろうね。
そんなところじゃない?
やっぱベクターベースのGUIツールキットはまだ早いだろうか?
0556デフォルトの名無しさん
2007/07/12(木) 06:50:33小数点以下二桁まで残して切り捨てたいです。
第一感はこういう感じですが、もっと良い方法があれば教えてください。
double total = 1234.5678;
int tmp = (int)(total*100);
total = tmp/100.00;
0557デフォルトの名無しさん
2007/07/12(木) 07:00:49表示の時にのみ切り捨てるべきと考えて、NumberFormat
小数点2桁と固定ならば、intで【全て】計算して、表示する時に100で割る。
0558デフォルトの名無しさん
2007/07/12(木) 07:13:07total = new BigDecimal(total).setScale(2, BigDecimal.ROUND_DOWN).doubleValue();
0559あ
2007/07/12(木) 10:31:48String型のabcがあってabcともにnullならDBの内容を全部返し、bcだけnullならaの値を返すなど全8通りのif文をうまく考えられません。
どなたか1つでもいいのでお願いします。
0560デフォルトの名無しさん
2007/07/12(木) 10:36:26全部返すときはa列とb列とc列を連結して返すの?
0561デフォルトの名無しさん
2007/07/12(木) 10:42:080562あ
2007/07/12(木) 10:55:29値を取得するってことです。
いまアプリケーション作っててサーブレットに書く内容がうまく表現できなくて…
if (i == null && t == null && p == null) {
String sql = "select * from *****";
ResultSet rs = stmt.executeQuery(sql);
とか考えてたんですけど…
0563デフォルトの名無しさん
2007/07/12(木) 11:40:110564デフォルトの名無しさん
2007/07/12(木) 11:45:050565デフォルトの名無しさん
2007/07/12(木) 11:56:27void test(int... vector) {
if (vector.length == 0)
System.out.println("vectorは空です.");
else
for (int i : vector)
System.out.print(i + " ");
}
こういうメソッドを書くと、可変長引数は引数なしでも実行できるので、
test();
と呼び出すと、"vectorは空です."と表示されます。
ですが、同名の以下のメソッドを同じクラスで定義すると、
オーバーロードされますので、引数が0のときの振る舞いが不定のように見えます。
void test() {
test(1);
}
実際にやってみたところ、下の関数が呼び出され、"1 "が表示されました。
可変長引数よりもオーバーロードのほうが優先されることがわかりましたが、
引数的にはどちらでも呼び出せるので、しっくりこません。
よければこのようになる理由を教えてもらえますか?
0566デフォルトの名無しさん
2007/07/12(木) 12:43:04http://java.sun.com/docs/books/jls/third_edition/html/expressions.html#15.12.2.5
あたりだね。
0567デフォルトの名無しさん
2007/07/12(木) 12:52:47もうちっと上だった。 15.12.2.3 の一番最後に
> If no method applicable by method invocation conversion is found,
> the search for applicable methods continues with phase 3 (§15.12.2.4).
> Otherwise, the most specific method (§15.12.2.5) is chosen among the methods that are applicable by method invocation conversion.
メソッド呼び出し変換で適用可能なメソッドが見つからなければ、
メソッド探索はフェイズ3(可変長引数で適用可能なメソッドを探すフェイズ)に移行。
そうでなければ、最適なメソッドはメソッド呼び出し変換で適用可能なメソッドから選ばれる。
0568565
2007/07/12(木) 13:09:21こんな質問に、的確な返答をありがとうございます。
そうですか、文書で定義されているんですね。
以下チラ裏
Javaって言語の定義が明確なイメージがあるから、こういうどっちとも取れる構文を許容するのは少し以外。
C++なんかでも、オーバーロードには定義が重ならないように注意しているのに、なんか意図して許容してるのかなあ。
まあ、「実装するのがややこしいorパフォーマンスに問題が出る」っていう可能性が一番高い気もする。
0569デフォルトの名無しさん
2007/07/12(木) 13:15:48printfがやりたかっただけ。
0570デフォルトの名無しさん
2007/07/12(木) 14:47:05だからこそJLSで明確な定義があるんじゃないか
0571デフォルトの名無しさん
2007/07/12(木) 16:17:51swap要るか要らんかの話みたいだと思った記憶があるんだが。
0572sage
2007/07/12(木) 21:59:27<hoges>
<hoge id="hoge1"><value>ほげでーた</value></hoge>
<hoge id="hoge2"><value>ほげでーた</value></hoge>
<hoge id="hoge3"><value>ほげでーた</value></hoge>
</hoges>
pubric class Hoges {
@XmlElement(name="hoge")
private List<Hoge> hogelist = new ArrayList<Hoge>();
・・・
}
@XmlRootElement
pubric class Hoge {
@XmlAttribute(name="id")
private String id;
@XmlValue
private String value;
・・・
}
このxmlの<value>タグが無駄に思えて仕方ない。
<hoges>
<hoge id="hoge1">ほげでーた</hoge>
<hoge id="hoge2">ほげでーた</hoge>
<hoge id="hoge3">ほげでーた</hoge>
</hoges>
ってな書き方で、"ほげでーた"をHoge.valueにセットする方法ない?
0573デフォルトの名無しさん
2007/07/12(木) 22:11:250574デフォルトの名無しさん
2007/07/12(木) 22:13:14できません。自分でフラグを用意してください。
0575556
2007/07/12(木) 23:15:53レスありがとうございます。
doubleを使わないんですね。
intで計算すると、どんな良い事があるんでしょうか。
>>558
ごめんなさい
使えるのはjava.util.*だけでした。
0576デフォルトの名無しさん
2007/07/12(木) 23:48:21「UDTの通信で自分のIPアドレスと、通信している相手のIPアドレスを比較するプログラム」というプログラムを作っています。そこで、
相手のIPアドレスは、DatagramPacket.getAddress() で
「192.○.○.○」という様に普通に取れるんですが、
自分のIPアドレスを、InetAddress.getLocalHost().getHostAddress() で
「2001:0:4136:・・・・」という様に(ググってみるとIPv6のIPアドレスらしいんですが)比較できません。
IPv4で自分のIPアドレスを取得するにはどうすればいいんでしょうか?
よろしくお願いします。
0577デフォルトの名無しさん
2007/07/13(金) 00:04:310578デフォルトの名無しさん
2007/07/13(金) 00:52:58UDT?
0580デフォルトの名無しさん
2007/07/13(金) 01:01:46どうやってやるのですか?
特別なライブラリを使用するとかでしょうか??
0581デフォルトの名無しさん
2007/07/13(金) 01:18:020582デフォルトの名無しさん
2007/07/13(金) 01:22:080583デフォルトの名無しさん
2007/07/13(金) 04:25:34どなたかGUIではないイベント処理のサンプルコードを教えてくださいませんでしょうか。
0584デフォルトの名無しさん
2007/07/13(金) 05:21:09まあ、それは良いとして単純なCUIだとループ中にキー入力拾うだけ。
それ以上のものはコンソール制御できないjavaには無関係で
どっちにしても例に出すようなサンプルコードはないよね。
イベントドリブンでググった方が良いと思う。
0585デフォルトの名無しさん
2007/07/13(金) 05:28:47public class Clock implements java.awt.event.ActionListener {
public void actionPerformed(java.awt.event.ActionEvent e) {
System.out.println(new java.util.Date());
}
public static void main(String[] args) throws InterruptedException {
Clock c = new Clock();
new javax.swing.Timer(1000, c).start();
synchronized (c) {
c.wait();
}
}
}
0586デフォルトの名無しさん
2007/07/13(金) 08:15:59それ結局はGUI+スレッドに関連したプログラミングなんじゃ・・・。
まあ、java.awt.*パッケージにイベント周り集中してるからjavaのイベント処理は
ヘッドレスじゃないだろって考え方もできるから>>583の質問も的を射てないかも知れんが。
0587デフォルトの名無しさん
2007/07/13(金) 11:16:43> 結果の配列の名前文字列は特定の順序にはなりません。
> アルファベット順になるわけではありません。
とありますが、これは名前文字列以外の点においても
不定(少なくとも保証はしない)と言うことなのでしょうか?
0588デフォルトの名無しさん
2007/07/13(金) 11:21:40実装的にはOSのAPIが返す順番そのものなので、たいていはディスク上の
ディレクトリに記録されている順番になる。だから、意味のある順番で
はない。
0589デフォルトの名無しさん
2007/07/13(金) 11:42:40そゆ事。
原文みりゃ分かると思うけど
> There is no guarantee that the name strings in the resulting array
> will appear in any specific order; they are not,
> in particular, guaranteed to appear in alphabetical order.
日本語訳では in particular の部分がスッポリぬけてるのね。
もちろん、>>588がいう「OSのAPIが返す順番そのもの」ってのも一切保証されてない。
0590デフォルトの名無しさん
2007/07/13(金) 11:46:45server.xmlのJNDI(ResourceParams)の設定でfactoryにBasicDataSourceFactoryなどの
コネクションプーリングに対応した、データソース実装クラスのfactoryを
指定する事で行われる。
factoryの指定がない場合は、driverClassNameで指定したJDBCドライバの
DataSource実装クラスが使用される。
よって、factoryなしで、JNDIの記述だけでは、プールが行われるとは限らない。
PostgreSQLの場合、付属のJDBCドライバでは、プールはされない。
0591デフォルトの名無しさん
2007/07/13(金) 11:57:10ありがとうございます。やはり、と言うところですが
訳抜けと言う点は驚きました。
0592デフォルトの名無しさん
2007/07/13(金) 14:14:100593デフォルトの名無しさん
2007/07/13(金) 14:40:21可能
0594592
2007/07/13(金) 15:02:09axisを共有した異種チャートの混合表示も可能でしょうか
0595デフォルトの名無しさん
2007/07/13(金) 15:25:30javadocでは普通、原文とサイトのチュートリアルよく読むのオヌヌメ
0596デフォルトの名無しさん
2007/07/13(金) 15:44:35異種で共有ってのがよく分からないけど、それも出来たと思う
前使った時に5,6種類のグラフを重ねてプロットしてたはず
0597デフォルトの名無しさん
2007/07/13(金) 15:45:43てsと
0598デフォルトの名無しさん
2007/07/13(金) 17:02:50double test = 17.56;
というのがあって、これの100倍の答え(1756)を出したいのですが、
計算すると、1755.9999999999998などという答えがでてきます。
どのようにすれば期待した答えがでてくるのでしょうか。
試したことは下記の2つでどちらも変な結果になりました
System.out.println(test * 100.0);
System.out.println(test * 100.0f);
0599デフォルトの名無しさん
2007/07/13(金) 17:19:33BigDecimal test = new BigDecimal("17.56");
System.out.println(test.multiply(new BigDecimal(100)));
0600デフォルトの名無しさん
2007/07/13(金) 17:20:37System.out.println(Math.round(test*100));
0601598
2007/07/13(金) 17:39:48ありがとうございました
期待通りの答えをだすことができました。
単純に100倍するというのは難しいことなんですね・・・勉強になりました。
0603デフォルトの名無しさん
2007/07/13(金) 19:51:42誤差がね
あるから
0604デフォルトの名無しさん
2007/07/13(金) 19:52:03Javaに限ったことじゃないけど、プログラムで小数を扱うのは難しい
0605デフォルトの名無しさん
2007/07/13(金) 19:55:110606デフォルトの名無しさん
2007/07/13(金) 20:26:470607デフォルトの名無しさん
2007/07/13(金) 20:31:580608デフォルトの名無しさん
2007/07/13(金) 20:46:130609デフォルトの名無しさん
2007/07/13(金) 22:42:44試したこと無いけど
DatagramPacket.getSocketAddress().getAddress() って何が帰ってくるの?
0610デフォルトの名無しさん
2007/07/14(土) 00:04:40適当すぎw 答えが2.6とかだったら3になるなw
0611デフォルトの名無しさん
2007/07/14(土) 16:47:500612デフォルトの名無しさん
2007/07/14(土) 17:40:17とりうる値がかなり限られているなら○○以上の値を複数のcaseで羅列して挙げておけばいいが、
そういう条件判断は普通はif文で処理したほうがいいと思う。
0613デフォルトの名無しさん
2007/07/14(土) 18:39:38int flag = 0;
if( 10 <= x) flag = 1;
switch flag
case flag:
// 処理
break;
default:
// 何もしない?
でどうだ?
switch文は使わないのがベター
大雑把な書き方は覚えているけど、詳細忘れたんで、テキトー
xが10以上の時、switch文で処理を分岐できるぞ。
業務で書いたならばぶち殺すけどなwwww
0614デフォルトの名無しさん
2007/07/14(土) 18:55:18できません
0615デフォルトの名無しさん
2007/07/14(土) 21:07:48case 1:
0616デフォルトの名無しさん
2007/07/14(土) 22:37:48caseに変数は使えない。リテラルのみ。
自信ない時は試してから書こうぜ。
0617デフォルトの名無しさん
2007/07/14(土) 22:38:210618611
2007/07/14(土) 23:28:120619デフォルトの名無しさん
2007/07/14(土) 23:30:160620デフォルトの名無しさん
2007/07/15(日) 01:21:060621デフォルトの名無しさん
2007/07/15(日) 12:13:26一度ByteにしてArrayListに格納して、取り出してbyteに変換しています。
もっとスマートな方法(このクラスを使った方が良い等)があれば教えて頂けないでしょうか。
ArrayList byteArray = new ArrayList();
int readByte = 0;
while (readByte != -1) {
readByte = stream.read();
if (readByte != -1) {
byteArray.add(new Byte((byte) readByte));
}
}
Byte[] byteBig = (Byte[]) byteArray.toArray(new Byte[0]);
byte[] byteTmp = new byte[byteBig.length];
for (int i = 0; i < byteBig.length; i++) {
byteTmp[i] = byteBig[i].byteValue();
}
0622デフォルトの名無しさん
2007/07/15(日) 12:49:22スマートとかじゃなくて、それじゃ落第です。動くだけ。性能でなさ杉。
1.もし読み込み対象データのサイズは先にわかるのであれば、1発バルクリ
ードしておしまいのはず。そんな遅そうな処理をする必要はないです。
多分こんな感じで。
File target = new File("...");
byte[] buffer = new byte[target.length()];
FileInputStream in = new FileInputStream(target);
in.read(buffer);
I/O-CPU間のスイッチが発生しないので、速いですよ。
2.サイズがわからないにしても、1バイトずつ読むのはやめなさい。
たとえば100バイトずつ読めば、I/O-CPUスイッチの回数は1/100です。
0623デフォルトの名無しさん
2007/07/15(日) 13:41:28PostgreSQLが完全対応で、Derbyがβって感じ?
0624デフォルトの名無しさん
2007/07/15(日) 13:56:15new byte[target.length()] してから new FileInputStream(target) するまでの間に、
ファイルが書き換えられて長さが変わる可能性がある。
in.read(buffer); は確実にbuffer.lengthバイトを読み込む事を保証してないので、
実装依存にしたくなければ明示的にループ使って全部読み込まないとダメ。
I/O-CPU間のスイッチがどのタイミングで入るかは実装依存なので
100バイトずつ読んでもスイッチ回数が本当に1/100になるかは不明。
0625デフォルトの名無しさん
2007/07/15(日) 14:05:130626デフォルトの名無しさん
2007/07/15(日) 14:13:090627デフォルトの名無しさん
2007/07/15(日) 14:16:47ByteArrayOutputStream out = ByteArrayOutputStream();
byte[] buf = new byte[1024];
int len;
while(-1 != (len = stream.read(buf))){
out.write(buf, 0, len);
}
byte[] contents = out.toByteArray();
0628デフォルトの名無しさん
2007/07/15(日) 14:17:20>2.サイズがわからないにしても、1バイトずつ読むのはやめなさい。
>たとえば100バイトずつ読めば、I/O-CPUスイッチの回数は1/100です。
おいおい、実装依存だぜそこは・・・って言おうとしたのにorz
ち、ちゃんと気づいてたんだからね!?
0629デフォルトの名無しさん
2007/07/15(日) 14:36:36一通り試して各メリットデメリットを整理し、理解を深めたいと思います。
このスレは優しい方が多いですね。
もっと叩かれると思っていました。
0630デフォルトの名無しさん
2007/07/15(日) 21:22:440631デフォルトの名無しさん
2007/07/15(日) 23:03:470632デフォルトの名無しさん
2007/07/16(月) 00:39:430633デフォルトの名無しさん
2007/07/16(月) 01:19:29このページの作成ボタンを押したらデータはどう飛ぶかとか…。
ヒントを求めてもこれといった答えをくれないので、Eclipceを前にして苦悩しています。
ど素人&抽象的な質問で申し訳ないですが、ソースを追う際のコツみたいなのはありますでしょうか?
0634デフォルトの名無しさん
2007/07/16(月) 01:22:310635デフォルトの名無しさん
2007/07/16(月) 01:35:42ありがとうございます。なるほど、それが簡単かもしれませんね。
でも、jspやらjavaやらが全部で何千と存在しているので、できればそれ以外の方法で検証したいのです。
変数が定義されてないかを調べるために変数を検索してみるといい、とは上司に言われたのですが、
あまり自分の中でピンとは来ません。
とんちんかんなことを言ってるかもしれませんが、ブレークポイント以外でもう一声いただけると助かります!
0636デフォルトの名無しさん
2007/07/16(月) 01:40:270637デフォルトの名無しさん
2007/07/16(月) 01:44:16明日、日付明けて今日ですが、会社行って試してみようと思います。
12時間後ぐらいに撃沈してるかもしれませんが、その時はまたご教授願いします…。
素人の質問に回答いただきありがとうございました!
0638デフォルトの名無しさん
2007/07/16(月) 05:08:20class A {
private int data; //外部からは見えない
private setter(int data) { this.data = data; } //外部からは使えない
public int getter() { return data; }
}
というクラスがあったとき、data は int 型なので、この値が外部からは
絶対に変更されないことは保証されていると思います(C++と同じ)。
しかし、これが基本型の int ではなく、一般的なクラスだった場合、
例えば StringBuffer だったりしたら、外部からでも
StringBuffer str = getter();
str.append("hoge");
みたいにして操作することは可能です(ここはC++と違う)。
これを防ぐために思いつくのは、getter() で data そのものではなく
data のコピーを返すことですが、
public String getter() { return data.toString(); }
1. これは標準的な方法ですか?
2. ざっと見たところ、StringBuffer と違って String には
インスタンスそのものが保持している値を直接書き換える
関数はないようですが、int と同じように扱っても安全ですか?
3. StringBuffer.clone() って使えるのが自然なような気がするんですが、
なんで使えないんですか?
0639デフォルトの名無しさん
2007/07/16(月) 05:32:15Stringはimmutable
StringBufferのclone()はObjectのclone()をオーバーライドしていないのでprotectedアクセスになりAからはアクセスできない
0640デフォルトの名無しさん
2007/07/16(月) 05:41:173点ともしっかり理解しました。
C++についても「分かったつもり」になっていただけの部分が
だいぶありそうですので、これを機にもう一度見直してみようと思います。
色々と。
0641デフォルトの名無しさん
2007/07/16(月) 07:00:070642デフォルトの名無しさん
2007/07/16(月) 08:05:31こういう方法もよくやる
class A {
// 外部から直接アクセス禁止
private StringBuffer buf = new StringBuffer();
// 許可するメソッドだけを間接的に公開
public append(String str) {
buf.append(str);
}
}
あわせて。>639のようにGetterはコピーして返せばOK
0643デフォルトの名無しさん
2007/07/16(月) 09:21:56を配置すると今どこら辺の過程やってるのか分かるよ。
0644デフォルトの名無しさん
2007/07/16(月) 10:29:570645デフォルトの名無しさん
2007/07/16(月) 10:31:48●・・・・・・・●・・・●・・・・●・・・・・●・・・
みたいに楽しめる
0646デフォルトの名無しさん
2007/07/16(月) 11:21:11javaはcall by referenceが無くていわばreferenceをcall by valueしてる。
ていうのをとっとと覚えた方が良いと思う。
むかし、MSにプリミティブのラッパークラスが
保持してるvalueを書き換える手段がないのは欠陥と非難されたことがあるよ。
0647デフォルトの名無しさん
2007/07/16(月) 11:24:16例えば、Flashでは、あるFlash(swfファイル)に、後から、別ファイルのFlashを、
ロードして実行/表示することができるんですが、
Javaアプレットの場合、後から、別archiveをロードして、その中のクラスを
利用したりすることは出来るんでしょうか。。
0648デフォルトの名無しさん
2007/07/16(月) 11:25:370649デフォルトの名無しさん
2007/07/16(月) 11:26:170650デフォルトの名無しさん
2007/07/16(月) 11:42:08作ってないよ。あれは買い取っただけ。
0651デフォルトの名無しさん
2007/07/16(月) 12:07:30ビルゲイツキタ━━━━━━(゚∀゚)━━━━━━ !!
0652デフォルトの名無しさん
2007/07/16(月) 12:47:53制御するサンプルとかないですか?
0653デフォルトの名無しさん
2007/07/16(月) 13:30:04一度止めた(止まった)スレッドを再開することはできない。
Threadの中でループを使って実行・一時停止を制御するか、ボタンのイベント毎にスレッドを作れ(止めろ)
0654647
2007/07/16(月) 14:21:16ありがとうございました。この方向で、勉強してみます。
また、つまづいたら、よろしくお願いします。
0655デフォルトの名無しさん
2007/07/16(月) 15:06:05ありがとうございます
wait/notify使えば出来るかなと思ったのですがダメなんですね
0656デフォルトの名無しさん
2007/07/16(月) 17:52:30commitとrollbackを使えば排他制御はできてるんですか?
0657デフォルトの名無しさん
2007/07/16(月) 17:54:16それを使って排他制御ができるかどうかは>656次第
0658デフォルトの名無しさん
2007/07/16(月) 17:55:040659デフォルトの名無しさん
2007/07/16(月) 17:57:41constと同義
0660デフォルトの名無しさん
2007/07/16(月) 17:58:34includeってなんですか?馬鹿にしているんですか?
0661デフォルトの名無しさん
2007/07/16(月) 18:01:07大文字、小文字の判別が出来るものと出来ないものが有る為 どうしても定数宣言で必要になるのです
0662デフォルトの名無しさん
2007/07/16(月) 18:01:550663656
2007/07/16(月) 18:41:04http://dev.mysql.com/doc/refman/4.1/ja/lock-tables.html
MYSQLでは、このページにあるようにロックテーブルすれば排他制御はOKですか?
0664デフォルトの名無しさん
2007/07/16(月) 18:46:16blank finalがあるから。
0665デフォルトの名無しさん
2007/07/16(月) 18:49:06それはJavaの話ではないのでMySQLスレで聞いた方がいい
排他制御がシビアであるのでない限り、TimeStampを使って簡単な排他制御を行うことが一般的。
つまり、更新するレコードを取得した時にLAST_UPDATE_TIMESTAMPなどを取得しておき、UPDATE時はWHERE条件に含めてしまう(排他で引っかかれば更新結果0件)など。
0666デフォルトの名無しさん
2007/07/16(月) 18:50:42むしろ、変数に代入された値(参照先も含む)の不変性を保証
釣りにマジレスはここまで。
0667デフォルトの名無しさん
2007/07/16(月) 18:52:460668デフォルトの名無しさん
2007/07/16(月) 19:24:02timestampはそういうときに使えるんですね
LAST_UPDATE_TIMESTAMPっていうのはMySQLの関数ですか?
探したんですが見つからないです。
あとこの方法だとテーブルにtimestamp型のカラムを持たせないとできないんですよね?
もうMySQLの質問になってますね。すいません。これで最後にします。
0669デフォルトの名無しさん
2007/07/16(月) 19:27:31JLS3以降(Java5以降)でfinalの役割が重くなって、
666のようになったはず。
0670デフォルトの名無しさん
2007/07/16(月) 19:31:13いや各テーブルに定義するカラム
最終更新日時ってカラムは何かと便利だから全てのテーブルに含めてテーブル設計することが多い(この辺もMySQLスレかDB総合スレ)
0671デフォルトの名無しさん
2007/07/16(月) 19:31:19finalの役割が重くなったって、具体的にchapterいくつよ
0672デフォルトの名無しさん
2007/07/16(月) 19:45:43あーカラム名ですか。
たしかにあったら便利ですね。
勉強になりました。ありがとうございました。
0673デフォルトの名無しさん
2007/07/16(月) 19:59:01final = 再代入不可
変更不可ではない(参照先が変更されれば変更可能)
逆にすべての参照先をfinalにすれば変更不可(immutable)にできる
再代入の意図がなければなるたけつけておくのが良策
Cのconstとは違うので注意
0674デフォルトの名無しさん
2007/07/16(月) 20:08:24Cのconstはダブルポインタ先も固定のままだっけか?
0675デフォルトの名無しさん
2007/07/16(月) 20:14:56666はマジレスパワーが足りず言葉不足
chapterは 17.5 Final Field Semantics あたりか?
あとは自分で調べるか、やさしいエロイ人待ちなさい
0676デフォルトの名無しさん
2007/07/16(月) 20:30:43変数に代入された値(参照先も含む)の不変性を保証 の差が解らない…
一度しか代入できないって事は代入された値が不変って事じゃないの?
0677デフォルトの名無しさん
2007/07/16(月) 21:09:36final StringBuffer buf = new StringBuffer();
buf = null; //これはエラーになる=一度しか代入できない。
buf.append("hoge"); //これはエラーにならない。参照先の不変性は保証されない。
0678デフォルトの名無しさん
2007/07/16(月) 21:09:38finalでStringBuffer持ってたら?
0679デフォルトの名無しさん
2007/07/16(月) 21:19:04Java5から重くなって参照先の不変性を保証ということは、
buf.append("hoge");
でエラーになるということ?
0680デフォルトの名無しさん
2007/07/16(月) 21:21:12それ嘘だから。エラーにはならないよ。
0681デフォルトの名無しさん
2007/07/16(月) 21:35:161. あるスレッドにおける代入結果は、他のスレッドからすぐには見えない
2. ファイナルフィールドとはいえ、一回は代入される
3. 不変と称しているのに、代入される前のファイナルフィールドが見えたらいやん
4. final の意味を強化
0682デフォルトの名無しさん
2007/07/16(月) 22:12:435.0の同期周りで後付けされた仕様を拡大解釈でもしてるんじゃない?
でもあれだ、static finalでプリミティブだと吐くバイトコードにリテラル埋め込んでるから定数と言えるかも。
あと、finalじゃなきゃinner classから参照できないんじゃなかったけ?
0683デフォルトの名無しさん
2007/07/16(月) 22:21:43static final int a = Integer.getInteger("system.property");
みたいな事もできるから、「static final でプリミティブ」なだけじゃ定数とはいえない。
final でなければ参照できないってのは匿名クラスの話じゃないか?
0684デフォルトの名無しさん
2007/07/16(月) 22:52:09C:\sample>javac FusenExec.java
FusenExec.java:6: シンボルを見つけられません。
シンボル: クラス Dodai
場所 : FusenExec の クラス
Dodai fusen;
^
FusenExec.java:7: シンボルを見つけられません。
シンボル: クラス Dodai
場所 : FusenExec の クラス
fusen = new Dodai();
^
エラー 2 個
因みに、ソースはこれです。どこがおかしいかを指摘ください。
class FusenExec{
public static void main(String[] args){
Dodai fusen;
fusen = new Dodai();
fusen.setSize(300,50);
fusen.setVisible(true);
}
}
0685デフォルトの名無しさん
2007/07/16(月) 22:55:040686デフォルトの名無しさん
2007/07/16(月) 22:55:33Dodaiクラスがないんだって。
コンパイルしてないんじゃねーの?
おかしいところ?
ソースコード→コンパイル→実行の流れ理解しているか怪しい
0687デフォルトの名無しさん
2007/07/17(火) 12:09:21フォーマットは何でも良いんだけど。
できればソースコード公開義務のないライセンスがいいんだけど・・・。
java3d用なら色々あるんだけど、自分で実装しなきゃダメかな?
0688デフォルトの名無しさん
2007/07/17(火) 13:31:43キャンバスに描画し、折り返し処理などは実現できたのですが、スクロール処理がうまく実現でしません。
少ないメモリで高速に描画できるソースなどはありませんでしょうか
0689デフォルトの名無しさん
2007/07/17(火) 13:34:200690デフォルトの名無しさん
2007/07/17(火) 14:18:470691デフォルトの名無しさん
2007/07/17(火) 14:24:41オーバーフローしないのか?w
0692デフォルトの名無しさん
2007/07/17(火) 14:32:32ていうか10万って言ったらUnicodeでUTF-8で日本語で1行80文字としても殆どが1文字3バイト取られるからメモリを23Mbyte食うわけだが・・・。
0693デフォルトの名無しさん
2007/07/17(火) 14:34:3510万行ってだけならなんとかなりそうだけど。
スクロール処理が上手くできないってのは
計算済みの折り返し情報を行毎に保持とかしてないんじゃね?
0694デフォルトの名無しさん
2007/07/17(火) 14:37:14低レベルな事はすべて実装されてるだろうに。
Canvasとかに直描きとか?
0695デフォルトの名無しさん
2007/07/17(火) 14:41:20と言うか普通は新しいクラス造りが趣味でもない限りそうするけど
0696デフォルトの名無しさん
2007/07/17(火) 14:52:440697デフォルトの名無しさん
2007/07/17(火) 15:32:49つ速読の練習
0698デフォルトの名無しさん
2007/07/17(火) 15:34:493000〜1万行くらい?
0699デフォルトの名無しさん
2007/07/17(火) 15:44:050700デフォルトの名無しさん
2007/07/17(火) 17:32:52「スレ立てるまでもない質問はここで」スレの過去ログを
いくつか見てみたけど、だいたい1スレ7000行弱に収まってるね。
ってことは10万行つったら15スレ分ぐらい、
それを一気に表示されたって使う方は困るし、それよりは
うまく分割するとか有益な情報を抽出するとかって方に
注力した方が得るものは大きいと思う。
0701デフォルトの名無しさん
2007/07/17(火) 17:42:37送り込めるようにするのがいいと思う。
但し、どうしても必要な場合に限定し、できうる限り整理されたデータを用いるべき。
0702デフォルトの名無しさん
2007/07/17(火) 19:21:450703デフォルトの名無しさん
2007/07/17(火) 19:47:51import java.awt.*;
import javax.swing.*;
public class J688 extends JFrame{
JTextArea textArea = new JTextArea(10*10000, 40);
JScrollPane scrollPane = new JScrollPane(textArea);
public J688(){
super();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
for(int i=1;i<=textArea.getRows();++i) textArea.append("Line:"+i+"\n");
add(scrollPane, BorderLayout.CENTER);
setPreferredSize(new Dimension(300, 300));
pack();
setVisible(true);
}
public static void main(String[] args) {
new J688();
}
}
0704デフォルトの名無しさん
2007/07/17(火) 22:09:22標準入力でインスタンスの数が変わる場合、インスタンスの生成で
インスタンス名をどう指定すればいいんでしょう?
Player player1 = new Player;
と言う感じに固定ならば書きますが、このplayer1が可変な場合に
変数などでどう表せば良いのかでつまづいて…。
0705デフォルトの名無しさん
2007/07/17(火) 22:11:19そこんとこもう少し詳しく
0706デフォルトの名無しさん
2007/07/17(火) 22:16:08System.inで読んだ内容からk個のインスタンスを作るんだったら
普通にk個インスタンスを生成して片っ端からListに入れればいいんじゃね?
0707デフォルトの名無しさん
2007/07/17(火) 22:20:19ってパパが言ってた。
0708デフォルトの名無しさん
2007/07/17(火) 22:29:48質問させてください
現在修行中の身で、JavaSE5.0を使って色々とOJTしております
XMLを扱う場面で先輩からJAXB2.0なる便利なものを教えていただきました。
途中からJavaSE6に変えてJAXB2.0を楽しんでいたのですが、会社の命令でJavaSE6禁止命令が出ました(出ましたというより、もともと5.0か1.4しか使っちゃだめらしいです)
そこで困っているのですが、またまた、先輩社員からJavaSE5.0使って、SE6のJAXB2.0だけコピーすりゃいいじゃんと言われました
そんなことできるんですか?
0709704
2007/07/17(火) 22:35:09早速どうもです
何と言うか、インスタンスの数が2つと決まっていれば
Player player1 = new Player;
Player player2 = new Player;
と言う感じに2つ作れば出来ますが、標準入力で指定された数作ろうとした場合
下みたいな感じで配列なりで表してfor文ででも回せば良いかと思ったのですが。
m = 標準入力;
for(int n = 0 ; n>=m ; n++ ){
Player **** = new player;
}
ここの***をどう記述したら良いのかが分からずどうにもうまく行かなくて。
初心者で引数可変、Listがちょっと分かりませんが調べてみます。
0710デフォルトの名無しさん
2007/07/17(火) 22:56:07JAXB自体はJavaSE6以前からある。ここね。
ttps://jaxb.dev.java.net/
ここからダウンロードしたファイルからjar取ってきて、クラスパスに足せばいいよ。
「SE6のJAXBだけコピー」と言われると違うが、お前さんの解釈違いの可能性もあるので
その先輩さんのことはとやかく言わないでおく。
0711デフォルトの名無しさん
2007/07/17(火) 23:04:44いや、そんな事したらライセンスとライブラリの依存関係解決を別個にやる羽目になるじゃん。
JAXBのページがsunかその周辺のサーバーにホストされてるからそこ当たってみ。
>SE6のJAXB2.0だけコピーすりゃいいじゃん
ライセンス管理意識なさ過ぎ。
0712デフォルトの名無しさん
2007/07/17(火) 23:13:36少し前に下記のようなコードを書いてプログラムを走らせたところ、出力ファイルの末尾が切れていました。
String output_file_str = "hoge.txt";
FileWriter output_file = new FileWriter(output_file_str);
BufferedWriter output_file_buf = new BufferedWriter(output_file);
/* 出力処理 */
output_file_buf.close();
output_file.close();
調べた結果、close()する前にflush()をしなければいけないということが分かったので、下記のように直して現状は正しく動作しています。
String output_file_str = "hoge.txt";
FileWriter output_file = new FileWriter(output_file_str);
BufferedWriter output_file_buf = new BufferedWriter(output_file);
/* 出力処理 */
output_file_buf.flush();
output_file_buf.close();
output_file.close();
0713712
2007/07/17(火) 23:14:20ここで、ふと疑問に思ったのが、FileWriterとBufferedWriterの両方にflushが存在している点で、
FileWriterは一文字単位でしかやり取りできない、BufferedWriterを使うことで行単位などでもやり取りができるということから
【BufferedWriter】−【FileWriter】−【ファイル】
とつながっていると思うのですが、この場合
output_file_buf.flush(); /* BufferedWriterの内容をすべてFileWriterにflush()する */
output_file_buf.close(); /* BufferedWriterの中身はすべて出力済みなので閉じてOK */
output_file.flush(); /* FileWriterの内容をすべて指定したファイルにflush()する */
output_file.close(); /* FileWriterの中身はすべて出力済みなので閉じてOK */
と両方でflushすべきなのかどうかで迷っています。
いくつかのページを参考に調べてみると、
String output_file_str = "hoge.txt";
BufferedWriter output_file_buf = new BufferedWriter(new FileWriter(output_file_str));
/* 出力処理 */
output_file_buf.flush();
output_file_buf.close();
といった感じにひとつずつ変数を定義するのではなくまとめて書かれていたのですが、FileWriterを明示的にflushしなくても安全なのでしょうか?
以上です。どなたかアドバイスよろしくお願いします。
0714デフォルトの名無しさん
2007/07/17(火) 23:19:03> 調べた結果、close()する前にflush()をしなければいけないということが分かったので
それは嘘。close() する前に flush() する必要はない。
0715デフォルトの名無しさん
2007/07/17(火) 23:42:06レスさんくすです
先輩のアドバイスは私の解釈違いかも知れないのでスルーしてください
JAXBはSE6以前からあったんですね
SE6で標準APIに加えられたとの解釈でOKですかね?
0716712
2007/07/18(水) 00:05:20表現が少しあいまいでした。
正確には研究室の先生に出力が途切れる現象を伝えたところ、flush()すれば大丈夫との回答が得られ、実際にflush()の行を追加したところ、すべてが出力されたという状態です。
BufferedWriterのjavadocでは
flush
public void flush()
throws IOExceptionストリームをフラッシュします。
定義:
クラス Writer 内の flush
例外:
IOException - 入出力エラーが発生した場合
--------------------------------------------------------------------------------
close
public void close()
throws IOExceptionストリームを閉じます。
定義:
クラス Writer 内の close
例外:
IOException - 入出力エラーが発生した場合
とあって、closeが内部でflushを行ってからストリームを閉じるとは書いてはないので、実は明示的に行わないとまずいのではと思ったのですが・・・
でもいくつかのページではcloseはflushを行った後にストリームを閉じるって書いてあって、でも各ページの説明で使っているサンプルコードにはちゃんとcloseの前にflushが入っているわけで・・・
初めに出力されなかった問題点はもっと別のところにあるのかな?
0717デフォルトの名無しさん
2007/07/18(水) 00:10:38配列作って pl[n]
それから、「new Player;」 「n >= m」 は間違ってるから修正しとき
0718デフォルトの名無しさん
2007/07/18(水) 00:33:531.6 のAPIリファレンスでは
>ストリームを最初にフラッシュして、閉じます。
って書いてある。
たぶん、あまりにも当然すぎて書かれなかっただけなんじゃないかと。
> 初めに出力されなかった問題点はもっと別のところにあるのかな?
output_file_buf.close() を呼ぶ前に
output_file.close() を呼んでいた、に一票。
0719デフォルトの名無しさん
2007/07/18(水) 02:42:29そう。EE5.0にあるxmlライブラリをSEに持ってきた時に依存関係を解決するついでにくっついて来た感じ。
標準ライブラリに昇格しただけでJAXB自体は前からあった。
0720デフォルトの名無しさん
2007/07/18(水) 03:53:120721デフォルトの名無しさん
2007/07/18(水) 03:58:290722デフォルトの名無しさん
2007/07/18(水) 05:19:420723デフォルトの名無しさん
2007/07/18(水) 09:59:11以下のような処理を行いたいと思ってるのですが、行き詰まっています。
1. JScrollPaneのscrollble clientに、GridBagLayoutのJPanelを貼り付けて、ボタンの
テーブルを作成。
2. JScrollPaneのcolumn headerに、JTableのcolumnNamesのような項目名をテーブルの
各要素の幅に同期するように作成。
上記の、2.の処理を上手くやる方法はないでしょうか?
最初は、JTableのセルにパネルを貼り付けられないかと考えていたのですが、探した限り
やり方がみつからなかったので、この方法をとろうとしています。
良いお知恵をお持ちの方、ご教示願います。
0724デフォルトの名無しさん
2007/07/18(水) 10:28:34>やり方がみつからなかったので、この方法をとろうとしています。
TableCellRenderer
0725デフォルトの名無しさん
2007/07/18(水) 10:46:520726デフォルトの名無しさん
2007/07/18(水) 12:06:380727712
2007/07/18(水) 15:25:28言われてみて、はっと気がついてソースコード見直したら
/* バッファーの内容を全て吐き出す */
buf_output_file.flush();
/* ファイルクローズ */
output_file.close();
ってなってました・・・
すみませんでした〜〜〜(>_<)
Javaで本格的に書き始めたのが、今回エラーの出たソースコードで、最近第2作目に突入していて頭の中がごっちゃになってました。^^;
0728デフォルトの名無しさん
2007/07/18(水) 18:08:40これをShift-JISでの文字コードを取得するにはどうしたらいいですか?
0729デフォルトの名無しさん
2007/07/18(水) 18:54:30出来ません。
CharacterやStringクラスにコードポイントを返すメソッドがあるのでそれを使いましょう。
今のunicodeは21bitなんだな
0730デフォルトの名無しさん
2007/07/18(水) 19:03:00char型の変数cに収まる範囲の文字コードについてはいい加減にこういうふうに
char c = 'あ';
short s = java.nio.charset.Charset.forName("Shift_JIS").encode(String.valueOf(c)).getShort();
System.out.printf("%04x%n", (int)c);
System.out.printf("%04x%n", s);
0731デフォルトの名無しさん
2007/07/18(水) 19:15:44Charsetまで呼ばなくても、それならこれでいいんじゃね?
for (byte b : String.valueOf(c).getBytes("Shift_JIS")) System.out.printf("%02x", b);
0732デフォルトの名無しさん
2007/07/18(水) 21:44:44急いで書いたらしょうもないミスしてますね、すいません。
配列で出来るんですか…う、う…ん…。
何か根本的にやり方がおかしいようですね…。
勉強しなおしてきます。
0733デフォルトの名無しさん
2007/07/18(水) 22:47:44大量データがある場合はパフォーマンスとリソースの観点から実用的では無い
ので、JScrollBar を使用した手動スクロールを作成したいのですが、
作成方法を教えて頂けませんでしょうか?
サンプルなどがあるHPでも結構ですので、ご教授頂けると幸いです。
0734デフォルトの名無しさん
2007/07/18(水) 22:57:280735デフォルトの名無しさん
2007/07/18(水) 23:01:210736デフォルトの名無しさん
2007/07/18(水) 23:10:52> 大量データがある場合はパフォーマンスとリソースの観点から実用的では無い
JScrollPane使ってたら、描画が必要な部分しか描画しないはずだが。
0737デフォルトの名無しさん
2007/07/18(水) 23:12:340738デフォルトの名無しさん
2007/07/18(水) 23:19:24Swingの使い方間違えてんだろう・・・Swingで著しくパフォーマンス悪いのと描画に問題あるのは昔からマが使い方間違えてるだけだし。
JTreeを初期化時に全部ツリー作るとかさ。
そういうことだ>>733ソース晒すなりしないと。
今のマシンスペックじゃあブラウザでFlash自慰サイト読み込んで
メモリ1Gくらい食ってガンガン動かしても余裕だからjavaなんて論外。
0739デフォルトの名無しさん
2007/07/18(水) 23:46:53try {
while (true) {
Socket acceptedSocket = serverSocket.accept();
hogehoge(acceptedSocket);
}
} catch (InterruptedException e) {
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
他のスレッドからThread#interrupt()で止められるサーバーってこう書くのかと思ったら
例外 java.lang.InterruptedException は対応する try 文の本体ではスローされません。
正しくはどう書くものなんでしょうか。
0740デフォルトの名無しさん
2007/07/18(水) 23:47:08Flexっていう便利なものがあるんだからJavaでGUI書くなんて
論外って意味なのか、Javaで書くと重いと文句を言うなんて
(使い方を間違えてるだけから)論外って話なのか、どっちだろう
0741デフォルトの名無しさん
2007/07/19(木) 00:36:26Thread#isInterrupted()、Thread#interrupted() 使って
自前で割り込みされたかチェック。
何したいのか良く分からんけど、
interrupt で止められるサーバって考え方自体が正しくないような気もするが。
0742デフォルトの名無しさん
2007/07/19(木) 00:47:41ここでその手の話にまったく詳しくない俺が本で読んだだけの知識で答えるぜ
1.ServerSocket#accept()はInterruptExceptionを投げない→タイムアウトを使うしかないはず(nioあたりで止められるのはあった気がする)
2.Thread#interrupt()を実行したら勝手にInterruptExceptionが発行されるわけではない→Thread.currentThread().isInterrupted()でインタラプト状態を確認し手動で投げる
3.hogehogeがやたら時間のかかる処理でInterruptExceptionを使う場合hogehoge内で2の動作をすることでキャンセル可
0743739
2007/07/19(木) 01:12:45・・・が、方針の段階で間違っているんですかね・・・。
サーバーって普通どう止めるものなんでしょう?
0744デフォルトの名無しさん
2007/07/19(木) 01:40:360745デフォルトの名無しさん
2007/07/19(木) 10:31:20class Fuck
{
String str[] = new String[5];
public static void main(String[] args)
{
}
}
ってやると配列の宣言でエラーがでるんですが何故でしょうか?
配列の宣言文をメインの中でやるとエラーはでないんですが
0746デフォルトの名無しさん
2007/07/19(木) 10:35:460747745
2007/07/19(木) 10:46:32class fuckArr
{
static String str[] = new String[5];
str[0] = "myGOD";
public static void main(String[] args)
{
System.out.println(str[0]);
}
}
で
fuckArr.java:4: ']' がありません。
str[0] = "myGOD";
^
fuckArr.java:4: <identifier> がありません。
str[0] = "myGOD";
ってエラーがでるんですが何故でしょうか?
mainでstr[0] = "myGOD";ってやると通るのですが
0748デフォルトの名無しさん
2007/07/19(木) 10:46:41配列の宣言(String str[] = new String[5];ってやってるところ)では エラーでないでしょ。
staticメソッドからは static でないメンバにアクセスできないけど。
0749デフォルトの名無しさん
2007/07/19(木) 10:51:08そこには式文かけないから当たり前。
フィールド宣言時に初期化子つかってやるか、静的初期化子使え。
static String[] str = { "myGOD", null, null, null, null };
static String[] str = new String[]{ "myGOD", null, null, null, null };
static String[] str = new String[5];
static { str[0] = "myGOD"; }
0750デフォルトの名無しさん
2007/07/19(木) 10:52:110751デフォルトの名無しさん
2007/07/19(木) 10:52:42{
static String str[] = new String[5];
str[0] = new String("myGOD");
public static void main(String[] args)
{
System.out.println(str[0]);
}
}
0752デフォルトの名無しさん
2007/07/19(木) 10:54:30str[0] = "myGOD";がある場所はコンストラクタやフィールド、メソッド、内部クラスの定義しか書けない場所。
0753745
2007/07/19(木) 11:08:51レスthx
単純に式文がかけない場所なんですね
0754デフォルトの名無しさん
2007/07/19(木) 13:54:28例えばページ上でボタンを押したら録音が始まり10秒間録音してユーザーのローカルにファイルとして保存するようなJSPは
構築可能でしょうか?
頭でなかなかイメージできないので、可能か不可能かも分かりません
具体的な解説を付け加えてもらえれば、なお助かります
0755デフォルトの名無しさん
2007/07/19(木) 14:05:410756デフォルトの名無しさん
2007/07/19(木) 14:20:30無理というかJSPにする意味が分からんというか。
そういうのはJWSにした方が良いよ。
0757デフォルトの名無しさん
2007/07/19(木) 14:37:26JWSとJSPはサーバサイドかクライアントサイドかの差だけだと思っていたので、
サーバ側の自分が負担できればと思っていたのですが・・・
またもしJSPであれば、クライアント側はJRE等が必要なくて済むかと・・・
つまり先述の例であれば、JWSの方が良い理由があるということでしょうか?
0758デフォルトの名無しさん
2007/07/19(木) 14:53:09サーバにくっついてるマイクの音だけしか拾えない。
0759デフォルトの名無しさん
2007/07/19(木) 14:55:580760デフォルトの名無しさん
2007/07/19(木) 15:06:23サーバー側で動くもの作ったことある?
というかどういう風に動いてるか知ってる?
根本的なところから勉強した方が良い気がする。
0761デフォルトの名無しさん
2007/07/19(木) 15:07:03Javaに限らずそれはしたほうがいい
0762デフォルトの名無しさん
2007/07/19(木) 15:37:590763デフォルトの名無しさん
2007/07/19(木) 15:39:19だからそれほど難しい話ではない
0764デフォルトの名無しさん
2007/07/19(木) 15:44:09ありがとうございます。
ちなみにビギナー向けでいい本ご存知ですか?
0765デフォルトの名無しさん
2007/07/19(木) 15:55:10アルゴリズムの勉強は言語(Javaでもいい)の基礎が出来ていて多少書けることが前提
「アルゴリズム」とか「データ構造」でぐぐればネットでも勉強できる
これはC言語だけどアルゴリズムの考え方自体は同じだから参考になると思う
http://www.geocities.jp/ky_webid/algorithm/index.html
Javaで説明されてる本も出版されてるみたいだけど読んだことは無い
0766デフォルトの名無しさん
2007/07/19(木) 16:08:57そうですか。自分はJavaの勉強に行き詰っている状態なのでちょっと厳しいかもしれません
ネットでも勉強出来るんですね?ありがとうございました
0767デフォルトの名無しさん
2007/07/19(木) 16:22:07ネットで見たりするソースに隠れたものを理解できるようになる
そうなるとどんどん力が付くよ。
最初はやはり本で少し学んだ方がいいかもしれない
それほど高く無い値段で出回ってる。
0768デフォルトの名無しさん
2007/07/19(木) 16:35:37俺:newってどういう意味?
部下:
____
/ \ /\ キリッ
. / (ー) (ー)\
/ ⌒(__人__)⌒ \ あたらしく作るということです
| |r┬-| |
\ `ー'´ /
ノ \
/´ ヽ
| l \
ヽ -一''''''"~~``'ー--、 -一'''''''ー-、.
ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
俺:newって単語の意味だけで想像して言っただろ?
部下:はい(´Д`;)ヾ
0769デフォルトの名無しさん
2007/07/19(木) 17:00:110770デフォルトの名無しさん
2007/07/19(木) 17:03:28フヒヒ 横からいいHPハケーン!
0771デフォルトの名無しさん
2007/07/19(木) 17:50:23クライアント側のミキサーにアクセスしようとしてるんだと思うが?
0772デフォルトの名無しさん
2007/07/19(木) 17:58:17難しく考えすぎ
0773デフォルトの名無しさん
2007/07/19(木) 18:16:190774755
2007/07/19(木) 19:00:250775デフォルトの名無しさん
2007/07/19(木) 19:03:44そのあと保存
0776デフォルトの名無しさん
2007/07/19(木) 19:04:450777デフォルトの名無しさん
2007/07/19(木) 20:23:58正規表現を指定してそれにマッチする文字列をランダムで作成する、みたいなことってできないでしょうか。
仕事なんでできないとだめなんですが、ご意見いただけないでしょうか。
0778デフォルトの名無しさん
2007/07/19(木) 21:10:16ランダムで文字列を作成して、正規表現にマッチしていればループを抜ける
0779デフォルトの名無しさん
2007/07/19(木) 21:17:15むかーし、そんな感じのテストツール作ろうかと考えたこともあった。
0780デフォルトの名無しさん
2007/07/19(木) 21:30:12適当に使用する文字を絞り込んでから778の言うようにランダムに作成してマッチングかけるのが手っ取り早そうだ
仕事なんで出来ないとダメってのは何かおかしいと思うぞ
出来ないものは出来ないと言うべきだ
0781デフォルトの名無しさん
2007/07/19(木) 21:38:22最初それで考えたんだが、文字数だとかが絡んだりするとそう簡単にはいかんことに気付き断念
>>780
普通はそうなんだろうが、そうもいかない会社はいくらでもあるのよ。
とりあえず対応できそうな構文のみでいってみるか・・・
0782デフォルトの名無しさん
2007/07/19(木) 21:43:34だいたい何の用途で使うんだ?
正規表現って言ってもどこまで対応するかによってとんでもなく面倒だぜ
0783754・757
2007/07/19(木) 21:51:25なるほど、これでだいぶ理解できました
ありがとうございます
>>760
全くの初心者です
今日、早速本を買ってきました
これから勉強していこうと思います
ありがとうございました。
0784デフォルトの名無しさん
2007/07/19(木) 22:27:57特にAPIは無いんじゃないの?
0785デフォルトの名無しさん
2007/07/19(木) 22:32:001.
ある表現から固定の決まったシーケンスを出すようにする
[a-z]* なら aaa
[0-9]* なら 000
2.
あるシーケンスの正規表現マッチングを崩さないような変更を行うメソッドを
いろいろ(対応する正規表現分だけ)用意する
例:
[a-z]* の aaa を aab にするとか、 aaにするとか。
3.
1.に対して2.を適当な回数適用する
どう?
まぁできあがる表現に偏りはできると思うがね。
ランダムの定義が曖昧だしこれでいいよな?
1.のシードをある程度余分に作っておけばそれなりにばらけるかもしれないし。
0786デフォルトの名無しさん
2007/07/19(木) 22:57:47自然言語マッチ用言語の本領発揮!
0787デフォルトの名無しさん
2007/07/19(木) 23:07:05まずは対応できる正規表現のパターンを絞り込む事が重要だな
絞り込んじまえばたいしたことはないと思うが、全てに対応しろといったら1プロジェクトだろう
0788デフォルトの名無しさん
2007/07/19(木) 23:52:46よく分かりません。
例えば、配列の偶数要素をキー、奇数要素を値とするMapを生成するメソッド
public static Map arr2map(Object[] arr)
のMapをGenericsを使った記述にする場合、
(1)public static Map<Object,Object> arr2map(Object[] arr)
(2)public static Map<?, ?> arr2map(Object[] arr)
(3)public static <K, V> Map<K, V> arr2map(Object[] arr)
などが考えられますが、どれがいいものでしょうか。
なにか、ガイドラインとなる書籍、URL等ありましたら教えてください。
0789デフォルトの名無しさん
2007/07/20(金) 00:00:27言っている意味も考えられる選択肢もワカラネ
そもそもObject[]の時点で終わってるのでGenericsに対応しない方がいいんじゃね?
キーの型がKey、値の型がValueであるならば
public static Map<Key, Vaue> arr2map(Object[] arr)
が正しい。
キーも値も決まってないならば、
public static Map<Object, Object> arr2map(Object[] arr)
となるけど、それならば
public static Map arr2map(Object[] arr)
のままでいいんじゃね?ww
0790デフォルトの名無しさん
2007/07/20(金) 00:03:010791デフォルトの名無しさん
2007/07/20(金) 00:14:43Map<? extend foo, ? extend bar>かMap<K, V>だろうねぇ。
けど、>配列の偶数要素をキー、奇数要素を値とする
なんて非OOなレコードの持ち方が変。
keyとvalueのペアを持つエントリクラス作ってそれを持っておくだろ。
static Map arr2map(Object[])なんて変換関数用意するんじゃなくて初めからmapやsetで持ってkeyだけ・valueだけ詰めた配列返すメソッド用意する。
とか、こういう設計の方が自然。
0792デフォルトの名無しさん
2007/07/20(金) 00:18:160793788
2007/07/20(金) 00:37:15引数のObject[]が非非OOな持ち方なので、無理に総称型
使う必要は無い(ClassCastExceptionに起こしかねない)と
いうことですね。
設計考え直してみます。
ありがとう。
0794デフォルトの名無しさん
2007/07/20(金) 00:45:13使う必要は無い(ClassCastExceptionに起こしかねない)
いや、違う自分の良いように考えすぎ。
アプローチ間違ってますよってだけ。
キャストで例外出すってのはまた別の話。
0795デフォルトの名無しさん
2007/07/20(金) 00:58:01俺だったら、こんな感じかなぁ
/** 今後はこっち使ってください */
public static <K, V> Map<K,V> arr2map(Object[] arr, Class<K> keyType, Class<V> valueType) {
Map<K,V> map = new HashMap<K,V>();
for(int i = 0; i < arr.length - 1; i+=2){
map.put(keyType.cast(arr[i]), valueType(arr[i+1]));
}
return map;
}
/** 互換性のため */
@Deprecated
public static Map<?, ?> arr2map(Object arr) {
return arr2map(arr, Object.class, Object.class);
}
0796デフォルトの名無しさん
2007/07/20(金) 00:59:06○ map.put(keyType.cast(arr[i]), valueType.cast(arr[i+1]));
× public static Map<?, ?> arr2map(Object arr) {
○ public static Map<?, ?> arr2map(Object[] arr) {
0797デフォルトの名無しさん
2007/07/20(金) 01:21:25つまり文字列"00"からは0x00、"79"からは0x79、"80"からは-0x80、
"81"からは-0x79、"FF"からは-0x01のbyte値を生成したいんです。
0798デフォルトの名無しさん
2007/07/20(金) 01:25:580800デフォルトの名無しさん
2007/07/20(金) 06:16:29遅レスだが、ソケットを閉じる
0801755
2007/07/20(金) 10:32:14ググっても適当なメソッドや関数が見つからないと思ったら本当に無いんですか・・・
凄く冗長な気がしますが大人しくファイル二つの間でコピーし合う事にします
0802デフォルトの名無しさん
2007/07/20(金) 10:41:05int j = i;
}
こんな風にループ内で変数の宣言していると、回るたびに変数分のメモリを消費していく?
int型の4バイト(?)づつ浪費することになる?
0803デフォルトの名無しさん
2007/07/20(金) 10:42:22intはオブジェクトじゃないからならない。
0804デフォルトの名無しさん
2007/07/20(金) 10:54:28オブジェクトだとどんどん消費するってことですか?
class Hoge {
public static void main( String[] args ) {
while( 1 ) {
xxx();
}
}
public void xxx() {
// ここでオブジェクトの宣言
}
上のようにやればxxx()が終了した時点でオブジェクトのメモリは解放?されると思ってるんですが合ってますか?
0805デフォルトの名無しさん
2007/07/20(金) 10:58:38ガベージコレクタによってメモリを開放される条件を満たすようになるが、
実際にメモリが開放されるのはそれ以降でガベージコレクタが実際に走った時。
0806デフォルトの名無しさん
2007/07/20(金) 10:58:56その後いつメモリが開放されるかどうかはGCまかせ。
0807デフォルトの名無しさん
2007/07/20(金) 11:20:42ループ内でオブジェクトを宣言する場合は>>804のやり方で大丈夫でしょうか?
メモリ周りを気にしています。
一番いいのはループ内でオブジェクトは宣言しないことですよね・・・
軽くGCを調べたら「GCはマルチスレッドで動く」ってあったので期待したい。
0808デフォルトの名無しさん
2007/07/20(金) 12:14:44変数宣言は、できるだけスコープを小さくした方がいい。
この場合なら、ループ内で変数宣言した方がいい。
変数のスコープが小さいときは、
最適化されて変数がレジスタのみ使用し、スタックメモリを消費しなくなる。
オブジェクトの生成はそういうわけにはいかず、
newの度にヒープを消費することになる。
0809デフォルトの名無しさん
2007/07/20(金) 12:47:380810デフォルトの名無しさん
2007/07/20(金) 13:46:120811デフォルトの名無しさん
2007/07/20(金) 14:10:460812デフォルトの名無しさん
2007/07/20(金) 15:19:290813デフォルトの名無しさん
2007/07/20(金) 15:20:37レジスタにのっけるかどうかのアルゴリズム自体が 6.0 で追加されたんじゃなかったか?
0814デフォルトの名無しさん
2007/07/20(金) 16:08:12DB の多重化を簡易的に行えるライブラリはありませんでしょうか。
例えば、アプリケーション層のノードが二つ(A,Bとします)
DBノードも二つ(X,Y とします)あるとすれば、
A,B ともラッパー経由で更新していれば X,Y に格納されており、
もし JDBC リクエストで X が落ちたら、Y のみに要求する、と言う形です。
この例であれば X への更新をプールして、X が復活したのを検出したら
流していってくれると最高ですが、この部分は X を復帰させる手続きと
して手動でやれということでも構いません。
0815814
2007/07/20(金) 16:15:52いまいち、一般的に使われているかどうかが分かりません。
0816デフォルトの名無しさん
2007/07/20(金) 16:43:41フォントの実際の大きさを求めるにはどうすればいいのでしょうか。
JFrameにJTextAreaを乗せてデータを表示していましたが、一部の文字の色を
変える為に、JTextAreaからJTextPaneへ変更しました。しかし、JTextPaneでは
JTextAreaのように行数と列数を指定できません。それはJTextPaneのフォント
サイズが可変な為だと思います。けれでも私のプログラムのフォントは等幅で
大きさは全て等しく、色が一意でないだけなので、一文字の実際の高さと幅が分
かれば列数、行数ともに算出可能なはずです。そうすれば
setPreferredSize(Dimension d)を使って出来上がりです。
そこで調べてみたところ、FontMetricsクラスを使えば期待する動作が行えそう
です。FontMetricsは抽象クラスなので、Graphics.getFontMetrics(Font f)を使
ってインスタンスを生成しなければいけませんが、そのGraphicsクラスを使う方
法が分かりません。Canvs.paint(Graphics g)を使えばできますが、それだけの為
にCanvasクラスを使うのは違う気がしました。
0817デフォルトの名無しさん
2007/07/20(金) 17:12:03使用するフォントを実際に指定できているわけだから
そのフォントを表すFontクラスのインスタンスは得ることができるよね?
そしたらあとはJComponent#getFontMetrics(Font)でFontMetricsのインスタンスを得ればいいじゃない
0818デフォルトの名無しさん
2007/07/20(金) 20:51:39OutputStream out = new OutputStream();
DataOutputStream dout = new DataOutputStream(out);
という風にDataOutputStreamを作って、
dout.close(); を行うと、
out.close()も勝手にやってくれるのでしょうか?
0819デフォルトの名無しさん
2007/07/20(金) 20:57:47見るのはFilterOutputStreamの方だというヒントは教えとく。
0820デフォルトの名無しさん
2007/07/20(金) 20:59:40> dout.close(); を行うと、
> out.close()も勝手にやってくれるのでしょうか?
一応やってくれるけど、
例外食らった場合は out.close() してない可能性もある。
0821デフォルトの名無しさん
2007/07/20(金) 21:10:510823デフォルトの名無しさん
2007/07/20(金) 21:13:54国防
0824デフォルトの名無しさん
2007/07/21(土) 00:42:06火星
0825デフォルトの名無しさん
2007/07/21(土) 01:01:23後はAPIっていうのを見ながらやるんですか?
0826デフォルトの名無しさん
2007/07/21(土) 01:04:090827デフォルトの名無しさん
2007/07/21(土) 01:43:16何か作りたいから Java 勉強したんじゃないの?
0828デフォルトの名無しさん
2007/07/21(土) 03:09:46やったのは単なる入門書で文法を学んだだけじゃないの?
参考書ってのは何かを作るときに参照するものだよ
特に作りたいものがないならばゲームでも作ってみるのがいいんじゃね
GUI関連は業務じゃ使う機会少ないけど、デザインパターンとか設計力を鍛えるには一番だとばっちゃんが言ってたよ
0829デフォルトの名無しさん
2007/07/21(土) 03:53:11この辺りで宿題解いてみるのもいいと思うよ。
★★ Java の宿題ここで答えます Part 62 ★★
http://pc11.2ch.net/test/read.cgi/tech/1184509890/1-100
0832デフォルトの名無しさん
2007/07/21(土) 15:22:58どうしてもindexに繋がりません、過去に習ってた時の学校では自分でインストールできたのに
スタートさせてもアイコンはミドリの▲になるのに、右クリックをするとストップStopではなくStartが押せる状態になっています
Tomcatは5.5、Javaは1.5
OSは2000XPでも2000Proでもどちらも同じ現象でダメでした
XPのファイアーウォールを無効にしても無理でした
環境設定のPathは教室でインストールした時に、テキストファイルで貰っていたのをコピペしなおしても無理でした
これ以上どう足掻いていいのか分かりません
0833デフォルトの名無しさん
2007/07/21(土) 15:29:56class Hoge{
static void piyo(){}
public static void main(String[] arg){
piyo();
}
//B
class Hoge{
Hoge(){
piyo();
}
void piyo(){}
public static void main(String[] arg){
new Hoge();
}
Aのように書かずBのように書けば、piyoメソッドにstatic修飾子をつけなくてもよくなりますよね
こう書くことになにか問題はありますか?
0834デフォルトの名無しさん
2007/07/21(土) 15:57:32修飾子についての理解が不十分
staticをつけたメソッドはインスタンス化しないでも使えるが、
Bのpiyoメソッドはインスタンス化しないと使えない。
0835デフォルトの名無しさん
2007/07/21(土) 17:36:23Eclipse上?
今のTomcatなんてインストーラーに従ってインストールするだけだろ?
0836デフォルトの名無しさん
2007/07/21(土) 17:37:180837デフォルトの名無しさん
2007/07/21(土) 18:05:10うまく言えんけど、おそらく833は
「mainメソッドで呼ぶ」という理由だけでstatic修飾子をつけるのはおかしいのでは?
と考えた結果思いついたんじゃないか?
833への答えは持ってないけど、834の答えが的外れな気がしたんで口出し
834のであってたらすまん
0838デフォルトの名無しさん
2007/07/21(土) 18:20:47たしかにAもBもpiyo()が実行されるという一点では同じなんだけど、
piyo()は本当にコンストラクタ内で処理すべき機能なのか考えるべき。
AとBではpiyo()やHogeクラスの意味合いが異なってくる。
piyo()が単にstaticメソッドから呼ばれるだけの下請け的存在ならAで十分だし、
Hogeをインスタンス化する必要がありかつpiyo()がインスタンス生成段階で必要な処理ならB。
class Hoge{
void piyo(){}
public static void main(String[] arg){
Hoge h = new Hoge();
h.piyo();
}
}
こう書くのが適切な場合だってある。
何を実現するためにどうクラス設計をするかを考えてpiyo()の立ち位置を決めておくれ。
0839デフォルトの名無しさん
2007/07/21(土) 18:24:31class Hoge{
public static void main(String[] arg){
Hoge hoge = new Hoge();
hoge.piyo();
}
void piyo(){}
}
0840デフォルトの名無しさん
2007/07/21(土) 18:42:46単純にfor文とif文を駆使したプログラム入門ならば、全部staticでnewは配列作るときくらいしか使わないでOK
クラスとか勉強する段階でnewを覚えるべきだが
0841デフォルトの名無しさん
2007/07/21(土) 19:07:22http://localhost:8080/index.jsp
でだめだったのかい?
http://localhost:8080/manager/html
ではどうだい?
0842デフォルトの名無しさん
2007/07/21(土) 19:13:53私もそう思ってたのでびっくりです
>>836
CLASSPATHを作ってservlet-api.jar;.の位置を入れました
↑は自分で打ったけど、パソコンに入れたのは成功した教室のPCからのコピペなんで間違いはないと思います
>>841
そこ自体がダメです
タスクのアイコンがスタート状態になってても、ストップできずスタートがあるということは、スタートできてないんだと思う
0843デフォルトの名無しさん
2007/07/21(土) 19:21:23CLASS_PATHを消せ
次にコマンドプロンプトからjava -version を打ってversionを確認せよ
その上で再インストールして来い
スタートできないならばログも嫁
0844デフォルトの名無しさん
2007/07/21(土) 19:29:52おかげで使えるようになりました
ありがとうございました
前に入れたバージョンが残っててそっちを設定してたっぽい
ゴメンナサイ
私は、恥かしい間抜けです
0845デフォルトの名無しさん
2007/07/21(土) 21:23:30_.||___|_____||_
.. / /||___|^ l
.. 答えろ ぶち殺すぞ!> (・ω・`)//|| |口| ||ω・` )
. ./(^(^ .//||...|| |口| |⊂ )
. / // ||...|| |口| ||し 新スレです
. あ?てめぇどこ中だよ>( )//.... ||...|| |口| || 楽しく使ってね
/(^(^ // .... .||...|| |口| || 仲良く使ってね
"" :::'' |/ |/ '' " ::: ⌒ :: ⌒⌒⌒ :: "" `
:: ,, ::::: ,, ; ̄ ̄ ̄ "、 :::: " ,,
0846デフォルトの名無しさん
2007/07/21(土) 22:10:34doGetとdoPostあるじゃん。
どちらか一方に処理全部書いて、もう一方にはdoPost()かdoGet書けば
いいだけなんだろうけど。
これでいいのか?
てゆうか、分けて書くことってあるの?
0847デフォルトの名無しさん
2007/07/21(土) 22:18:16いい。
>てゆうか、分けて書くことってあるの?
使い方による。
0848デフォルトの名無しさん
2007/07/21(土) 22:41:170849デフォルトの名無しさん
2007/07/21(土) 23:00:41見た目にこった実装ってできるのでしょうか?
例えば、ウィンドウを3D間隔で操作できるとか、swingコンポーネント等でも
デザインが柔軟に変更できるとか。OS依存でも構わないです。(できればWindows)
その他なんでもよいのですが、おもしろいデザインにするための技術情報など教えていただきたいです。
0850デフォルトの名無しさん
2007/07/21(土) 23:04:51Swing synthでぐぐってみたら?
0851デフォルトの名無しさん
2007/07/21(土) 23:06:04やろうと思えば3Dだろうとなんだろうと可能だが、簡単に出来るわけじゃない
単純に派手なUIが欲しいってのならば方向性は違うだろうね
Eclipseで使われているSWTなんかを使えば簡単にWindows風のUIも可能
Swingだって6.0で大幅にパフォーマンスも向上しているから捨てたもんじゃない
ただし、作るにはそれなりのセンスと時間が必要
0852デフォルトの名無しさん
2007/07/21(土) 23:26:17htmlとcssみたいな関係なのでしょうか?調べてみますm(__)m
>>851
javaを勉強し始めてから早一年経ちましたが、人の作ったライブラリを呼び出すだけの人になってますorz
ちなみに最近netbeansを使ってGUIの作成ってやってみたのですが、VBチックで楽だなぁと思ったのですが
同じようなものなのかな? SWTなるもの調べてみますm(__)m
0853デフォルトの名無しさん
2007/07/21(土) 23:54:31SwingなりSWTはツールを使わずに習得した方がいい
自然とOOPでの設計力が付くぞ
0854デフォルトの名無しさん
2007/07/21(土) 23:54:58家でもちょっとやりたいと思ってるのですが、
家では開けず、あぁーなんかダウソしないといかんのかぁー。となっとります。
ほんとに初歩の初歩の質問で申し訳ないのですがどなたか教えて頂けるとありがたいです。
えー、ちなみに void on Idle とか使ってた奴です。(何だこの説明。。。
0855デフォルトの名無しさん
2007/07/21(土) 23:57:39ttp://www.java.com/ja/download/index.jsp
↑ここから辿ってダウンロードできる jre-6u2-windows-i586-p-s.exe と
ttp://java.sun.com/javase/ja/6/download.html
↑ここの「Java Runtime Environment (JRE) 6u2」のダウンロードから辿って
ダウンロードできる jre-6u2-windows-i586-p.exe の違いが分かる人いますか?
両方ダウンロードするとどちらも 14,566,808 バイトだけど、バイナリ比較すると一致しない…
0856デフォルトの名無しさん
2007/07/22(日) 00:15:19ですね。。正直今の段階だと自動生成されたソースが何をやっているのか分からない状態です。
GUI開発が熟練してからツール使うことにします^^;
0857デフォルトの名無しさん
2007/07/22(日) 01:12:13>>856
まあ、netbeansの吐くコードは汚いね。
いまさらSWT使う利点なんてないよ。
5.0/6のVMは早いし、SwingのSystemLnFもネイティブコードの呼び出し増えて見栄えもかなり近いし。
普通に使う分にはVMのメモリを多めに取ればSwingもSWTもたいして速度変わらん。
それに今時Swingで十分な速度でない環境だとjavaそのものが遅いし。
ここら辺のおかげでnetbeansがかなり使えるようになった。
SWTはjava風じゃないところがあるからまずはjavaを覚えた方が良い。
0858デフォルトの名無しさん
2007/07/22(日) 01:49:520859デフォルトの名無しさん
2007/07/22(日) 02:55:560860デフォルトの名無しさん
2007/07/22(日) 09:19:550862デフォルトの名無しさん
2007/07/22(日) 15:01:53JFlexとJacでちょっとしたもの作ろうとおもってるんだけど、
ビルドをeclipse上で自動化したい場合ってどうすればいいの?
0863デフォルトの名無しさん
2007/07/22(日) 15:03:05○jay
0864862
2007/07/22(日) 17:47:46eclipseのスレがありましたのであちらで質問します。
ありがとうございました。
0865デフォルトの名無しさん
2007/07/22(日) 20:10:02正確に一画面文の文字数をカウントすることをご教授願います。
フォントサイズから一画面の文字数を数える場合、
英文が入るを正確にカウントできません
0866デフォルトの名無しさん
2007/07/22(日) 20:14:06文字数を読むメソッドがある
0867デフォルトの名無しさん
2007/07/23(月) 02:05:51通常、POSTとGETは使い分けるよ。使う目的も違うし、HTTPにおけるパラメータの
送信方法も異なってくる。また、Tomcatの場合はHttpServletRequestのsetCharacterEncodingは
GETパラメータには利かない。(※いくつかの設定は存在する)
Servletを学習するなら、同時にHTTPについて学習するのはすごく有意義だし、Web上に色々参考に
なる記事が沢山落ちてるから、まずはPOSTとGETは具体的に何が違うのかを学習すると良いと思うよ。
0868デフォルトの名無しさん
2007/07/23(月) 09:13:08↓
http://www.yukinko-net.jp/
0869デフォルトの名無しさん
2007/07/23(月) 12:23:50Rhinoでコマンドライン用のスクリプトを書こうとしているのですが、
コマンドライン引数の取り方が分かりません。
RubyでいうところのARGVです。
Rhino argv で検索しても C のソースしか引っかからないし。
どなたかお願いします。
0870デフォルトの名無しさん
2007/07/23(月) 12:32:590871デフォルトの名無しさん
2007/07/23(月) 12:57:16RhinoはJavaによるJavascriptの実装だから、実装内容に関わるような話ならこのスレかもしれないが、
単なるスクリプトプログラミングについてここで聞くのはスレ違い。
ある言語について質問する時に、その言語の処理系が何で実装されているかに関わらず、
普通はその言語のスレで質問するだろ?
0872デフォルトの名無しさん
2007/07/23(月) 12:57:53argsは定義されていないようです。
print(args); //=> ReferenceError: "args" is not defined.
Rhinoは1.6R5です。
0873デフォルトの名無しさん
2007/07/23(月) 13:01:36JavaScript一般の話ではなく、あくまでRhino固有の話なので、JavaScript関連のスレではなくここで質問しました。
Rhino専用のスレはないし、RhinoはJava6から標準装備ですし、ここが一番適切ではないでしょうか。
0874デフォルトの名無しさん
2007/07/23(月) 13:39:30JavaScriptのスレでこんなもんわかるやついるわけないだろ。Javaスレ行けっていわれるのがオチ。
0875デフォルトの名無しさん
2007/07/23(月) 13:53:57じゃあお前が答えてやれよ
俺はRhinoは嫌いだ
>>869
arguments
0876デフォルトの名無しさん
2007/07/23(月) 14:07:55jrunscript で実行してるなら arguments で取れるはず。
そうでない場合は、自前でScriptEngineにセットしないとダメなんじゃね?
scriptEngine.getBindings(ScriptContext.ENGINE_SCOPE).put("arguments", args);
0877デフォルトの名無しさん
2007/07/23(月) 14:26:41argumentsでとってこれました。ありがとうございました。
ちなみにこういった情報はどこで見つけるものなんでしょうか。
0878デフォルトの名無しさん
2007/07/23(月) 14:30:03http://java.sun.com/javase/ja/6/docs/ja/technotes/tools/share/jrunscript.html
0879デフォルトの名無しさん
2007/07/23(月) 15:59:42呼んだ?
おまえら少しはEcma Scriptスレに顔出して上げてください。
ネタがないんで普段は実装と仕様の差異の話で盛り上がっとりますよ。
SpiderMonkyが人気ないからRhinoで持ちきりなんだが・・・。
java6のRhino劣化品。いらない子。
>>878
それmozillaのdocの劣化コピペだからmozillaの開発者向けサイトかRhinoのdocに全部書いてある。
0880デフォルトの名無しさん
2007/07/23(月) 16:28:58一応別のツールだから劣化コピペとは言い切れないんじゃね?
Rhino のツールでは -l でスクリプト言語指定したりできないっしょ。
0881デフォルトの名無しさん
2007/07/23(月) 18:51:12さらにコンパイラ省かれてるから一切最適化されてない純粋なインタープリタで動いてる。
Rhinoのドキュメントに組み込みガイドがあって
そこにスループット優先でビルドする手順が書かれてるんだけどそれと同じ事してる。+JavaAdaptorが劣化。
jrunscriptはそのRhinoのScripting APIに従った純粋なラッパー。
Rhinoの殆どの実装クラスがjavax.script.*じゃなくてcom.sun.*にあるから自分でJSオブジェクト実装とかクラスシャッターでセキュリティ制限とかできない問題もある。
ecmaスレで詳しい話題が出てるよ。
0882デフォルトの名無しさん
2007/07/23(月) 20:26:28javax.script は Rhino とは別物だよ。
で、jrunscript と org.mozilla.javascript.tools.shell も別物。
だから jrunscript の、より詳しいドキュメントとして mozilla のドキュメント読めというのはダメ。
0883デフォルトの名無しさん
2007/07/23(月) 23:29:23Rhino1.6R5と言っただけ。Rhinoがjavaの実装で6から標準装備だからこっち来たと。
>>876が勝手にjrunscriptと言い出しただけだろ。だからecmaスレ行けって。
0884デフォルトの名無しさん
2007/07/23(月) 23:37:36俺は >>879 にレスつけただけなんだが。なんで >>869 の話が出てくるんだ?
0885デフォルトの名無しさん
2007/07/24(火) 01:27:160886デフォルトの名無しさん
2007/07/24(火) 01:39:570887デフォルトの名無しさん
2007/07/24(火) 02:51:470888デフォルトの名無しさん
2007/07/24(火) 02:53:20これって可能なんでしょうか。コードは以下のような感じ。
class Hoge {
static {
try {
Class.forName("org.postgresql.Driver");
0889デフォルトの名無しさん
2007/07/24(火) 03:00:58class Hoge {
static {
try {
Class.forName("org.postgresql.Driver");
} catch (ClassNotFoundException e) {
throw new InternalError(e.getMessage());
}
public static Connection open() {
Connection conn = DriverManager.getConnection("foo", "bar", "baz);
return conn;
}
// 以下略
}
コンパイルエラーは以下。
[javac] シンボル: 変数 DriverManager
[javac] 場所 : Hoge の クラス
[javac] Connection conn = DriverManager.getConnection("foo", "bar", "baz");
[javac] ^
[javac] エラー 1 個
0890デフォルトの名無しさん
2007/07/24(火) 03:06:500891デフォルトの名無しさん
2007/07/24(火) 03:07:07クラスパスが通ってないのかなと思って servlet-api.jar にも classpath を通してみて
HttpServlet を継承しただけのコードを書いてみたけど、こちらは問題なかった。
ビルドに用いている ant の build.xml のクラスパスの部分は以下。lib/ 内には
postgresql.jar が配置されている。
<target name="compile">
<mkdir dir="${bin.dir}" />
<javac srcdir="${src.dir}" destdir="${bin.dir}">
<classpath>
<!-- <fileset dir="lib">
<include name="*.jar" />
</fileset>-->
<pathelement location="lib/postgresql.jar" />
<pathelement location="/usr/share/tomcat5.5/common/lib/servlet-api.jar" />
</classpath>
</javac>
</target>
0892デフォルトの名無しさん
2007/07/24(火) 03:13:33取り急ぎ書いたんで抜けた。すまん。他にも "baz" の終わりの " が抜けたりしてる。
手元のコードはちゃんとしてるから大丈夫。
0893デフォルトの名無しさん
2007/07/24(火) 03:17:47DriverManagerに対して
「シンボルを見つけられません。」
というメッセージです。
0894888
2007/07/24(火) 03:20:11DriverManagerってずっと postgresql.jar の中にあるクラスと思ってたら java.sql.DriverManager
だったのな。。。
0895デフォルトの名無しさん
2007/07/24(火) 03:21:33import java.sql.DriverManager;してる?
0896デフォルトの名無しさん
2007/07/24(火) 03:23:38まあシンボルが見つからないエラーは完全名を指定できていないミスが多いからね
0897デフォルトの名無しさん
2007/07/24(火) 03:23:59Eclipseの補完機能に頼りすぎておんなじ名前のメソッド入った
パッケージがこんがらがるとこういうことになる。
0898デフォルトの名無しさん
2007/07/24(火) 04:14:49クラス名が被るのは限定名でアクセスしてあとから「インポートの編集」すると混乱が減るよ。
0899デフォルトの名無しさん
2007/07/24(火) 06:42:38コンパイル遅くなるから?
実行時にも遅くなる?
import *;
ができないからどっちもどっち?
0900デフォルトの名無しさん
2007/07/24(火) 07:30:150901デフォルトの名無しさん
2007/07/24(火) 07:44:01importは「このクラスはこいつらに依存してますぜ」というある意味クラスの設計情報みたい
なもの。仕様変更やデバッグするときに鬼のようにimport hoge.*;とか書かれまくっていきな
りプログラム中でクラスが使用されているとどのクラス追いかけたらいいのかわからなくなる。
でっかいシステムなら尚のこと。
俺の場合作る手間より直す手間を減らすため、かなぁ。
0902デフォルトの名無しさん
2007/07/24(火) 10:00:230903デフォルトの名無しさん
2007/07/24(火) 10:03:03使うオブジェクト全部をimportで指定するのは面度だが、
これもIDEのサポートでさほど手間でもない。
どっちでもいい気がするが、プロジェクトのやり方に合わせるのが基地。
0904デフォルトの名無しさん
2007/07/24(火) 10:16:440905デフォルトの名無しさん
2007/07/24(火) 10:31:570906デフォルトの名無しさん
2007/07/24(火) 10:37:36>>900
0907デフォルトの名無しさん
2007/07/24(火) 10:51:500908デフォルトの名無しさん
2007/07/24(火) 10:54:420909デフォルトの名無しさん
2007/07/24(火) 11:04:52やっとわかった
ごめんね
0910デフォルトの名無しさん
2007/07/24(火) 16:56:27まあ、無駄なアクセスがあればの話だけど。
0911デフォルトの名無しさん
2007/07/24(火) 17:00:450912デフォルトの名無しさん
2007/07/24(火) 17:02:190913デフォルトの名無しさん
2007/07/24(火) 18:12:23hoge.Hegeクラスを参照しているソースファイル中で、
import hoge.*;
とやった場合と、
import hoge.Hege;
とやった場合でコンパイル後のclassファイル中のHegeクラスの名前の指定の相違点を確認。
0914デフォルトの名無しさん
2007/07/24(火) 19:33:39import b.*;
とかなってるときに、
パッケージ b 内にしかなかったクラスの名前と同じクラスをパッケージ a に追加すると、
追加したところとは異なるところからコンパイルエラーが発生してびびる
もっとも、たまたまシグネチャが合ってエラーが発生しなかったらと思うともっと心配かも
0915デフォルトの名無しさん
2007/07/24(火) 19:38:57要らないリンクに時間が掛かります(コンパイルに)
0916デフォルトの名無しさん
2007/07/24(火) 19:56:130917デフォルトの名無しさん
2007/07/24(火) 20:11:12コンパイラの名前解決時に影響するだけ
コンパイル後はまったく一緒、クラスファイルにはフルネームで格納される
0918デフォルトの名無しさん
2007/07/24(火) 20:15:09無駄なリンクなんて発生しねえしサイズも大きくならねえよ
importは単にこのクラスもしくはパッケージからクラス定義を拾ってこいっていうコンパイラへの指令
コンパイラの実装次第でワイルドカードを使った時のクラス検索の効率に差が出るかもしれんが
0919デフォルトの名無しさん
2007/07/24(火) 23:06:32どこの都市伝説だよw
0920デフォルトの名無しさん
2007/07/24(火) 23:43:08永遠に compile oh what a night in jamaica!
0921デフォルトの名無しさん
2007/07/24(火) 23:43:170922デフォルトの名無しさん
2007/07/25(水) 00:11:46クラスパス上にあるなら import *; でも探すことはできるはず。
importってコンパイルを手助けしてあげるためにあるのか?
>>901の意味合いももちろんわかるけど。
0923デフォルトの名無しさん
2007/07/25(水) 00:15:11これってバージョンがあがってリンク先が増えたからだと思ってた。
富○通正社員の俺
協力会社の新人に笑われたorz
0924デフォルトの名無しさん
2007/07/25(水) 00:18:120925デフォルトの名無しさん
2007/07/25(水) 03:05:55923は最悪
0926デフォルトの名無しさん
2007/07/25(水) 03:39:370927デフォルトの名無しさん
2007/07/25(水) 08:37:36アール日野?
0928デフォルトの名無しさん
2007/07/25(水) 08:39:340929デフォルトの名無しさん
2007/07/25(水) 09:27:12落ち目だからな・・・。
0930デフォルトの名無しさん
2007/07/25(水) 12:52:400931デフォルトの名無しさん
2007/07/25(水) 12:56:24それは関西と大阪は何が違うかという質問に近い。
0932デフォルトの名無しさん
2007/07/25(水) 13:03:05関西と関西弁の違い、と思う
0933デフォルトの名無しさん
2007/07/25(水) 13:25:59企業と企業広報の違いでも有るかな
0934デフォルトの名無しさん
2007/07/25(水) 20:57:24動画はともかく、ねとらじとかをJavaから利用できないかな?
0935デフォルトの名無しさん
2007/07/25(水) 21:05:110936デフォルトの名無しさん
2007/07/25(水) 21:06:21ファミコンとディスクシステムのような関係
0937デフォルトの名無しさん
2007/07/25(水) 21:36:59さがせばストリーミングライブラリがいくらでもある。
J2EEの名称はもう使われてないな。
0938デフォルトの名無しさん
2007/07/26(木) 00:41:29Mainのプログラムから描画の処理のところだけ切り出して
別のクラスにかきだしたいのですがいくらやってもうまくいきません
どうすればいいですか?
どなたか教えて下さい
0939デフォルトの名無しさん
2007/07/26(木) 00:45:520940デフォルトの名無しさん
2007/07/26(木) 00:49:37どうすればいいかは、
あなたが考えれば一番うまくいくでしょう。
0941デフォルトの名無しさん
2007/07/26(木) 00:57:000942デフォルトの名無しさん
2007/07/26(木) 01:23:16GUIにタイミング任せるか、プログラムで自分でやるかの話だろ?
アプレットはエントリポイントが違うってんなら分かるが。
>>938
せめてソースくらい上げましょうぜ旦那?
0943デフォルトの名無しさん
2007/07/26(木) 01:28:40描画処理?
とりあえずソースだな。
0944デフォルトの名無しさん
2007/07/26(木) 01:35:17http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=36623&forum=12&7
http://itpro.nikkeibp.co.jp/article/COLUMN/20061208/256374/?ST=develop
を見て、sun.management.Agent内でその処理を行っているのはわかったのですが
このソースのどこで立ち上げてるかさぱり分かりません。
誰がわかる人がいたら解説お願いします。
0945デフォルトの名無しさん
2007/07/26(木) 10:21:31class Outer {
void Hoge() {
Inner inner = new Inner();
inner.Foo();
}
class Inner {
void Foo() {
// ここで Outer の this がほしい。
}
}
}
コンストラクタで明示的に外側のクラスの this を渡すしかない?
0946デフォルトの名無しさん
2007/07/26(木) 10:35:56Outer.this
0947デフォルトの名無しさん
2007/07/26(木) 14:24:440948デフォルトの名無しさん
2007/07/26(木) 15:25:23それを継承したクラスの方からアクセスするにはどうしたらよいですか?
0949デフォルトの名無しさん
2007/07/26(木) 15:41:37java.lang.reflect.Field
0950デフォルトの名無しさん
2007/07/26(木) 15:42:49private で宣言されたメンバは継承されない
getter 用意してアクセスしろ
0951デフォルトの名無しさん
2007/07/26(木) 16:02:25ありがとうございます
1.4でも使えますか?
0952デフォルトの名無しさん
2007/07/26(木) 16:08:390953デフォルトの名無しさん
2007/07/26(木) 16:22:11http://java.sun.com/docs/books/jls/third_edition/html/classes.html#8.2
> Members of a class that are declared private are not inherited by subclasses of that class.
> Only members of a class that are declared protected or public are inherited by subclasses
> declared in a package other than the one in which the class is declared.
継承されてたら言語仕様に反する。
0954デフォルトの名無しさん
2007/07/26(木) 16:33:061.4でも使えるけど、セキュリティマネージャが許可しない場合は使えない。
例えばアプレットとかだと、Field#setAccessible() が許可されないはず。
0955デフォルトの名無しさん
2007/07/26(木) 18:01:230956デフォルトの名無しさん
2007/07/26(木) 18:12:42>>955
ゲイツ君がpure javaさんを嫌いで古臭いjavaさんの実行モデルを元に「・・・頼むよ君」と呼んできたのがC#くん。
0957デフォルトの名無しさん
2007/07/26(木) 18:33:30もう一度質問します。アプレットのメインクラスの中にある
描画処理・・・・たとえば↓
public void paint(Graphics g){
//描画処理
}
を別のクラスに作って描画処理を丸々引き渡したいのですが
別のクラスから描画処理をやろうとするとウィンドウに描画処理が反映されません。
メインクラスからだと反映されるのですが・・・。
描画処理をほかのクラスに引き渡すにはどうしたらいいですか?
たびたび質問してしまって申し訳ありません。
0958デフォルトの名無しさん
2007/07/26(木) 18:49:04使ってるつもりなのに描画されないなら、多分つもりなだけで実際には使われて無いんだろう。
問題のコードをどっかにうpした方が回答がつきやすいと思うよ。
0959デフォルトの名無しさん
2007/07/26(木) 19:08:290960デフォルトの名無しさん
2007/07/26(木) 19:11:500961デフォルトの名無しさん
2007/07/26(木) 19:16:38ソース
0962デフォルトの名無しさん
2007/07/26(木) 19:31:25わかりました。long使ってみます
ありがとうございました
0963デフォルトの名無しさん
2007/07/26(木) 19:41:33long b = Integer.parseInt(line);
このようにlineを取り込むとlongでも小数点以下がなくなってしまいます
longで取り込むにはどうしたらいいのでしょうか
0964デフォルトの名無しさん
2007/07/26(木) 19:48:59doubleは小数を保持する型
ってかlongに変えたんならInteger.parseInt()使うなよ
long用にはLong.parseLong()がある
doubleを使う場合はDouble.parseDouble()とかもある
これらを実行してどうなるか試してごらん
0965デフォルトの名無しさん
2007/07/26(木) 20:05:07いろいろ種類があるんですね
おかげさまで何とか動くようになりました!ありがとうございました
0966デフォルトの名無しさん
2007/07/26(木) 20:10:25できました
ちょっとしたミスでした
どもです^^;
0967デフォルトの名無しさん
2007/07/26(木) 20:42:31親クラスの非staticなメンバに直接アクセスするような
インナークラスだとstaticクラスじゃ無理。
たとえば、Iterableを実装するようなクラスがそれにあたる。
>>945のケースだとOuterのthisを要求しているからstaticじゃ面倒だね。
そうじゃない場合、ただの別クラスがたまたまインナークラスになっている場合、
staticにしないとnewするのにいちいち、
new Outer().new Inner();
とかいうわからないコードを書かないといけないハメになる。
まあ、内部に非staticクラスしのばせるのもいいけど、
メソッド内にクラス定義書くのも乙だと思うけどな。かなり嫌われるけど。
0968デフォルトの名無しさん
2007/07/26(木) 21:00:58対象にするって感じでいい?
本当はprivateな関数のテストもしたいし、privateな変数にアクセスして
チェックもしたいんだけど。
それともprivateを使わないで全部protectedにしてるとか?
0969デフォルトの名無しさん
2007/07/26(木) 21:16:31JUnitは単なるツール
どんなテストを行うかは別の問題
0970デフォルトの名無しさん
2007/07/26(木) 21:17:16(1)リスク駆動で。気になったところからチェックする。
単純な getter や setter などトリビアルなものに対するテストを考えるくらいなら、
もっとやるべきことがあるはずだ、たぶん
(2)protected にするくらいなら、パッケージプライベートで
(3)どうせなら、テストファーストがお勧め
テストを書こうとするだけで、モジュールの独立性や使い勝手などが
設計にフィードバックされる
0971デフォルトの名無しさん
2007/07/26(木) 21:59:18わたしもprotectedにするべきだと思うんですが
提供されているソースをみるとそうなってなかったんですね
0972デフォルトの名無しさん
2007/07/26(木) 23:51:39コンテナに登録されているロール名の一覧を取得する
方法はない?
あるロール名が登録されているかどうかを判別する
だけでもいい。
コンテナはGlassfish v2 Beta 3だが、JEE汎用の方法が
嬉しい。
0973デフォルトの名無しさん
2007/07/26(木) 23:53:26jcoverageとか使ってみれば?
0974デフォルトの名無しさん
2007/07/27(金) 01:33:53while(true){}でやるとちゃんと動くですが、どんな条件を入れても動いてくれません
他にもfor文とかの繰り返しはたくさんあるのですが、これだけ動いてくれません
■java 2 SDK SE v1.4.2_14
■WinXP Home
for文の中にprintlnを書いても全く表示されませんでした。
何が原因なのでしょうか?
ttp://up.spawn.jp/file/up36584.txt
0975デフォルトの名無しさん
2007/07/27(金) 01:43:110976デフォルトの名無しさん
2007/07/27(金) 06:26:15プログラムを作るにはどうすればよいのでしょうか?
ずっと、そのチェックをはしらせときたいのです。
0977968
2007/07/27(金) 07:48:59>>969
一般的にどんな感じでテストしてるか知りたい。
>>970
JUnitは単体テストなので実装依存(ソースにべったり)のテストコードを
作るのか、あるいは外部から見える範囲内(内部での細かい動作まではテストしない)
なのかを知りたいところ。
リスク駆動と言うのであれば、やはりprivateな変数・オブジェクトレベルでも
チェックしたいかなーと思ったんだけど、普通はそこまではしないもんなのかな。
クラスや関数はパッケージローカルでいいとは思うけど。
>>973
とりあえずjcoverage見てみたけどよくわからんw
IDEと連動しにくいツールは手を出しにくいかも。
0978968
2007/07/27(金) 07:51:550979968
2007/07/27(金) 08:00:03http://journal.mycom.co.jp/news/2007/07/20/006/index.html
0980デフォルトの名無しさん
2007/07/27(金) 08:47:09【初心者】Java質問・相談スレッド104【大歓迎】
http://pc11.2ch.net/test/read.cgi/tech/1185493592/
0981デフォルトの名無しさん
2007/07/27(金) 09:55:44cron
0982デフォルトの名無しさん
2007/07/27(金) 10:33:24>>979
ちょっと試してみたが、なかなか面白そうなツール。
要するに、テスト対象のコードをいじって、テストがそれを検出できるかを調べるツール。
カバレッジとはまた別の視点で単体テスト品質を計測するようだ。
0983デフォルトの名無しさん
2007/07/27(金) 10:51:34開発環境の文字コードはEUCなのですが、
String sample= "さんぷる";
String sjSample = new String( sample.getBytes( "SJIS" ), "SJIS" );
上の処理でSJISに変換されるんでしょうか?
変換された事を確認することってできないんでしょうか?
0984デフォルトの名無しさん
2007/07/27(金) 10:55:46> 上の処理でSJISに変換されるんでしょうか?
一瞬だけ。
> 変換された事を確認することってできないんでしょうか?
sample.getBytes("SJIS") の戻り値を確認。
0985デフォルトの名無しさん
2007/07/27(金) 11:36:56>一瞬だけ。
プログラム実行中は変換されたままですよね?
>sample.getBytes("SJIS") の戻り値を確認。
戻り値を確認してみたら [B@ed0338 でした。
変換されたのはなんとなくわかりますけど、こういうもんですか?
0986デフォルトの名無しさん
2007/07/27(金) 11:43:53> プログラム実行中は変換されたままですよね?
no。すぐにGC可能状態になる。
> 戻り値を確認してみたら [B@ed0338 でした。
toString()が確認に使えるか、もチェックしてから使え。
sample.getBytes("SJIS") で戻ってきた配列の中身を確認しろ。
0987デフォルトの名無しさん
2007/07/27(金) 11:44:28ソースコードを EUC で書いても、String は Unicode です
getBytes("SJIS") で SJIS に変換されるけど、String に戻したらまた Unicode です
0988デフォルトの名無しさん
2007/07/27(金) 12:33:10配列の中身まではみていませんでした。
確認したら数値が入っていたので調べてみます。
>987
内部コードってやつですか・・・SJISで扱えるのはgetByte("SJIS")の戻り値だけってことですね。
すいません、質問を変えさせてください。
URLConnectionを使って相手先に複数のパラメータを送ろうとしているのですが、
日本語を扱うパラメータはSJISに変換することになっています。
この変換が上手くいかず、今はEUCで送ってしまっている状態です。
日本語パラメータをSJISで送るにはどうすればいいんでしょうか?
SJISに変換した文字列を送ろうと思って最初の質問をしていました。
0989デフォルトの名無しさん
2007/07/27(金) 12:49:59java.net.URLEncoder.encode("文字列", "SJIS");
0990デフォルトの名無しさん
2007/07/27(金) 15:02:02ページのFTPに入ってパスワードを入れて
ファイルを書き換えることはしてもいいんですか?
0991デフォルトの名無しさん
2007/07/27(金) 16:12:310992968
2007/07/27(金) 16:35:58つーかJAVAアプリケットて何?w
0993968
2007/07/27(金) 16:37:020994デフォルトの名無しさん
2007/07/27(金) 17:45:49インストロールみたいなものじゃないの?
0995デフォルトの名無しさん
2007/07/27(金) 17:59:24分かりづらい地味な嫌がらせだな。せめてUTF-8にしてやればいいのにw
>>990
鯖の規則読んで出来るか確認してjavaアプレットから
どうやってFTP叩くかまで出来てからのご来場をお待ちしております。
じゃなきゃエスパー待ちになるぞ。
0996デフォルトの名無しさん
2007/07/27(金) 19:37:43オブジェクトにたいしてロックが入るの?
それともメソッドだけ??
class Hoge {
public synchronized int hoge(){...}
...
}
Hoge hoge.hoge();
↑ こうやったときに 別のスレッドからはhoge()だけ呼び出しできないのか、
それともhogeに対するアクセスは全部ロック解除待ちになるの?
0997デフォルトの名無しさん
2007/07/27(金) 20:40:28hoge
0998デフォルトの名無しさん
2007/07/27(金) 20:40:39だからhogeの他のsychronizedメソッドもロックされるな
0999デフォルトの名無しさん
2007/07/27(金) 20:44:21オブジェクトをロックする方法は別にあったはずだし
1000デフォルトの名無しさん
2007/07/27(金) 20:45:07勘違いしてたぜ(´ー`;)
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。