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

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
プログラミング言語Javaに関する質問スレです。
JavaScript, 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質問・相談スレッド109【大歓迎】
http://pc11.2ch.net/test/read.cgi/tech/1195961811/

/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */
また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝のう存じます。

次スレは>>980あたりで。
2前スレ728:2007/12/15(土) 18:29:24
前スレ>>729
亀レスですが、ありがとうございました
3デフォルトの名無しさん:2007/12/15(土) 18:32:12
おっさん!
4デフォルトの名無しさん:2007/12/15(土) 19:18:17
1.5で追加されたマルチスレッド用のAPIを1.4で使用することは
出来ませんか?
1.4用のjarとかあればいいのですが。
5デフォルトの名無しさん:2007/12/15(土) 19:23:19
>>4
http://g.oswego.edu/dl/classes/EDU/oswego/cs/dl/util/concurrent/intro.html
パッケージ違うけど、機能は大体同じ。同じ人が作ってるから。
6デフォルトの名無しさん:2007/12/15(土) 21:40:04
JAVAスクリプトでお気に入りにとぶだけで自動的にフォーム埋めるのを書きたいです

javascript:(function()でvalueのところにパスワードなど書くはずですが…
7デフォルトの名無しさん:2007/12/15(土) 21:54:55
>>6
javascriptの実装によってpostする文字列が異なる。複数のURL対応は難しいと思う。
8デフォルトの名無しさん:2007/12/15(土) 22:18:00
一つのURL対応でかまいません
9デフォルトの名無しさん:2007/12/16(日) 00:27:13
どなたか教えて〜
インターネットを利用して、Excelにて作成したデータシートに
携帯電話でデータの確認および入力するシステムを作りたいの
ですが、どのようにプログラムを書けばデータの確認および入力
ができるのか教えていただけないでしょうか。
よろしくお願いします
10デフォルトの名無しさん:2007/12/16(日) 01:45:47
>>8
ブラウザが何を送っているか調べるとこから始めないと
11デフォルトの名無しさん:2007/12/16(日) 04:21:32
>>9
poi
12デフォルトの名無しさん:2007/12/16(日) 04:24:01
javacでコンパイルはとおるのに、
javaで実行したら
  java java.lang.NoClassFoundError
とメッセージがでます。
どのように対処すればよいのですか。
13デフォルトの名無しさん:2007/12/16(日) 04:39:33
>>12
google
14デフォルトの名無しさん:2007/12/16(日) 10:46:34
RGB値にアルファ値をつけてPNGとして保存するにはどうしたらいいんでしょうか?
今はRGBの値を配列として持っていてそれに対応するアルファの値も配列として持っています。
jaiとかimageioを使いそうなのですがよくわからなくて。よろしくお願いします。
15裕釐:2007/12/16(日) 12:56:42
PNGべんきょーしる
16デフォルトの名無しさん:2007/12/16(日) 13:15:41
>>12
それって色々なバージョンがある。

main(String args[]){}がきちんとあるのなら、たぶんJava自体の問題。
Macに新しいJavaを入れたとき、プリインストールのと喧嘩してるみたいだった。
17デフォルトの名無しさん:2007/12/16(日) 13:21:31
質問させてください。
当方、オンラインの麻雀ゲームをしているのですが、JAVAの勉強もかねて、
自分の勝敗、振込み方等をツールを使い、記録させたいと思っております。

JAVAでのネットワーク接続にはSocketメソッドを使用すればよいことまでわかり、
PGを組んでみたのですが、どうも接続先がみあたりません的なエラーが
帰ってきます。
 見ていただいてもよろしいでしょうか。(受信されたデータを表示するPGのつもりです。)
○.○.○.○はサーバーのIPアドレスを、△は、ポート番号をあらわします。

PGは次のとおりです。
1817:2007/12/16(日) 13:23:00

import java.net.*;
import java.io.*;

class test {
public static void main(String args[]) {
try {
Socket socket = new Socket("○.○.○.○",△);
InputStream is = socket.getInputStream();
OutputStream os = socket.getOutputStream();
DataInputStream dis = new DataInputStream(is);
DataOutputStream dos = new DataOutputStream(os);
int recv = dis.readInt();
System.out.println("受信したデータ : "+recv);
dis.close();
dos.close();
is.close();
os.close();
} catch (Exception e) {
System.out.println("Client : Error");
e.printStackTrace();
}
}
}
19デフォルトの名無しさん:2007/12/16(日) 13:33:21
>>17
エラーも記載した方が分かりやすい。
20デフォルトの名無しさん:2007/12/16(日) 14:12:16
>>17
コマンドラインから、次のコマンドを打ってみよう。
telnet ○.○.○.○ △
2117:2007/12/16(日) 14:12:41
>>19
エラー内容は下記のとおりです

C:\java>java test>pc.txt
java.net.ConnectException: Connection timed out: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at test.main(test.java:7)
2217:2007/12/16(日) 14:50:25
>>20
ありゃ・・・接続に失敗しました、となってしまいました。
そうすると、IPアドレス、ポート番号が違っているということですかね
netstatコマンドとか使って調べてみたのですが、調べ方に誤りが
あったみたいです。(´・ω・`)

どうもありがとうございました。
2314:2007/12/16(日) 15:01:41
>>15
なんか参考に出来るサイトとかあります?pngとしてどう保存していいか調べたいのですが、どう勉強していいかわからなくてここで聞いてます
24デフォルトの名無しさん:2007/12/16(日) 15:05:54
>>22
proxyってオチは?
25デフォルトの名無しさん:2007/12/16(日) 15:05:54
>>23
TYPE_4BYTE_ABGR の BufferedImage に描画して ImageIO で保存すりゃいいんじゃねーの? (予想)
26デフォルトの名無しさん:2007/12/16(日) 15:17:46
>>23
Page page = google.search("imageio png 配列").get(0);
String keyword = page.getNewKeyword(); // "MemoryImageSource"
List pagelist = google.search(keyword);
2723:2007/12/16(日) 21:41:27
>>25
あ、できそう。
でもこの場合のアルファって1or0なんですかね?
28デフォルトの名無しさん:2007/12/16(日) 22:01:31
仕様書嫁
29デフォルトの名無しさん:2007/12/17(月) 07:52:07
質問があります。タイピングソフトを作っているのですが、
真ん中にあるUFOがゲーム開始と同時に上空から降りてきて、
タイピング入力時間が経過したら右上に小さくなって消えていくように
したいのですが、どうすればそういう風になるのでしょうか?

以下はそのプログラムのソースコードです。

ttp://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/122.java
30デフォルトの名無しさん:2007/12/17(月) 12:27:42
1. 大量の要素が Iterator から返されてくる
2. 1 の要素 1 つにつき、1 ファイルに書き出し

と言う事をしようとしています。

2 の過程で一つのフォルダ以下にファイルを置きすぎないよう、フォルダを
切って(例えば 1000 ファイルごとに次のフォルダ)入れています。

しかし、単純にあるルートフォルダを直下にフォルダを切っていくと、
今度はフォルダ自体が 1000 個なりを超えてしまうので、
そうならないよう子なり孫なりに作ろうと思っているのですが、
うまいアルゴリズムが思いつきません。

そもそもこのようなシリアル番号的でなく、大量のファイルを分散して配置
できさえすれば良いのですが、何か良い方法は無いでしょうか?
31デフォルトの名無しさん:2007/12/17(月) 12:37:27
要素にシーケンス番号でも付けて 10 進数 3 桁ずつでもディレクトリにすりゃ良いじゃん。
シーケンス番号の最大値が事前に分かれば何階層まで作ればいいかわかるだろ。

最大: 10,000,000,000,000,000L
番号:    12,345,678,901,234L → 000\012\345\678\901\234.txt
32デフォルトの名無しさん:2007/12/17(月) 12:48:00
>>30
ディレクトリが満杯になったら新しいルートディレクトリを作って
その中に満杯になったディレクトリを移動させればいいだけじゃないの?
同じファイルシステム内でのディレクトリの移動は一瞬で終わるはずだし
33Round Trip:2007/12/17(月) 13:16:33
前スレに書き込んだ者です。
先の件については、解決しました。
アドバイス下さった方、ありがとうございます。

ところで、再びの質問なのですが
public class Test{
private int A;
private int B;

public void set(int a, int b){
this.A = a;
this.B = b;
}

public set(){
this.set(0,0);
}

public static void main (String args[]){
Test t = new Test();
t.set();
}
}

こんなような処理におけるset()って、ありでしょうか。設計思想的に。
34デフォルトの名無しさん:2007/12/17(月) 13:21:21
あり
35デフォルトの名無しさん:2007/12/17(月) 13:35:49
java実装的には大文字で始まるフィールド名はなしの方向で
36デフォルトの名無しさん:2007/12/17(月) 13:39:40
俺様実装的には引数なしの set() は reset() の方向で
37Round Trip:2007/12/17(月) 13:41:40
>>34-35
なるほど。

ちょっとミスあり。
public void set()でした。

で、この場合は上記のような記述と
public void set(){
this.A = 0;
this.B = 0;
}
という記述と比較するとどうでしょう。

実際はもうちょっと複雑な処理をしているのですが。
一般論とか、見易さとか、いろいろな点からのご意見を伺いたく…。

よろしくお願いします。
38デフォルトの名無しさん:2007/12/17(月) 13:43:07
どうでもいい
39Round Trip:2007/12/17(月) 13:43:42
>>36
関数名などは適当につけただけなのです。
あくまで、『オーバーロードされる関数を相互で呼び出す場合の処理』と
考えていただければ…。
40デフォルトの名無しさん:2007/12/17(月) 14:16:58
>>33
読み方によって色々助言が出そうなソースだが…
set(int, int) を setAB(int, int) もしくは setA(int) + setB(int)、set は reset かね。
まぁ、引数無しの同名メソッドが引数有りを初期値で呼び出すのは、間々ある話。
>>39
なんというか、あのソースだとオーバーロードを行うメリットより、
拡張時等のデメリットの方が大きそうデスヨ
4130:2007/12/17(月) 14:59:40
>>31-32
ありがとうございます。
>>31
ちょっとすぐに飲み込めていませんが考えてみます。

>>32
すみません。条件が抜けていたのですが、一度格納したファイルのパスは
別の所に記録していまして、移動してしまうとそちらの修正が伴うので
できれば避けたいのです。
42Round Trip:2007/12/17(月) 15:29:31
>>40
拡張時のデメリットって、どんなことでしょうか。
名前がいい加減なのは、仮名だからでして…。
気に入らないようでしたら、hoge()なりunk()なり読み替えてください。
43デフォルトの名無しさん:2007/12/17(月) 15:57:53
POIでExcelファイルを出力するにはExcelは必要ないのでしょうか?
44デフォルトの名無しさん:2007/12/17(月) 15:59:18
イラネ
45デフォルトの名無しさん:2007/12/17(月) 16:32:08
おk
46デフォルトの名無しさん:2007/12/17(月) 18:37:30
TimeStampをCalendarに変換するにはどうすればよいでしょうか?
47デフォルトの名無しさん:2007/12/17(月) 18:40:33
Calnedar cal = Calendar.getInstance();
cal.setTime(timestamp);
48デフォルトの名無しさん:2007/12/17(月) 18:43:00
>>47
GJ
49デフォルトの名無しさん:2007/12/17(月) 18:45:16
GJ じゃねーよ。ありがとうございますだろガキこら。
50デフォルトの名無しさん:2007/12/17(月) 18:46:04
>>49
ニヤニヤ
51デフォルトの名無しさん:2007/12/17(月) 19:37:26
文字コードをShift-JISにすると、ByteBufferに格納された1バイトの文字が
デコードできなくなるのですが・・。
何か心当たりがある方、原因と対処方法について教えて
もらえないでしょうか。
52デフォルトの名無しさん:2007/12/17(月) 20:10:35
>>51
文字セット変換部の当該コードもしくは使用クラスを
53デフォルトの名無しさん:2007/12/17(月) 20:26:49
以下のように書くと、SJISだとなぜか1文字が出力されなくなります・・。

private static final Charset CHARSET = Charset.forName("Shift-JIS");
//private static Charset CHARSET = Charset.forName("UTF-8");
private static CharsetEncoder ENCODER = CHARSET.newEncoder();
private static CharsetDecoder DECODE = CHARSET.newDecoder();

public static void main(String[] args) {

try{

System.out.println(CHARSET.isSupported("Shift-JIS"));

String string = "C";
CharBuffer cb = CharBuffer.wrap(string);
ByteBuffer byteBuffer = ENCODER.encode( cb );

string = DECODE.decode(byteBuffer).toString();

System.out.println(string);
}catch (Exception e){

}


}
54デフォルトの名無しさん:2007/12/17(月) 20:27:51
×Shift-JIS
○Shift_JIS
55デフォルトの名無しさん:2007/12/17(月) 20:34:21
Shift_JISにしても現象変わらずです・・・。
Shift-JISでもSystem.out.println(CHARSET.isSupported("Shift-JIS"));
の結果を見る限り良さそうですが・・。
56デフォルトの名無しさん:2007/12/17(月) 20:37:22
>>53
decode(ByteBuffer) だか encode(CharBuffer) には
入力が1文字だったか1バイトだと正常に出力されないバグがあったはず。

たしか 出力用のバッファの生成関連で失敗するのが原因だったはずなので
decode(ByteBuffer) とか使わないで、自力で出力用のバッファ取って
decode(ByteBuffer, CharBuffer, boolean) とかの方を使えば回避できたような。
57デフォルトの名無しさん:2007/12/17(月) 20:47:39
>>56
Many character decoders fail to convert single-byte (e.g. ASCII) input
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6196991

1.6以降なら直ってそうだけど。
58デフォルトの名無しさん:2007/12/17(月) 20:52:55
ああ・・有り難うございました・・・やはりバグでしたか・・。
59デフォルトの名無しさん:2007/12/17(月) 20:56:06
すいません 超初心者なんですが0.1を10回たすと0.9999999.......と表されるのは何でですか?教えてください。
60デフォルトの名無しさん:2007/12/17(月) 21:00:51
浮動小数点では 10 進数を正確に表現できないから。
61デフォルトの名無しさん:2007/12/17(月) 21:02:14
>>59
10進数の 0.1 を自力で 2進数にしてみれば大体わかる。

1/3 を 10進数で小数点以下 5桁までしか保持しなかった場合
0.33333 になって、それを 3倍しても 1.0 にならずに 0.99999 になるのと似てる
62デフォルトの名無しさん:2007/12/17(月) 21:08:38
>>59
1÷3を10進数では正確に表現できないように、1÷10を2進数では正確に表現できないんだ。
人間は1÷3を0.3333....と無限に続くみたいに書くこともあるが、コンピュータはあいにくそういう表現が出来るようには作られていないので、どこかで打ち切る必要がある。
仮に6桁で打ち切るとすれば0.333333で、これを3回足しても0.999999になるだけで1にはならないだろ。
それと似たようなことが起きている。
63デフォルトの名無しさん:2007/12/17(月) 21:30:41
PCの性能上このように15HZぐらいが限界になってしまいます。30HZは出したいのですが
なにか処理を軽くする方法はありませんか?

public GrabFrame(){
try {
player = Manager.createRealizedPlayer(new MediaLocator("vfw://0"));
} catch(Exception e){
System.out.println(e);
System.exit(1);
}
new Timer(65, new ActionListener(){
public void actionPerformed(ActionEvent e){
grab_proc();
repaint();
}
}).start();
player.start();
}

void grab_proc(){
FrameGrabbingControl frameGrabber
=(FrameGrabbingControl)player.getControl("javax.media.control.FrameGrabbingControl");
Buffer buf = frameGrabber.grabFrame();
img =(new BufferToImage((VideoFormat)buf.getFormat()).createImage(buf));
}

public void paint(Graphics g){
if(null == img) return;
g.drawImage(img, 0, 0, getWidth(), getHeight(), null);
}
}
64デフォルトの名無しさん:2007/12/17(月) 22:32:54
>>63
65->33
65デフォルトの名無しさん:2007/12/17(月) 23:01:07
OutputStream とか writer についてよくわからなくなってきたので教えてください。長文で申し訳ありません。

○今作っているもの:
SAXパーサを使って、入力元のHTMLを少し編集して別のHTMLを生成している。
ここでは「オレパーサ」と呼ぶ(SAXパーサは本件の本題ではない)。
自分で作っているクラスは org.xml.sax.helpers.DefaultHandler
のサブクラスなので、startElement() などのコールバックメソッドの中で、StringBuffer に append
しまくって、最後にsb.toSring() で String として呼び元に返していた。

○問題点:
この方法だと、入力元のHTMLが馬鹿でかいときに OutOfMemory がでてしまう。

○対策:
このクラスは実環境では Servlet の中で動くので、Servlet のなかで
OutputStream os = response.getServletOutputStream() して os をオレパーサのコンストラクタに渡し、
コールバックメソッドの中でそこに出力すればうまく行くかも、と考えた。
ちなみに、なんで reponse.getWrite() でないかというと、
オレパーサのコンストラクタで PrintWriter 型の引数にしてしまうと、下記のSystem.out が渡せないから。

○改良:
これでオレパーサはHttp層と切り離せたが、オレパーサの出力結果をファイルに吐かせたり、
標準出力に出力できるようにしたいと考えた。
標準出力に出すには、オレパーサの呼び元である簡単な Main クラスのなかで、
System.out の out を渡せばいいので、↓のようにオレパーサのコンストラクタは java.io.OutputStream にした。
6665:2007/12/17(月) 23:01:37
(コード1):
public class MyHandler {

 PrintWriter pw = null;

 public MyHandler(OutputStream out) {
  this.pw = new PrintWriter(out);
 }

 public void startElement(....) {
  pw.print(編集後のHTMLタグ);
 〜

○質問1.
これだとバッファリングが効いているのでしょうか
(Servletからブラウザに吐かせることを考えた場合、バッファリングする必要はあるのか?)

コンストラクタの中を以下のように変えて、
 BufferedWriter bw = new BufferedWriter(new PrintWriter(out));
bw をクラスのメンバーにして各コールバックメソッドの中では bw に出力したほうがいいですか?

その場合、bw(BufferedWriter)は、write(String s, int off, int len) というメソッドしかありません。
今回編集しているのは文字列なので、PrintWriter#print(String) というように print というメソッドがあると
いいのですが、BufferedWriter にはそういうのがないので、
毎回 write(data, 0, data.length()) みたいに文字列の開始位置と終了位置を
渡さないといけないのでしょうか? .lengh() が毎回走ると遅そうです。
それともスーパークラスの java.io.Writer がもっている、writer(String) を使えばいいのでしょうか?
6765:2007/12/17(月) 23:02:06
○質問2.
コード1.の状態だと、pw.print() を呼んだだけでは出力されず、pw.flush() しないと
出力されないことがわかりました。
SAXパーサの endDocument() のなかで pw.flush() すればすべて出力されますが、これだと
最後の最後までPrintWriterの内部で抱えているのだと思います。
今回は OutOfMemory を起こさないことが目的なので、各コールバックメソッドの中で、
pw.print();
pw.flush();
しているのですが、こういう使い方であってますか? 毎回 flush() させていると、
質問1.で BufferedWriter をかませる意味がなくなりますか?

○質問3.
このオレパーサの出力結果をファイルに吐かせる場合は、オレパーサに
FileWriter を渡すべき? それとも FileOutputStream を渡すべき?

○質問4.
結論として、私がやりたい以下のこと
・OutOfMemoryを発生させない。100MBぐらいの入力HTMLが渡されても動くようにする。
・出力先に依存しない(ServletResponse, 標準出力、ファイル)
・バッファリングしたい。ただし質問2. でバッファリングする必要がないのであれば、除外する)
を満たすには、オレパーサのコンストラクタにはどの型を引数にすれば、
出力先に依存せずにできるのでしょうか?

長くなってしまい申し訳ありません。こういうふうにやればよい、というのがあればよろしくお願いします。
68デフォルトの名無しさん:2007/12/17(月) 23:20:36
ひとついうがsaxでhtmlは読めんぞ。
ちゃんとhtmlパーサ使え。

>>63
そもそもJMFの使い方間違ってる。コーデック実装してセットしてやれ。
69デフォルトの名無しさん:2007/12/17(月) 23:23:24
コマンドプロンプトでnfkコマンドを使いたいのですが使えないといわれます
どこかのサイトからDLする必要がありますか?
Windowsで実行したいのですが検索してもLinux関係のものしかでなくてわかりません
70デフォルトの名無しさん:2007/12/17(月) 23:33:06
> オレパーサのコンストラクタで PrintWriter 型の引数にしてしまうと、下記のSystem.out が渡せないから
new PrintStream(System.out) を渡せ。最後に flush() すればいい。

> これだとバッファリングが効いているのでしょうか
利かない。だがバッファリングが必要かどうかは呼び出し側で決めること。中で暗黙的にバッファリング
すると返ってオーバーヘッドになってしまうだけの場合もある。

> PrintWriter#print(String) というように print というメソッドがあるといいのですが、
new PrintWrier(new BufferedWriter(new OutputStreamWriter(out)));

> 毎回 flush() させていると、質問1.で BufferedWriter をかませる意味がなくなりますか?
あまりなくなる。だが BufferedWriter はバッファが一杯になると勝手に flush するから
endDocument() で flush() すれば良い。

> FileWriter を渡すべき? それとも FileOutputStream を渡すべき?
引数: Writer、実体: FileWriter で良いんじゃねーの。
71デフォルトの名無しさん:2007/12/17(月) 23:40:48
×new PrintStream(System.out)
○new OutputStreamWriter(System.out)
72デフォルトの名無しさん:2007/12/18(火) 00:00:52
そんなJavaよりJwaveだね
http://snipurl.com/1vdat
73デフォルトの名無しさん:2007/12/18(火) 00:04:07
なんだよ。わくわくしながら開いてみたのにラジオかよ。
つまんねぇ〜
74デフォルトの名無しさん:2007/12/18(火) 00:05:05
書き込みがあると思ったらJwaveかよ
75デフォルトの名無しさん:2007/12/18(火) 07:38:12
今夜はくりぃむしちゅーのオールナイトニッポンの日だな
76デフォルトの名無しさん:2007/12/18(火) 07:50:11
それほど初心者でもないのですが,classファイルが
増えてきたので継承関係を反映したディレクトリ別に
ソースファイルを分類したいと考えております.
しかしそのような方法について記述した資料をあまり
見かけません.そもそもできないのでしょうか?
77デフォルトの名無しさん:2007/12/18(火) 08:02:22
ほとんどの入門書に書いてあるパケジとはやりたい事がちがうの?
78デフォルトの名無しさん:2007/12/18(火) 08:07:44
>>76
それほど初心者でもないのなら、
パッケージでファイルの位置が指定されることぐらい知らんのか?
79デフォルトの名無しさん:2007/12/18(火) 08:15:50

genericsのワイルドカードでコンパイルエラーがでちゃいます
List<?> list = new ArrayList<?>();

なんででしょうか?
XPとJDK1.5.0_13、VistaとJDK6_u1、ともにダメでした
?じゃなくObjectにすればうまくいくんですが。
80デフォルトの名無しさん:2007/12/18(火) 08:22:50
>>76
ソースディレクトリはパッケージ関係なくても別にできる。javac -help 参照。
81デフォルトの名無しさん:2007/12/18(火) 08:27:36
>>79
new で作るときは型指定必須。それを受ける参照型は <?> でも OK。
まぁ <?> を <Object> と等価とみなしてくれても良いとは思うが、そこらへんは
言語仕様作った連中に聞いてくれ。
8276:2007/12/18(火) 09:16:56
>>80
実はそれが言いたかったのです.言葉が足りず申し訳ない.
packageのディレクトリ構成は任意性が大きすぎる.
クラス間の継承関係を反映したディレクトリ構造を
package構成にも反映させたいと考えているのですが,
その指針を示すような資料が見つけられません.
そのあたりを必然的に決定できるような方法論はどこかに
ありませんでしょうか.
継承関係を自動的に反映するようなメカニズムが
packageのシステムには無いということなんでしょうけど,
それならば人間の考え方でなんとかならないかという話です.
83デフォルトの名無しさん:2007/12/18(火) 09:23:58
継承関係とパッケージ階層 (ディレクトリ構造) は何の関係もないし、厳密に
関係させること自体に意味がない。だから 「必然的に決定できる方法論」
などという御大層なものは存在しない。
8476:2007/12/18(火) 09:29:08
>>83
結局そういうことですね.
継承関係とパッケージ階層 (ディレクトリ構造) とが
うまく対応してくれるとわかりやすいと思ったのですが.
あきらめます.ありがとうございました.
85デフォルトの名無しさん:2007/12/18(火) 10:28:59
maven だと、ソース(本番用)とテストソースで、package は同じだけどフォルダは別にしてるね。
86デフォルトの名無しさん:2007/12/18(火) 10:58:18
>>84
蒸し返すようで申し訳ないので、流してくれて結構だが、何が分かりにくいと感じたのだろうか。

クラスの継承だけが分かりにくいのであれば、javadoc で対応できると思う。
クラス図が必要なら、ソースからそれを生成するツールがあったかもしれない。

自分の想像してる解決法が、常に唯一のそれではないかも知れない。
ま、失礼でお節介な戯言で重ね重ね申し訳ない。
8765-67:2007/12/18(火) 15:30:30
レスどうもありがとうございます。

>>68
> ひとついうがsaxでhtmlは読めんぞ。
> ちゃんとhtmlパーサ使え。
そのとおりなのですが、今回はかなりきれいな xhtml 形式の HTML が
渡されることが業務要件で保障されている(らしい)ので、saxを使うことになりました。
SAXはある程度使えるようになったが、↓は少しやってみたけどよくわからんかった。
http://htmlparser.sourceforge.net/

>>70
なるほど、扱っているデータがテキストなので、オレパーサの引数は Stream ではなく
Writer にすべきですね。
Servlet から渡すときも、response.getOutputStream() ではなく response.getWriter() を
使うようにします。
BufferedWriter をかませるかどうかは状況やテストをしてみて考えますが、
オレパーサの本体からははずすようにしてみます。
勉強になりました。どうもありがとうございました。
88デフォルトの名無しさん:2007/12/18(火) 16:55:29
メモリを100Mぐらいしか使ってないプログラムが実行途中で

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOfRange(Arrays.java:3209)
at java.lang.String.<init>(String.java:216)
at java.lang.StringBuilder.toString(StringBuilder.java:430)
at test.main(test.java:60)
とでるのですが、メモリたらないんですかね?一応2Gつんでるんですけど・・。
89デフォルトの名無しさん:2007/12/18(火) 17:07:31
-Xmx512m オプション付きで実行
90デフォルトの名無しさん:2007/12/18(火) 17:07:59
91デフォルトの名無しさん:2007/12/18(火) 17:15:16
質問なのですが、現在ハロワの職業訓練でCOBOL・Cを勉強しています。
が、Javaで就職したいと思い、夏から「やさしいJava」「やさしいJava活用編」
「Javaの絵本」を勉強していました。
来年の3月卒業なのでそろそろ就職を考える時期なのですが、
今からどんなところをやっておくと現場でつかえますか?
アプレット?データベース?Eclipse?
またおすすめの参考書などありましたら教えていただきたいです。よろしくお願いします。
92デフォルトの名無しさん:2007/12/18(火) 17:24:08
地雷本で就活せんでくれw

>>87
xhtmlが保証されてるのか・・・。
じゃあ、pullパーサ使った方が楽だと思うけど。どう?
93デフォルトの名無しさん:2007/12/18(火) 18:49:00
パッケージは依存関係で分ける。機能で分けるのはドツボの入り口
相互参照しているパッケージがあったら、そのプログラムは捨てましょう

Javaの言語的なパッケージという意味ではないが、
パッケージの分け方についてはロバートのアジャイルなんとかという本が神
マーチンもUMLの本にて、パッケージについてこの文献をリファーしてた
94デフォルトの名無しさん:2007/12/18(火) 18:51:59
うんち
9576:2007/12/18(火) 19:01:53
>>86>>93
ありがとうございます.
示していただきましたツールや本を参考に
もう少し勉強することにします.
9665-67:2007/12/18(火) 19:04:08
>>92
pullパーサというと、メジャーなのはStAXのことですよね。
・今回は J2SE5 で開発していて、なるべく外部jarを追加しない
・すでにほとんど作り終わってしまった
・自分がアサインされた時点で方針は決まっていた&半分ぐらい出来上がっていた
ので SAX で行きますが、個人的に StAX は興味があります。
J2SE6 で標準で使えるようになったこともあり、職場の同僚にも「これからはStAXがオヌヌメ」
と薦められました。
J2SE5 で StAXを使うには、どこからjarを持ってくればいいのですか?
ぐぐったところ http://woodstox.codehaus.org/ をみつけました。

ほかのpullパーサ(同僚にもらったメールを貼り付けただけなので内容は見てないっす)
http://www.extreme.indiana.edu/xgws/xsoap/xpp/
http://ws.apache.org/commons/axiom/
http://jibx.sourceforge.net/
97デフォルトの名無しさん:2007/12/18(火) 19:11:17
STGをつくっていて背景の縦スクロールをおこないたいのですがわかりません

Back1.Ymove=10
Back1.Y=Back1.Y+Back1.Ymove;

で移動するようにしたのですが同じ画像をなんかいもまわして表示させることだできません

この場合だったらうごいた10ドット分の背景をゲーム画面のいちばん左上である座標(0,0)に描画すればいいんじゃないかとかんがえたんですが、
この処理はどういうふうにプログラミングをかけばいいですか?
98デフォルトの名無しさん:2007/12/18(火) 19:21:34
すみませんが、質問です。
なんでJavaの配列は、equals()メソッドが、内容の比較ではなく == に割り当
てられる、という仕様になっているのでしょうか?
おかげで、配列をMapのキーにすることができません。

Java : 配列のequals()メソッドがぐったりな件
http://d.hatena.ne.jp/lethevert/20060520/p3
99デフォルトの名無しさん:2007/12/18(火) 19:30:53
equalsってなんて読むの?
100デフォルトの名無しさん:2007/12/18(火) 19:33:25
Javaの元ネタってコーヒーなんだぜ?みんな知ってた?
101デフォルトの名無しさん:2007/12/18(火) 19:37:35
>>96
RI
http://stax.codehaus.org/

sunの実装
https://sjsxp.dev.java.net

Woodstoxはオープンな実装だね。

pull parserは実装が乱立したから標準化したのがStAX。
10265-67:2007/12/18(火) 19:47:09
>>101
レスどうもありがとうございます。
pullパーサ = StAXのことだとおもってたけど、
もともとは pullパーサの実装は乱立するぐらいいろいろあったんですね。
103デフォルトの名無しさん:2007/12/18(火) 19:47:26
>>100
kwsk
104デフォルトの名無しさん:2007/12/18(火) 19:52:51
>>103
そんなことも知らないのかよゆとりは
105デフォルトの名無しさん:2007/12/18(火) 20:09:33
>>103
「java コーヒー」でググれ。
ちなみに Java Beans はコーヒー豆なんだよな。

>>104
こういうことは知らなくても何ら差し支えは無い。
106デフォルトの名無しさん:2007/12/18(火) 20:11:43
107デフォルトの名無しさん:2007/12/18(火) 20:12:41
>>98
配列をMapのキーにするなんてロクでもない考えのように俺には思えるが、
Arrays.asList でリストにすれば放り込めるんじゃないか?
108デフォルトの名無しさん:2007/12/18(火) 20:13:36
*7とか懐かしいね。
109デフォルトの名無しさん:2007/12/18(火) 20:20:08
equalsってなんて読むの?
110デフォルトの名無しさん:2007/12/18(火) 20:26:31
エクウワァァルス
111デフォルトの名無しさん:2007/12/18(火) 20:32:40
エコールエス
112デフォルトの名無しさん:2007/12/18(火) 20:40:55
末尾は「ス」じゃなくて「ズ」だ。
有声音に付いた S はズと濁って発音する。
(だからホントは、 ×タイガース→○タイガーズ、
 ×ヤンキース→○ヤンキーズなんだよな)

冒頭も「エ」じゃない。「イー」だ。

つうことで、強いてカタカナで書けば「イーコルズ」か。
http://eow.alc.co.jp/equal/UTF-8/
11398:2007/12/18(火) 20:45:05
>>107
ありがとうございます。
リストにすれば放り込めることは分かっています。
私が知りたいのは、配列の equals() がこのような仕様になっている理由です。

Mapの件は、不便さの実例に出しただけなのです。あまりいい例ではなかった
かもしれませんが。
114デフォルトの名無しさん:2007/12/18(火) 20:45:07
コルズはねーよw
六本木コルズ
115デフォルトの名無しさん:2007/12/18(火) 20:48:44

.       ∧_∧ 
       (;´Д`)
  -=≡  /    ヽ 
.      /| |   |. |
 -=≡ /. \ヽ/\\_
    /    ヽ⌒)==ヽ_)= ∧_∧
-=   / /⌒\.\ ||  ||  (´・ω・`) >>114
  / /    > ) ||   || ( つ旦O
 / /     / /_||_ || と_)_) _.
 し'     (_つ ̄(_)) ̄ (.)) ̄ (_)) ̄(.))
11697:2007/12/18(火) 20:50:21
>>106

すいませんでした
誘導ありがとうございます
117デフォルトの名無しさん:2007/12/18(火) 20:58:27

.       ∧_∧ 
       (;´Д`)
  -=≡  /    ヽ 
.      /| |   |. |
 -=≡ /. \ヽ/\\_
    /    ヽ⌒)==ヽ_)= ∧_∧
-=   / /⌒\.\ ||  ||  (´・ω・`) >>116
  / /    > ) ||   || ( つ旦O
 / /     / /_||_ || と_)_) _.
 し'     (_つ ̄(_)) ̄ (.)) ̄ (_)) ̄(.))
118デフォルトの名無しさん:2007/12/18(火) 21:00:16
>>113
「同一インスタンス」 と 「同一値」 は意味が違うから。
119デフォルトの名無しさん:2007/12/18(火) 21:02:23
>>113
配列は内容を変更して使うのがメインの使い方だと思ってるからじゃないかと。

StringBuilder/StringBuffer の equals が上書きされてないのと同じ理由で。
120デフォルトの名無しさん:2007/12/18(火) 21:10:08
言語仕様に関して 「何でこうなっている/ないんでしょうか?」 という素朴な疑問系ネタは
BugParade で散々がいしゅつなので、そっちへ誘導すれ。

http://bugs.sun.com/view_bug.do?bug_id=6319291
This would be a hugely incompatible change to the language specification.
Fortunately the desired functionality is already provided in java.util.Arrays.
121デフォルトの名無しさん:2007/12/18(火) 21:15:34
仕様書眺めてみたけど、配列のequalsについての文章見当たらないなぁ・・・
探し足りないだけかもしれないけれど
122デフォルトの名無しさん:2007/12/18(火) 21:17:59
あぁ、Object#equalsをオーバーライドしてないだけなのか・・・
123デフォルトの名無しさん:2007/12/18(火) 21:22:35
>>120
そこには「今更変更できねーよ」って書いてあるだけで、
「元々の言語仕様がなんでそーなってるのか?」って理由は書いてないような。
124デフォルトの名無しさん:2007/12/18(火) 21:38:19
検索すりゃ幾らでも出てくるから自分で探せ。
12598:2007/12/18(火) 21:50:06
>>124
一通り検索はしたつもりなのです。申し訳ありませんが、何か一つリンク先を
教えていただけませんか?

一つだけ思い当たるのは、Collectionと違い、配列にはプリミティブ値も入り
ますから、Java1.4以前だと個々の要素にequals()メソッドが定義されていない
場合があることです。
126デフォルトの名無しさん:2007/12/18(火) 21:54:03
無いならそれは 「90 年代に言ってくれればそういう実装もあったかもね」 という意味だ。
127デフォルトの名無しさん:2007/12/18(火) 21:56:22
等値性と同一性の違いだろ。
ecma scriptの==と===の違い。
128デフォルトの名無しさん:2007/12/18(火) 22:24:20
>>118 >>127 その二つが違うことぐらいはみんなわかってるんだよ。
129デフォルトの名無しさん:2007/12/18(火) 22:40:38
分かってない奴がいるから聞いてくるんじゃないの?
13017:2007/12/18(火) 22:41:40
質問させてください。
以前、JAVAでオンラインゲームのツールを作りたいと言ったものです。(>>17
つながらなかった原因は、サーバー名及び、ポート番号が違っていたとわかり、
正しく設定しなおしたのですが、やはりエラーがでてしまいます。
(アドレス、ポート番号はオンラインゲームサーバーのものです。)

import java.net.*;
import java.io.*;

class test {
public static void main(String args[]) {
String host = "111.11.111.111";
int port = 1111;
try {
Socket socket = new Socket(host,port);
InputStream is = socket.getInputStream();
OutputStream os = socket.getOutputStream();
DataInputStream dis = new DataInputStream(is);
DataOutputStream dos = new DataOutputStream(os);
int recv = dis.readInt();
System.out.println("受信したデータ : "+recv);
dis.close();
dos.close();
is.close();
os.close();
} catch (Exception e) {
System.out.println("Client : Error");
e.printStackTrace();
}
}
}
13117:2007/12/18(火) 22:43:32

エラー内容は下記のとおりです

C:\java>java test
Client : Error
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at java.io.DataInputStream.readByte(Unknown Source)
at test.main(test.java:18)

ここで、
int recv = dis.readInt();
がエラーの原因であろうことまでは分かったのですが、そこからどうやって
解消すればよいか悩んでいるところです。
「dis.readInt」のIntをByteとかにしてみたのですが、やはりだめでした。
よろしければ、ご教授いただけないでしょうか
13298:2007/12/18(火) 22:57:22
>>125の続きですが、考えてみたらどうも外れのようです。プリミティブ型は
==, オブジェクト型は equals()で比較すればいいだけだから、コンパイル時
に引数の型で判別して分岐すれば済む話です。

実際、Arrays.equals()は型ごとにオーバーロードされています。同じことは
配列でもできたはずです。

結局、わからないままです。やっぱり、いい仕様じゃないけど今さら変えられ
ないだけなのかもしれません。

>>119
なるほど、安全側に振ったわけですか。しかし、だとするとCollection全般で
equals()が実装されている理由がわかりません。

>>129
私は分かってます。C++も書きますので。つうか>>98の質問から、私がアドレ
スの比較とインスタンスの値の比較ぐらいは知っていると読み取っていただき
たかった。
133デフォルトの名無しさん:2007/12/18(火) 23:08:10
初心者スレで質問してる時点で何も分かってないとみなされますが。
134デフォルトの名無しさん:2007/12/18(火) 23:14:28

.       ∧_∧ 
       (;´Д`)
  -=≡  /    ヽ 
.      /| |   |. |
 -=≡ /. \ヽ/\\_
    /    ヽ⌒)==ヽ_)= ∧_∧
-=   / /⌒\.\ ||  ||  (´・ω・`) >>133
  / /    > ) ||   || ( つ旦O
 / /     / /_||_ || と_)_) _.
 し'     (_つ ̄(_)) ̄ (.)) ̄ (_)) ̄(.))
135デフォルトの名無しさん:2007/12/18(火) 23:14:59
ここ初心者スレじゃないだろ
初心者も歓迎ってだけで。
136デフォルトの名無しさん:2007/12/18(火) 23:22:24
てst
137デフォルトの名無しさん:2007/12/18(火) 23:32:19
>アドレスの比較とインスタンスの値の比較ぐらいは知っている
javaはそういうことやってないが・・・。
138デフォルトの名無しさん:2007/12/18(火) 23:48:26
>>132
作ってる人が違うからポリシーも違うとかかも?

そーいや java.util.Vector とかは 1.1 んときは equals() も hashCode() もなかったけど、
1.2 で Collection API のメンバになったときに equals() や hashCode() を追加して非互換出してるしね。
13998:2007/12/18(火) 23:53:05
>>137
げっ、そうでしたか、すみません。VMの仕組みについてはまったく素人なので。
140デフォルトの名無しさん:2007/12/19(水) 00:00:55
パラメータ管理などのXMLからクラスソース(Bean)を生成できませんか?
簡単な感じのJarとかあれば教えてください。
141デフォルトの名無しさん:2007/12/19(水) 00:10:32
単純にXML⇒Beanマッピングしたいのか?
DiggesterなりJava5のパーサなり好きなの使え
142デフォルトの名無しさん:2007/12/19(水) 00:12:04
>>140
XSL 書け。
14398:2007/12/19(水) 00:17:39
>>138
うーむ、意外にそれだけなのかもしれません。でもいかにも不統一だなあ。
Vectorの件は知りませんでした。


>>132はさらに間違いでした。配列のequals()を引数の型でオーバーロードはできま
せん。なぜなら、Object#equals(Object o)を継承(オーバーライド)しなけれ
ばならないからです。

ですから、型判別による分岐は、コンパイル時ではなく実行時にやらなければ
なりません。ちょっとコストがかさみますね。


まあこれ以上、質問スレで自分の混乱した思考を垂れ流しても仕方が無いので、
この件についてはいったん打ち切ります。皆さん、ありがとうございました。
144デフォルトの名無しさん:2007/12/19(水) 00:20:10
>>141->>142
> クラスソース(Bean)を生成
質問者はソースコードの自動生成をしたいんじゃないかと思うが。
145デフォルトの名無しさん:2007/12/19(水) 00:29:34
>>144
だからソースに変換する XSL 書けと言っておるのだが。
146デフォルトの名無しさん:2007/12/19(水) 00:33:17
equals() の話でちょっと思ったが、循環参照している 「同値」 のコレクションを
equals() で比較したら StackOverflow になるんかな。
147デフォルトの名無しさん:2007/12/19(水) 00:44:24
>>145
そーゆー使い方ならRubyの方がらくだと、マーチン・ファウラー先生は言って
おられる。
http://capsctrl.que.jp/kdmsnr/wiki/bliki/?MovingAwayFromXslt
http://capsctrl.que.jp/kdmsnr/wiki/bliki/?UseOfXml

しかし、どっかに出来合いのツールは無いのかな?
148デフォルトの名無しさん:2007/12/19(水) 00:48:40
スキーマも不明なのに出来合いのツールなんてあるわけないだろ。
149デフォルトの名無しさん:2007/12/19(水) 00:55:59
>>147
単に慣れない XSL 使って文句言ってるだけの便所の落書きだなそれ。
150デフォルトの名無しさん:2007/12/19(水) 01:12:13
使っているコンピュータ上で1回だけしか使われない数値を
毎回生成するようなことはできますか?
151デフォルトの名無しさん:2007/12/19(水) 01:15:00
1回しか使われないのに、毎回という概念があるとは、随分と不思議な世界だな
152デフォルトの名無しさん:2007/12/19(水) 01:18:16
あぁ、変ですね、すいませんw
2度と同じ数値を生成しないようなプログラムです。
153デフォルトの名無しさん:2007/12/19(水) 01:18:37
エスパーになってみる。
重複しない数値と言う意味ではなかろうか?
154デフォルトの名無しさん:2007/12/19(水) 01:18:38
Digester使ってんよ
parseするとObjectだから未チェックキャストの警告でまくりなんよ

@SuppressWarningsで黙らせるしかないのかね
155デフォルトの名無しさん:2007/12/19(水) 01:20:18
コンピュータ上で?
プログラム上でならば、1ずつ発行してやればいい話だが、そういう意味じゃないのか?
156デフォルトの名無しさん:2007/12/19(水) 01:21:36
>>150
FileLock 使って user.home に自分でシーケンスファイル作ればええ。
それを現在時刻(ミリ秒)と組み合わせればまぁ実用レベル。

ん、user.home だとマルチユーザ OS だったら同一コンピュータ上で重複するか。
消される前提になるが java.io.tmpdir の方が良いかな。
まぁ堅牢なのが欲しければ DB 使え。
157デフォルトの名無しさん:2007/12/19(水) 01:22:21
エスパーになり損ねたようだ。

何桁欲しいのだろうか?
128bitで「殆ど」重複しないものとして、java.util.UUIDがある。
158デフォルトの名無しさん:2007/12/19(水) 02:39:47
XSLでjavaソース吐けるか?
Eiffelでjava吐かせた方がましな気がする。
159デフォルトの名無しさん:2007/12/19(水) 02:57:20
>>143 とか = の話について。
C# だと、演算子をオーバーライドできるんだっけ?
なので、オブジェクトのフィールドに値をセットするときに、わざわざ setter メソッドを用意せずとも、

hoge.name = "taro";

としておいて、name へ値をセットするときに何か処理をかませたければ、 = の演算子をオーバーライドすることができると聞いた。
だいぶ前に聞いたことを思い出しているだけなので、間違ったことを書いていたらすみません。
Java7 に導入されるかもしれないプロパティも似ているけど、C# と違ってなんか力技すぎると思った。

>>141
おれも興味があるので、あなたがやりたいことをもう少し詳しく書いてください。
>>141 みたいに、XML を読み込んで、すでに定義されているクラスにマップしたいのか、
>>144 みたいに XML からソースコードを自動生成したいのか。
160デフォルトの名無しさん:2007/12/19(水) 03:10:11
>>156
java.io.tmpdir は、WindowsXP だとデフォルトでは
%UserProfile%\Local Settings\Temp だからマルチユーザで使ってるとダメ
161デフォルトの名無しさん:2007/12/19(水) 03:46:37
待ち受けに自分のチンコ画像設定した携帯を
ドコモショップのお姉さんに渡したらどうなるの?
162デフォルトの名無しさん:2007/12/19(水) 08:02:47
java.util.UUIDって重複すんの?
163デフォルトの名無しさん:2007/12/19(水) 08:15:59
>>159
Rubyみたく最初から組み込まれているならばともかく、いまさら導入して混乱を招く必要はあるまい
Javaの強みはJava2以降、6までそれなりに下位互換が実現できているところを忘れない方がいいと
164デフォルトの名無しさん:2007/12/19(水) 08:41:08
kkkkk
165デフォルトの名無しさん:2007/12/19(水) 10:34:45
>>130
サーバーとの通信手続きは?
166デフォルトの名無しさん:2007/12/19(水) 10:40:44
マイコゥソフトゥ
エポーコンピューラー
モーティミーディオ
167デフォルトの名無しさん:2007/12/19(水) 11:22:52
>>158
パラメータ管理 (DB定義や画面入力定義などと想定) から大量の getter/setter 持った
Bean 生成するだけだろ。XSL で何が難しいと言うんだ? 仕様書から処理込みのソース吐けと
いう意味なら知らんが。

<bean class="Foo">
  <property name="hoge" type="int">
  ...
</bean>

メソッド名のキャピタライズに手抜いたがベースはこれで終わりじゃん。

public class <xsl:value-of select="/bean/@class" />{
<xsl:for-each select="/bean/property">
  private <xsl:value-of select="@type" /> <xsl:value-of select="@name" />;
  public <xsl:value-of select="@type" /> get<xsl:value-of select="@name" />(){
    return <xsl:value-of select="@name" />;
  }
  public void set<xsl:value-of select="@name" />(<xsl:value-of select="@type" /> <xsl:value-of select="@name" />){
    this.<xsl:value-of select="@name" /> = <xsl:value-of select="@name" />;
  }
</xsl:for-each>
}
168デフォルトの名無しさん:2007/12/19(水) 11:52:07
なんか力業だな。
まあ、本来の目的と違うことに使ってるから当たり前か。
169デフォルトの名無しさん:2007/12/19(水) 11:57:46
どこがだよw
単におまいが使い慣れてない & XML/HTML 以外に変換できること知らんかっただけだろ。
170デフォルトの名無しさん:2007/12/19(水) 12:20:29
読みにくいので不可
171デフォルトの名無しさん:2007/12/19(水) 12:30:54
読みにくい云々の主観認定はどうでも良い。
これ以上簡単にしようと思ったら <xsl:select>, <xsl:value-of> を簡素に書ける言語しかないんだがな。
Eiffel のほうがマシと言ったんだから、これより簡素なソースで書いてみてよ。
172デフォルトの名無しさん:2007/12/19(水) 12:45:33
for-eachより、apply-template使ったほうがXSLTらしくていいな。
173デフォルトの名無しさん:2007/12/19(水) 14:02:13
スミマセンちょっとジャバを勉強してみたいのですが、
初心者が中級レベルくらいまで勉強できる本で、
一冊で勉強できる本がありましたら教えてください。
ジャバの入門書は前に買って読んでないのが2冊くらいもっているので
入門書のあとに読むといいのなにかありませんか?
174デフォルトの名無しさん:2007/12/19(水) 14:03:21
XSLTやEiffelはよく知らんけど、Rubyで書いてみたよ。
こんなの、どんな言語でも書けるじゃん。
だったら好きな言語を使えばいいんじゃないの?
自分にはどうも、XMLは読みづらくて仕方が無い。

require "rexml/document"

open("test.xml") do |f|
 doc = REXML::Document.new f

 klass = doc.root.attribute("class")
 puts "public class #{klass} {"

 doc.root.elements.each do |s|
  name = s.attribute("name").to_s
  type = s.attribute("type").to_s
  puts <<-ONE_PROPERTY
   private #{type} #{name};
   public void set#{name.capitalize}(#{type} x) {
     this.#{name} = x;
   }
   public #{type} get#{name.capitalize}() {
     return this.name;
   }
  ONE_PROPERTY
 end
 puts "}"
end
175デフォルトの名無しさん:2007/12/19(水) 14:16:24
codezinというサイトで勉強してるのですが
完成図と違いうまく表示されません。(線が一本足りない状況です)
この場合は数値が間違ってるのでしょうか?
ttp://www15.axfc.net/uploader/93/so/File_3153.txt.html
176デフォルトの名無しさん:2007/12/19(水) 14:18:08
>>173
中級がどんなレベルか知らんが、初心者が中級レベルまでなんて1冊じゃ無理
時間もかかるし何冊も読んで実務もこなしたから中級者っていうんだよ。

まあ、EffectiveJavaとかが一通り理解できたら脱初心者くらいだと思われ。
177デフォルトの名無しさん:2007/12/19(水) 14:25:29
>>169
javaのソースはXML,SGMLで言う文章じゃないから却下だな。
178デフォルトの名無しさん:2007/12/19(水) 14:25:40
>>176
けっこう時間かかるんですね・・・
EffectiveJavaがなにかはわかりませんが、
とりあえずジャバの本手当たりしだい適当に買って勉強してみます・・・
179173,178:2007/12/19(水) 14:29:38
初心者がジャバを習得するのに何日くらいかかりますか?
経験は全くありません、VBAを少し使ったことがあるくらいです
180173,178:2007/12/19(水) 14:40:14
スミマセン一冊の本はある程度のレベルになると
同じ本を繰り返し何度も読むようになるのでしょうか?
もしジャバ勉強するのに暗記するくらいまで何回も読んだ本などがあれば知りたいなと思います。
いろいろ手当たりしだいの読むのと、核になる本を一冊繰り返し読むのと両方やれば
早く覚えられるということもあるかな
181デフォルトの名無しさん:2007/12/19(水) 14:46:42
>>177
はいはいw
182デフォルトの名無しさん:2007/12/19(水) 14:50:41
>>179
個人差がとても大きいので一概には言えませんが、自分が見たところ、フルタ
イムで勉強した場合、平均的には、

・最低レベルのコードなら何とか書ける
 ...1〜2週間
・初心者としてプロジェクトに参加し、人に言われたことをこなせる
 ...三ヶ月から半年
・フレームワークを理解し、自分でも設計ができる
...1年以上

こんな感じに見えます。ただし、

・脱落者もかなりいます。
・途中で止まってしまう人が多いです。特にデザインパターンを理解できず、
設計ができない人が多い。
・才能に恵まれていたら、ものすごく速く進みます。大変ラッキーです。

>>180
コアとなる本を必要とするかどうかは、人によりけりでしょうね。
自分はこの本で入門して、何度も読みました。いい本だと思いますが、誰にで
も薦められるとは思いません。
「JavaプログラミングBlack Book」
http://www.amazon.co.jp/dp/4844316117
183デフォルトの名無しさん:2007/12/19(水) 14:58:22
>>179-180
学坊はすっこんでろ
184デフォルトの名無しさん:2007/12/19(水) 15:20:02
今ArrayList型のpに
 [1,2,3,4]とはいっているのでが
int num=p.get(1) をすると型エラーがでます。
Listにはintでいれていっているのですが、なぜですかね??
しかもp.get(1)をintにキャストしようとしてもできません。

test.java:82: 変換できない型
検出値 : java.lang.Object
期待値 : int
int num=(int)(p.get(1));
^

p.get(1)をintにする方法を教えてください。
185デフォルトの名無しさん:2007/12/19(水) 15:22:04
>>184
ArrayList<Object> p = new ArrayList<Object>();
 ↓
ArrayList<Integer> p = new ArrayList<Integer>();
186デフォルトの名無しさん:2007/12/19(水) 15:27:05
>>184
Objectからintだと自動的にはunboxingされない。

p の型を List<Integer> にするか、int num = (Integer)p.get(1); にするか
187デフォルトの名無しさん:2007/12/19(水) 15:27:13
>>185
 解決しました。objectからintってキャストできないんですかね・・・。
188デフォルトの名無しさん:2007/12/19(水) 15:27:59
>>186
ありがとうございます。
189173,178:2007/12/19(水) 15:42:57
>>182
丁寧にありがとうございます。
論理的な思考ができないので時間がかかるかもしれませんが頑張ってみます。
紹介していただいた本読んでみます。ありがとうございました。
>>183
初歩的な質問ばかりでスミマセンでした、
才能ないので努力で頑張ってもっと高度な質問できるように頑張ります。
190デフォルトの名無しさん:2007/12/19(水) 16:11:11
>>173

ワザあり! 逆引き速引きリファレンス Java

初心者を脱しかける頃はだいたいどういうメソッドが有るか理解する(決して暗記では無い)のが超大事あるよ。
191デフォルトの名無しさん:2007/12/19(水) 16:15:09
メソッドがわかれば、この機能はこのメソッドを使って作るって考えられる。また逆説的に、こういうメソッドが有るから
こういう機能が簡単に実現できるってわかる。
192173,178:2007/12/19(水) 16:34:24
>>190>>191
ありがとうございます。
少し慣れてきたらとても役に立ちそうですね調べながら覚えられるかも・・・
辞書代わりに使ってみます。
193デフォルトの名無しさん:2007/12/19(水) 16:40:00
暗記とどう違うのかよくわからない俺ガイル
194デフォルトの名無しさん:2007/12/19(水) 17:19:20
>>193
だいたいでイイあるよ
195173,178:2007/12/19(水) 17:31:16
jdk-6u3-windows-i586-p.exeというのをダウンロードして
PATH設定して本に書いてあるコード書いて「Hello JAVA!」
出すのに成功しました!
感動したありがとうございました。
196デフォルトの名無しさん:2007/12/19(水) 17:38:40
そういえば、生まれて初めてprint文のプログラム書いて、
それが動いた瞬間って、すげぇ嬉しかったなぁ。。。
197デフォルトの名無しさん:2007/12/19(水) 17:38:58
Java プロセス実行中にローカルホスト名変えても
InetAddress.getLocalHost().getHostName() が返す値って変わらないんだけど
そういうもんなの?
198デフォルトの名無しさん:2007/12/19(水) 17:39:05
>>195
おめでとう。
誰もが最初はそこから始めるものです。
まだまだ先は長いけど、がんばってね。
199デフォルトの名無しさん:2007/12/19(水) 18:08:45
>>197
Javaのホスト名は起動時にキャッシュされたのを使いまわしのはず。
設定で非キャッシュに出来たような、出来なかったような…
200デフォルトの名無しさん:2007/12/19(水) 23:50:58
質問お願いします。
何を入力しても「入力された値は 0 より大きいです.」となるので,
正しく動作するようにプログラムを修正するにはどうすればいいですか??
201デフォルトの名無しさん:2007/12/19(水) 23:53:49
どうにかすればいい
202デフォルトの名無しさん:2007/12/19(水) 23:58:32
笑えば良いと思うよ(AAry
203デフォルトの名無しさん:2007/12/20(木) 00:06:46
>>200
当該メッセージ部分を探して、それを実行する条件を確認。
まぁ。その調子だと条件部分に問題があるんだろうさ。
204デフォルトの名無しさん:2007/12/20(木) 00:18:26
ここまで大雑把な質問もめずらしいな
205デフォルトの名無しさん:2007/12/20(木) 00:22:11
日本語でおk
206デフォルトの名無しさん:2007/12/20(木) 00:25:15
>>200
0より小さい値が入力されたときに 「入力された値は0より小さいです」 と表示するようにすればいいよ
207参戦:2007/12/20(木) 01:23:29
charだな
208デフォルトの名無しさん:2007/12/20(木) 01:28:33
チャー
209デフォルトの名無しさん:2007/12/20(木) 01:29:52
なるほど…ごにょごにょごにょ…と。こんなのかな
int i = System.in.read();
if (i > 0) System.out.println("0より大きい!");
210デフォルトの名無しさん:2007/12/20(木) 01:53:40
大雑把と言うかエスパー専用だろ。
211デフォルトの名無しさん:2007/12/20(木) 11:35:22
質問です。
今FileInputStreamのreadメソッドでファイルから5バイトずつ読み込むという命令を実行しているのですが
例えば
 abcdef とファイルにあったときに
1 abcde
2 bcdef
3 cdef?
4 def??
となって?の部分は何を読んでいるのですか??
理想としては
1 abcde
2 bcdef
3 cdefa
4 defab
と読み込みたいのですが・・。お願いします。
212デフォルトの名無しさん:2007/12/20(木) 11:40:00
abcdefabcdef
というファイルを用意すれば完了
213デフォルトの名無しさん:2007/12/20(木) 11:41:20
test
214デフォルトの名無しさん:2007/12/20(木) 11:41:49
>>211
【初心者】Java質問・相談スレッド109【大歓迎】
http://pc11.2ch.net/test/read.cgi/tech/1195961811/778-780,782,791
215デフォルトの名無しさん:2007/12/20(木) 20:19:34
>>211
JavaDoc FileInputStream#read()より

public int read()
    throws IOException
この入力ストリームからデータのバイトを読み込みます。
入力がまだ利用できない場合、このメソッドはブロックされます。

定義:
クラス InputStream 内の read

戻り値:
データの次のバイト。ファイルの終わりに達した場合は -1
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
例外:
IOException - 入出力エラーが発生した場合
216デフォルトの名無しさん:2007/12/20(木) 22:04:49
>>215
そっちじゃなくて、引数に配列を持つ方、な。
217デフォルトの名無しさん:2007/12/21(金) 03:06:33
String形式のクラス名からその名前のクラスを生成するにはClassLoaderを使えばいいんでしょうか
218デフォルトの名無しさん:2007/12/21(金) 03:26:10
>>217
Class.forName(className).newInstance()
219デフォルトの名無しさん:2007/12/21(金) 03:27:05
>>218

ありがと
220デフォルトの名無しさん:2007/12/21(金) 14:32:10
テキストファイル読み込んで処理させてるんですが、
行頭が記号(@とか*)で始まっている場合これらの記号を取り除いて処理するのって
どういう方法がありますかね?indexOfとかでしょうか?
221デフォルトの名無しさん:2007/12/21(金) 15:41:19
>>220
行毎に読んでいるんだったら
if (line.length() > 0 && line.charAt(0) == '@' ...
line = line.substring(1);
って感じでいいんじゃない? indexOf()でもいいけど。
222デフォルトの名無しさん:2007/12/21(金) 16:25:19
>>220
行毎に読んでますので、試してみます
223デフォルトの名無しさん:2007/12/21(金) 17:13:50
packageについて質問です。

package test.a;
public class A{
public static void disp(){
System.out.println( "disp" );
}

public static void main( String[] args ){
disp();
}
}

このソースはコンパイルは成功するのですが、実行するとエラー
java.lang.NoClassDefFoundError: A (wrong name: test/a/A)
が発生します。

同じpackageの以下のクラスを実行しても同様のエラーが発生します。

package test.a;
public class Aa{
public static void main( String[] args ){
A.disp();
}
}
224223:2007/12/21(金) 17:14:30
しかし、上のソースからpackage宣言を削除してimport文を入れると
問題無く実行されます。

import test.a.A;
public class Aa{
public static void main( String[] args ){
A.disp();
}
}

でも最初2つのソースに同様のimport文を入れても同じエラーです。

API概要を見るとNoClassDefFoundErrorは
>検索されるクラス定義は、現在実行中のクラスをコンパイルする時点では
>存在していましたが、その後見つからなくなっています。
とありますが、なぜ見つけられないのかがわかりません。

最初の2つのプログラムでは何が問題なのか教えてください。
225デフォルトの名無しさん:2007/12/21(金) 17:22:42
>>223-224
ソースのディレクトリ構成と、コンパイルした後の .class のディレク
トリ構成と、実行時のクラスパス設定 のどこかに問題がある。

このへん、最初は煩わしいので Eclipse とか使うと楽よ。

226デフォルトの名無しさん:2007/12/21(金) 17:46:15
その煩わしいのを覚えてからIDE使わないと自力でコンパイルできないぞ。
227223:2007/12/21(金) 17:59:06
お返事どうもです。

ソース・classは以下のフォルダに入っています。
D:\Java\Class\test\a

クラスパスは .;D:\Java\Class に設定されてます。
実行時オプション-classpath は付けてません。
他になにか考慮する点がありますでしょうか?

私の環境(98SE)ではEclipseが動作してくれません。ポコポコ落ちます。(´Д⊂ヽ
秀丸とマクロ(JavaAID)で勉強しています。
228デフォルトの名無しさん:2007/12/21(金) 20:11:42
Ecripsなんて素人用のIDE使うから
NetBeans使いなさい
229デフォルトの名無しさん:2007/12/21(金) 21:01:05
綴り間違うようなやつは信用できねえw
230デフォルトの名無しさん:2007/12/21(金) 21:04:04
エクレーップス だろ、常考。
231デフォルトの名無しさん:2007/12/21(金) 21:14:49
>>227
D:\Java\Class\>java test.a.A
232223:2007/12/21(金) 22:08:48
>>231

ありがとうございます。実行できました。
その後カレントディレクトリを
D:\Java\Class\test\a
にしてから同様のコマンドを試してみましたがうまく実行できました。

しかし、なぜカレントディレクトリを
そのクラスがあるフォルダ(この場合D:\Java\Class\test\a)にしてから
実行してるのに、このような指定 test.a.A が必要なのでしょうか?

手持ちの入門書には、package内のクラスを実行する場合は
package名から指定しなければならないとの記載はありませんでした。
233織田信長:2007/12/21(金) 22:34:10
> 手持ちの入門書には、package内のクラスを実行する場合は
> package名から指定しなければならないとの記載はありませんでした。

その入門書が間違っている。java を実行する場合は、そのクラスのパッケージ名から指定しないといけない。

> その後カレントディレクトリを
> D:\Java\Class\test\a
> にしてから同様のコマンドを試してみましたがうまく実行できました。

java を実行する場合、カレントディレクトリであるかは、(クラスの指定について言えば)関係ない。
c:\tmp で実行してもうまく行くだろう。

あなたは、>>227 でクラスパスを .;D:\Java\Class に指定している。
たとえば D:\Java\Class\test\a をカレントディレクトリにして >>231 を実行した場合、
・まずクラスパスの最初の . が評価される。
 D:\Java\Class\test\a\test\a\A.class が検索されるが、見つからない。
・次にクラスパスの次の D:\Java\Class が評価される。
 D:\Java\Class\test\a\A.class が検索され、見つかったので実行できたわけだ。

以上が、↑で書いた「java を実行する場合、カレントディレクトリであるかは、(クラスの指定について言えば)あまり関係ない。」
の理由である。

コマンドラインとエディタでやるのは悪くないぞ。Eclipseを封印してしばらくがんばれば、
そこらへんの「IDEがないとなにもできない厨」より成長するだろう。

励めい。
234デフォルトの名無しさん:2007/12/21(金) 23:56:41
パッケージ名というか完全修飾名じゃない?
235デフォルトの名無しさん:2007/12/22(土) 00:30:11
>>234
文脈上の問題というか、まぁ正しい名前とその定義を知っていることは良いことだ。

パッケージも含めたクラス名 - JavaA2Z
ttp://www.kab-studio.biz/Programing/JavaA2Z/Word/00001024.html
236デフォルトの名無しさん:2007/12/22(土) 00:38:03
 
すいません。質問させて下さい。

フレームワーク、Strutsとかなんですが、
どの参考書やサイト見ても便利だ便利だ、とかしか書いてません。
それもほんの少しだけで、後は全部コードが載っています。

サーブレットとJSP、beanで自分でMVCをコツコツ作るのも
5つも6つもファイルを編集してフレームワークに反映させるのも
そんなに手間が変わらないように感じます。


黒電話
 ・有線で設置場所が限定される
 ・個人の所有物では無いので意図しない人物が出る
 ・留守番機能がない

携帯電話
 ・無線なので設置場所を選ばない
 ・個人の所有物なので確実に相手が限定できる
 ・電話に出れなくとも用件は伝えられる


のような、比較してここが便利と明記されている書籍やサイトは無いでしょうか?

そもそもフレームワークって必要なのかどうなのかがわからないので
脳みそがどこかで拒否してしまうんです・・・
237デフォルトの名無しさん:2007/12/22(土) 01:16:32
フレームワークなんてのは何十人もの開発者が何百クラス/ページも使うような開発を
型にはめて、均質化で効果を出すもの。一人がフリーダムな設計でモノ作るのに直接的な
恩恵はないに等しい。

個人的にフレームワークとしての Struts が嫌いな点
・前世紀時代のサーブレット過渡期の古い設計で進化が止まってる。まぁ一度リリースすると
 大規模な設計変更できない FW の宿命なのだが。
・中〜大規模開発なら、あの程度のものを無理に使うより要件 & システム & 企業文化を
 熟知した部隊が 1 から設計しなおした方が後々まで楽。その中で使えるものだけ使えば良い。
・後付け的に MVC と主張。あれでは 「Bean+JSP+サーブレットで MVC だ」 という主張と同レベル。
・クラスの命名センス。
238デフォルトの名無しさん:2007/12/22(土) 01:35:05
MIDPは小規模開発でも定型処理をラップするフレームワーク作っとくと楽だぞ。
239デフォルトの名無しさん:2007/12/22(土) 02:08:38
論点がずれてるような気がするぜ

>236
独自FWは車輪の再発明になる上に、新規に参加したPGが覚えなおさなければならないという最大のデメリットを持つ。
ヘルプに行ってみたら独自実装の糞FWでどうにもならないってのは最悪のパターン。
逆に規模が小さくて俺流の設計でずっと面倒を見られるならば、無理に使わなくてもいい。
5つ6つならいいが、500も600もコツコツ作るのか?

脳みそが拒否するのは解る。
MVCも、デザインパターンも、そもそもオブジェクト指向もそうだったはずだ。
だが、これだけ普及しているという結果を信じて「使えるもの」と思って習得する方が幸せになれると思う。

個人的な見解を言わせて貰えば、StrutsもWebアプリのパターンとして習得しておくと、色々な開発や新しいFWを覚える時に楽。
「StrutsでいうところのActionクラスに相当して・・・」という説明を受けて、Java技術者を名乗るならば解らないのは勉強不足と言える。
「ここの設計はMediatorパターンで・・・」というように説明されるのと同様。
240デフォルトの名無しさん:2007/12/22(土) 02:11:19
>236
なにと比較して欲しいんだ?
Strutsを使った場合と使わなかった場合での比較ならば、メリットを見れば明らかだろ。
241デフォルトの名無しさん:2007/12/22(土) 02:16:42
Javaに限った話しじゃないけど、
実引数名と仮引数名って、別にした方がいいの?
242デフォルトの名無しさん:2007/12/22(土) 02:26:38
>>239
Struts みたいなもの使ってたとしても、ウンコまたは何層ものドメインフレームワークのせいで
同じ状況になってるケースが多いけどな。素 Struts で開発してる規模なんて新参でも全設計
すぐ理解できる程度じゃね?
243デフォルトの名無しさん:2007/12/22(土) 03:34:29
javaプログラミング認定試験を受けようとおもっています
お勧め参考書などありましたらお願いします
当方大学3年なのですが、とっといたほうがいいかなと思って受けます。

過去問集が公式見たら売り切れとかどうすれば・・・
基本情報の時は情報がいっぱいあったけど、これは少ない
アドバイスなんかいただけたらと思います
244デフォルトの名無しさん:2007/12/22(土) 04:17:01
学坊は資格のお勉強なんかより遊べよ
245デフォルトの名無しさん:2007/12/22(土) 06:27:14
資格もってても意味ない気がする。
246236:2007/12/22(土) 07:05:15

>>237
> 均質化で効果を出すもの。
> 一人がフリーダムな設計でモノ作るのに直接的な恩恵はないに等しい。

なるほど。「均質化」が効果の1つになるのですか。


>>240
> Strutsを使った場合と使わなかった場合での比較ならば、メリットを見れば明らかだろ。

そのメリットがわからないんです。

自己レスになりますが、「電話」というモノの使い道は理解しているので
携帯電話が便利とわかるのですが、
「Webアプリケーション」がわかっていないのでFWの便利さがわからない自分がいます。


>>239
> これだけ普及しているという結果を信じて
> 「使えるもの」と思って習得する方が幸せになれると思う。
> 「StrutsでいうところのActionクラスに相当して・・・」という説明を受けて、
> Java技術者を名乗るならば解らないのは勉強不足と言える。

・・・ですよね。

> 脳みそが拒否するのは解る。

ありがとうございます。
まずこのアレルギーをなんとかしてJava技術者を名乗っていきたいと思います。
247デフォルトの名無しさん:2007/12/22(土) 09:55:07
>>246
メリットが解りたいならば、Strutsと同じようなフレームワークを作ってみればいい。
全部とは言わないが、ActionクラスとDispachサーブレット、それらの設定方法くらいまで。
1日もあればテスト込で簡単に作れるとかならばメリットにはならんだろうな。

ちなみに習得には1日もかからない。
248デフォルトの名無しさん:2007/12/22(土) 09:56:14
>246
あと、どんなメリットが解らないのか具体的にあげてくれ。
単語や背景でかかえる問題を理解していないから、メリットが理解できないんだろうと思う。
249デフォルトの名無しさん:2007/12/22(土) 14:52:31
カットアンドペーストとかドラッグアンドドロップなどの良く使う機能のフリーライブラリってありますか
250デフォルトの名無しさん:2007/12/22(土) 15:18:08
ところでDivXっていいよね
http://snipurl.com/1vor0
251246:2007/12/22(土) 16:01:07

>>248
遅レスすいません。

sessionでいろいろ情報が保持出来るのに
何故、ActionFormとかを用いるのでしょうか?
252デフォルトの名無しさん:2007/12/22(土) 16:09:31
これはひどいw
253246:2007/12/22(土) 16:25:05

自分でもそう思います。かなりヒドい事を言ってるな、と。

10日でおぼえるJakarta入門教室買ってきました。
あとEclipseもさっぱりなのでビジュアルラーニングEclipse入門も。
254デフォルトの名無しさん:2007/12/22(土) 16:26:19
>>249
java.awt.dnd
java.awt.datatransfer
255デフォルトの名無しさん:2007/12/22(土) 18:04:34
>>251
ActionFormの存在とsessionは無関係とは言わないが、従兄弟の友達のおじいちゃんくらいの関係しかないんだが・・・

ActionFormは一言で言えば、リクエストの情報をオブジェクトにラップして使いやすくする為にある。
Validatorと合わせて使えば、Servletで処理をする場合に最初にやる典型処理「リクエストの妥当性チェック」を定型化できる。
で、これがどのようにしてSessionに関連するんだ?w
256デフォルトの名無しさん:2007/12/22(土) 18:18:58
いつまでもここで続けても仕方ない気がするんだが。
自分で勉強して出直してくれば良いんじゃない?
257デフォルトの名無しさん:2007/12/22(土) 18:30:48
必要に迫られてフレームワークのような物を作ってみる。
  ↓
Struts の機能と比較しながら自分の作ったものを反省する。
同時に Struts だけじゃ機能不足だったなとも思う。

こういう過程が多いんじゃね? あの程度のもん マンセー しながら使ってる奴なんていたらマジでスキル疑う。
258264:2007/12/22(土) 18:45:58

sessionにsetAttributeで値突っ込んでってのは
オマケ程度の機能なんでしょうか?

これはsessionで。
これはActonFormで。
これはhiddenで。
これはDBからで。

って。

流石にDBとhiddenはかなり志向が違うとは理解できるのですが、
クライアントからの何某を保存する、という意味では
sessionもActionFormも同じに見えるんです。

>>255
その「妥当性のチェック」が出来るってのがActionFormの強みなのでしょうか?
259デフォルトの名無しさん:2007/12/22(土) 19:24:46
>258
は?
sessionはステートレスなリクエストの情報の一部または全部ををサーバー側で保存しておく為の機能でServletの機能(仕様)。
ActionFormはクライアントからのリクエストをラップして使いやすくする為のStrutsの機能。
>256も書いているが、CGIとServletの違いと共通点から学んで来いや
260デフォルトの名無しさん:2007/12/22(土) 19:37:16
socketServerを使用してポートを公開しているプログラムってJava以外の
プログラムからでもポートを指定させすれば接続できますか?
261デフォルトの名無しさん:2007/12/22(土) 19:40:17
当然できる。
プロトコルって単語でぐぐってこい。
262236:2007/12/22(土) 19:47:19
>>259
ありがとございます。
なるほど、サーブレットの機能とStrutsの機能と
提供するモノの違いなんですね。

何故、リクエスト全てをsessionで活用しないのかというのは
妥当性のチェック・編集/利便性・リソースの消費という点において
ActionFormのが勝っていると考えていいのでしょうか?


>>256 >>259
もちろん自分でも学んでます。
要領と理解力がイマイチですが・・・
263デフォルトの名無しさん:2007/12/22(土) 20:42:50
>>262
ネットワークの基礎からやった方が良い気がする。
264デフォルトの名無しさん:2007/12/22(土) 21:34:41
javaプログラミング認定試験を受けようとおもっています
お勧め参考書などありましたらお願いします
当方大学3年なのですが、とっといたほうがいいかなと思って受けます。

過去問集が公式見たら売り切れとかどうすれば・・・
基本情報の時は情報がいっぱいあったけど、これは少ない
アドバイスなんかいただけたらと思います
265デフォルトの名無しさん:2007/12/22(土) 21:49:33
>>264
マルチするな
氏ねコピペ厨
266デフォルトの名無しさん:2007/12/22(土) 21:54:03
>>262
話が噛み合ってない。
ActionFormが勝っているんじゃなくて、Sevletにおけるリクエストをどう処理するかのパターンの1つがActionForm。
他のFWも独自実装もまともに設計していくと似たような実装になるんだよ。
おまえさんにはそれがイメージできないって事は理解不足なだけ

>>264
話題的にはこっちだな
http://pc11.2ch.net/test/read.cgi/prog/1156719293/l50
資格取るよりも1本や2本アプリケーション作る方が力はつくと思うが、基礎文法を抑えるということでは勉強する事には意味はあると思われ
267デフォルトの名無しさん:2007/12/22(土) 22:25:42
MPEG形式の動画やDIVX形式の動画をjavaで扱うにはどうしたらいいでしょうか
268デフォルトの名無しさん:2007/12/22(土) 22:55:16
JMF
Divxはむり。
269デフォルトの名無しさん:2007/12/22(土) 23:04:06
MPEGの画素データも扱えるでしょうか
270デフォルトの名無しさん:2007/12/22(土) 23:30:39
あるポートが使わているかどうか調べるために
ServerSocketをつくってみてもいいですか?
271デフォルトの名無しさん:2007/12/22(土) 23:49:41
>>270
作るのに許可がいるんですか?

作ってみればいいんじゃないでしょうか。
272デフォルトの名無しさん:2007/12/22(土) 23:50:46
接続してみれば良いんじゃね。
273デフォルトの名無しさん:2007/12/22(土) 23:53:57
>>266
正直、履歴書埋めるために取ります
あと、自己AP材料として

専門的なのは仕事内容決まってからのほうがいいと思いまして
274デフォルトの名無しさん:2007/12/22(土) 23:59:18
>>271,272
わかりました。この方法でいきます
275デフォルトの名無しさん:2007/12/23(日) 00:08:04
>>269
扱えるよ。
276デフォルトの名無しさん:2007/12/23(日) 00:14:34
JMF の MPEG はネイティブのラッパーだから (Win) 画素は取れないんじゃね?
多分真っ黒になると思う。
277デフォルトの名無しさん:2007/12/23(日) 01:21:15
バッファからイメージに変換してラスターからhogehogeしてやれば良い。
278デフォルトの名無しさん:2007/12/23(日) 01:28:01
すいません。Strutsの動きってこんな感じでいいんでしょうか?
ご意見/ご鞭撻お願いします。


01 発行 index.jsp <html:form action="/foge">
02 編集 Struts "/foge" → "/foge.do"
03 検索 web.xml <servlet-mapping><url-pattern>/foge.do ("*.do")
04 取得 web.xml <servlet-mapping><servlet-name>action
05 検索 web.xml <servlet><servlet-name>action
06 取得 web.xml <servlet><servlet-class>ActionServlet
07 参照 ActionServlet.class <action-mappings><action path="/foge"> ( struts-config.xml )
08 取得 struts-config.xml <action-mappings><action name="foge">
09 検索 struts-config.xml <form-beans><form-bean name="foge">
10 取得 struts-config.xml <form-beans><form-bean type="fogeFrom">
11 格納 fogeForm.class
12 取得 struts-config.xml <action-mappings><action type="fogeAction">
13 参照 fogeAction.class (fogeForm.class)
14 処理 fogeAction.class
15 返却 fogeAction.class (findForward"success")
16 検索 struts-config.xml <action-mappings><acton><forward name="success">
17 取得 struts-config.xml <action-mappings><action><forward path="/result.jsp">
18 表示 result.jsp
279デフォルトの名無しさん:2007/12/23(日) 01:37:59
>>278

http://struts.apache.org/

っつーか何でいつまでもこんなところで聞くの?
本屋に行けばいくらでも本が売ってるんだから、買って自分で試してみればいいじゃん。
手を動かさずにこういう質問する人、すごく嫌い。

同じ初心者でも、まだ「○○の本を買いました。○ページのサンプルを動かしてみましたが、ここがわかりません」
という質問のほうが、相手してあげようという気になる。

280デフォルトの名無しさん:2007/12/23(日) 02:20:46
>>279
10日でおぼえるJakarta入門教室
翔泳社 山田祥寛
ISBN 4-7981-0439-6

P48〜P55 「Strutsの基本構成を学ぶ@」のサンプルを動かしてみましたが
何故、Strutsが動くのかわかりませんでした。

本は以前から買い込んでいたのも含めて2〜3冊(Struts関係のみ + servlet&JSP系4〜5冊も参照)
サイトもいろいろと巡回してみて
今日の昼過ぎからぶっ通しで
自分なりに勉強したノートをまとめてみて、
基本的な流れの理解が合っているかどうか確かめたくて書き込んでみました。

eclipseとTomcatは構築済みなのですが、
Strutsの配置が上手くいかないようで
welcomeページを表示する事ができませんでした。
冒頭のサンプルは別端末でテキストエディタ+Strtusの環境で作成しました。

279さんのいう「手を動かさない」がプログラムを組む事を指すのでしたら
確かにあまり動かしていません。すいません。

半日モニタと本をずっと見ていたので今日はもう環境作れそうにないです。
明日またがんばります。
281デフォルトの名無しさん:2007/12/23(日) 02:23:11
javaに手を出そうと思ってるんだけど、統合開発環境ってどれがお勧めですか?
282デフォルトの名無しさん:2007/12/23(日) 02:26:42
>>241
メソッドっていろいろなところから呼ばれると思うんだけど、
呼び元で指定する引数名全部同じにするの?
283デフォルトの名無しさん:2007/12/23(日) 02:28:53
>278
たぶん、そんな感じだと思うが、考え方は変えたほうがいいと思う。
いつまでも順次処理で処理を考えているとオブジェクト指向的な思考パターンにならないから。
284デフォルトの名無しさん:2007/12/23(日) 02:34:48
>>281
EclipseかNetBeans
書籍とかネットで解説が多いのはEclipse、スタンダードはこっち
今後普及していく可能性があるのがNetBeans、新しいモノ好きだったりしたらこっち

ただ、プログラミング自体が初めてならば、1〜2ヶ月くらいはエディタ+SDKでやる方がいいと思う。
IDEは機能が多すぎてよく解らなくなるぞ
285デフォルトの名無しさん:2007/12/23(日) 02:39:34
>>284
PascalとCを習得しているのでEclipseと言うのを使おうと思います
ありがとうございました。。
286279:2007/12/23(日) 03:19:52
>>280

その本は本屋では見たことがあるが、実際には手元にないので
そのあたりはコメントできないが、まぁ >>279 でちょっとえらそうなことを言ったのでコメントしよう。
# 山田祥寛さん の本は結構わかりやすいと思うよ。おれは ASP(.NET の前) はこの人の本で覚えた

結論から言うと、 >>278 でよい。
簡単な画面遷移だとこれでよいが、次に struts のカスタムタグをいっぱい使って、
Action と ActionForm と jsp 間での連携ができるようになるのが次の目標かな。
・String で Action から ActionForm にセットしてjspに表示はできるようになった / form で入力された値を取り出せるようになった
・任意のオブジェクトの getName() を画面に表示したい、html:input で入力された値を setName() に入れたい
・コレクションになった場合はどうなる?
・チェックボックスで複数チェックされたのをActionで把握したいんですけど
など

とりあえず今日は学習ということだったので、明日以降はそれを試してみるということで手を動かしてみよう。
サンプルを配置して画面が動くようになったら、サンプルの○○を書き換えたらこうなった、という実験をして、
「struts では、ココが変わるとココと連携するんだな」というのをいろいろやってみるといいと思うよ。

あと struts の zipr にはいっている struts-examples.war を、画面で動かして、気になったところのソースも読んでみることをおすすめする。
でも本を読み終わってからでいい。

あとstrutsスレがあるので、struts関係だったらそっちで聞けばここよりいろいろ教えてくれるかも
287デフォルトの名無しさん:2007/12/23(日) 10:52:08
>>283
ありがとうございます。
番号をつけてみたのは指摘する時に指摘しやすいかなと思いつけてみました。


>>286
今まで運よく(?)ロジックのレイヤーだけで生きてこれて
Java(オブジェクト指向)自体は
それなりにゴニョゴニョ出来るんですが、
結局、FWがわかっていないとプログラム言語まで知らないと思われるのが悔しくて。
「Sunに負けたんじゃない、Jakartaに負けたんだ。」って強がってみても何もならず。
まずは会社と同じ環境作成目指します。


> あとstrutsスレがあるので

△△もっとStrutsの良さを教えてくださいSession5
http://pc11.2ch.net/test/read.cgi/tech/1167469508/

なのでしょうか?
結構轟沈していて閲覧者がいるのかどうか怪しくてこちらに書き込みしてみました。
288デフォルトの名無しさん:2007/12/23(日) 12:26:35
コーディングスタイルについての質問です。

配列を扱う反復子を実装していたのですが、next()で手が止まりました。
書き方を2通り思いついたのですが、どちらの方が良いかで迷っています。
Java的には、下記2パターンのどちらの方が主流なのでしょうか。

(パターン1:例外をキャッチ)
  public Object next() {
    try {
      Object nextObj = array_[index_];
      index_++;
      return nextObj;
    } catch (IndexOutOfBoundsException e) {
      throw new NoSuchElementException("index=" + index_);
    }
  }

(パターン2:先に判定)
  public Object next() {
    if(index >= array_.length) {
      throw new NoSuchElementException("index=" + index_);
    }
    Object nextObj = array_[index_];
    index_++;
    return nextObj;
  }

あるいはどちらでもない第3のパターンが主流ということも・・・?
289デフォルトの名無しさん:2007/12/23(日) 12:50:06
>288
パターン2
パターン1のようなtry-catchの使い方は原則として行うべきではありません。
可能性があるのであれば、条件判定を行い適切な例外をthrowするのが筋です。

もし、今回のケースではないと思いますが、想定外の状況でIndexOutOfBoundsException が発生した場合、あなたの投げたNoSuchElementExceptionは嘘になります。
これはNullPoなどで例外をcachして・・・という最悪のコードパターンです。

また、try-catchはパフォーマンス上、if-throwよりも重いです。
数回呼ばれるならば大きな問題にはなりませんが、next()のように大量に呼び出されるメソッドであればボトルネックになるかもしれません。
290デフォルトの名無しさん:2007/12/23(日) 20:56:14
SWTのTableで各カラムの高さを指定することってできますか?
幅のほうはTableColumn#setWidthがありますけどsetHeightはないので…
291デフォルトの名無しさん:2007/12/23(日) 21:21:27
swingでスペースを押したときにtabを押したときと同じ挙動を取らせるようにしたいです。
現在以下の様にしているのですが、スペースを押す以外の方法でフォーカスを移した場合
整合性が取れなくなってしまいます。

もっと良い方法があれば教えて貰えませんか?

public void keyTyped(KeyEvent ke)
{
    char keyChar = ke.getKeyChar();

    if (keyChar == KeyEvent.VK_SPACE) {
        x++;
        if (x == QUESTION_ARRAY_X_LENGTH) {
            x = 0;
            y++;
            if (y == QUESTION_ARRAY_Y_LENGTH) {
                finishButton.requestFocus();
                break;
            }
        }

    answerField[x][y].requestFocus();
    }
}
292デフォルトの名無しさん:2007/12/23(日) 21:35:46
スペースキーとTabを同じ挙動ってなんか考え方がおかしくねーか?
それに整合性が取れないって意味が解らないんだが、なんの整合性が取れなくなるんだよ
293デフォルトの名無しさん:2007/12/23(日) 21:43:25
>>291
他の方法だと、x や y の値が変わらずに想定外なんじゃ…とエスパー。
x, y を現フォーカスから取得するか、その挙動にしたいキーをor条件でつなげば…
294291:2007/12/23(日) 22:06:57
>>292
具体的には、フォーカスがanswerField[0]にありタブを3回押して[3]に移動した時に
スペースを押すと[4]ではなく[1]に飛んでしまうという事です。

>>293
>他の方法だと、x や y の値が変わらずに想定外なんじゃ…とエスパー。
まさにそういうことです。

>x, y を現フォーカスから取得するか
フォーカス元はTextFieldなのでクラスを拡張すれば出来そうです。
or条件で繋ぐというのはどういうことでしょう?

>>291の方法は実現するために無理やり実装したものなのであまり上手い方法ではないと思います。
スペース(もしくはエンンター)を押した場合の挙動をタブと同じにする方法があれば良いのですが、
簡単にはいかなそうですか。
295デフォルトの名無しさん:2007/12/23(日) 22:08:05
最初にユーザーに時間とサウンドファイルを指定させて、
その後は時間が来るまでシステムトレイあたりで待機して、
時間が来たらユーザーの明示的な停止操作があるまでサウンドをループで鳴らす
・・・という目覚し時計みたいなプログラムをつくる場合、
どんな具合にパッケージ、クラスを分けるべきでしょうか
296デフォルトの名無しさん:2007/12/23(日) 22:41:40
>294
単純にキーイベントを得たら状態チェックしてフォーカスを移動させるんじゃダメなのか?
あまり汎用的にやろうとするとハマルんじゃないかと予想

>295
ご自由にどうぞ。
ぶっちゃけ1個のクラスでもいいんじゃね?
297デフォルトの名無しさん:2007/12/23(日) 22:55:19
>>291
スペースキーのイベントを受け取って
タブキーのイベントを投げるとかw
298デフォルトの名無しさん:2007/12/23(日) 22:58:17
if (keyChar == KeyEvent.VK_SPACE)
Robot#keyPress(KeyEvent.VK_TAB);
299デフォルトの名無しさん:2007/12/24(月) 00:45:50
>>289
お返事が遅れました。
ありがとうございます。そちらの方法で実装を進めます。
300デフォルトの名無しさん:2007/12/24(月) 03:55:30
linuxのfedoracore4を使っています。
fedora core4 java mysql インストール
でぐぐったのですが、でてこなかったので質問します。
phpであったんですが、phpとmysqlをつなぐパッケージ
があるように、たぶんjavaもあると思うのですが、
それはなんでしょうか?
教えてください。
板違いの場合はどこで聞けばいいでしょうか?
よろしくお願いします。

301デフォルトの名無しさん:2007/12/24(月) 04:02:39
MySQL JDBC ドライバ でググレば良いんじゃね。
302デフォルトの名無しさん:2007/12/24(月) 04:06:29
XML 読み込んで DOM 作ったりその逆の処理がボトルネックなんだけどさ。
解析済みの DOM をシリアライズして保存とかそういう事ってできないの?
303デフォルトの名無しさん:2007/12/24(月) 04:24:56
なんでできないと思うの?
304デフォルトの名無しさん:2007/12/24(月) 04:26:35
org.w3.dom.Document が java.io.Serializable を extends していないから。
305デフォルトの名無しさん:2007/12/24(月) 07:48:25
シリアル化ストリームを読み込んでオブジェクトグラフ作る処理はボトルネックにならんのか?
306デフォルトの名無しさん:2007/12/24(月) 09:16:51
てか、ボトルネックになるほど頻繁にXMLで読み書きする方が問題だろ、常考
307デフォルトの名無しさん:2007/12/24(月) 09:31:30
SOAP みたいに基盤が XML になってるとどうしようもないけどな。
308デフォルトの名無しさん:2007/12/24(月) 09:36:20
SOAPとかは通信の為に使うわけで、通信自体の方がボトルネックだろ。
>302は保存したいと書いてあり、全部XMLでローカルファイルに保存しているようなアホ実装かと思われ
おまけにボトルネックになるほど頻繁にな
309デフォルトの名無しさん:2007/12/24(月) 09:46:33
どこにファイルになんて書いてあるんだ? DB に CLOB で突っ込むとかだったら
SOAP の構成とあんま変わらんだろ。
310デフォルトの名無しさん:2007/12/24(月) 09:52:23
シリアライズしてDBに詰めるくらいなら最初からDB使うべ
311デフォルトの名無しさん:2007/12/24(月) 09:58:38
それはファイルも同じじゃ。
てか永続性のあるデータは普通シリアライズでやらんだろ。
312300です。:2007/12/24(月) 11:27:47
301さんに言われたように調べてみて
http://dev.mysql.com/doc/refman/5.1/ja/connector-j-installing-classpath.html
が見つかったのですが、なんかわかりにくくてclasspathとか
いろいろ。
もっとやさしいサイトはないでしょうか?
どおこにおいて、このパスを設定するとか、初心者ですいません。
また、fedoracore4を使っています。
よろしくお願いします。
313デフォルトの名無しさん:2007/12/24(月) 12:23:52
>312
JDBCでググれ
classpathとか解らないならばJavaの基礎から勉強汁
あと、背伸びしてLinux使うな
314デフォルトの名無しさん:2007/12/24(月) 12:33:55
>>312
MySQL 用の *.jar ファイルを (Javaディレクトリ)/jre/lib/ext の下に放り込む。
315デフォルトの名無しさん:2007/12/24(月) 12:50:05
むちゃくちゃ教えてんなぁ
316デフォルトの名無しさん:2007/12/24(月) 12:52:24
さて>>315による正解をどうぞ
317デフォルトの名無しさん:2007/12/24(月) 13:07:07
巷に幾らでもあるJDBCの入門系サイトの説明で理解できないのは300の問題。
318300です。:2007/12/24(月) 17:49:45
javaですが、winではパスを通すことはできます。
コマンドプロンプトからも、本見てですが、
で、いろんなサイトでもWindowsはかいてあるけど、
linuxは書いてあるのがすくないんですよ。
linuxでjavaするのは始めてですし、詳しく乗っているサイト
しりませんか?
または本でもいいです。
お願いします
319デフォルトの名無しさん:2007/12/24(月) 17:51:42
Linuxスレ池
320デフォルトの名無しさん:2007/12/24(月) 17:53:08
linuxで開発しなくてもOK
321デフォルトの名無しさん:2007/12/24(月) 18:54:10
>>300 パーミッションって知っとるけ?
322300です。:2007/12/24(月) 18:56:04
知っています。
323デフォルトの名無しさん:2007/12/24(月) 19:06:24
>>318
rm -rf /
と実行して Linux をユーザモードにしろ。
そうしたら Windows でパスを通すときと同じコマンドが使えるようになる。
324デフォルトの名無しさん:2007/12/24(月) 19:15:39
JDK付属の、classes.zipの中のソースのライセンスは何ですか?
VMやコンパイラのライセンスはGPLだった記憶がありますが、classes.zipの中のソースは
// Copyright 2006 Sun Microsystems, Inc. All rights reserved.
// SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
としか書いていないので詳しい制約が分りません。
325デフォルトの名無しさん:2007/12/24(月) 19:18:22
>324
基本API関連はSunのものだから勝手に変えるとNG
Java7からは知っての通り完全にオープンソース化される(予定)
326デフォルトの名無しさん:2007/12/24(月) 19:27:53
二次元配列を作ってその中にint型データ格納しようと思っているんですが
最上行と最左列はString型のデータを入れたい(データのラベルをつけたい)と思っています

こういうのってどうやって宣言すればいいんですかね?
327デフォルトの名無しさん:2007/12/24(月) 19:38:31
>326
無理だからクラスを作れ
class Data {
  String[] headers;
  int[][] values;
}
ちなみに、配列よりList使った方がいいとは思うけど。
328デフォルトの名無しさん:2007/12/24(月) 19:44:41
>>327
list使うとどうよくなるんですか?
329デフォルトの名無しさん:2007/12/24(月) 19:58:39
要素の追加・削除が簡単。
配列でも可能だけど、サイズが変ると面倒だし、挿入とか特に面倒。

イメージしてんのはCSVだと思うが正しいか?
読み込むコードを書くと考えてくれ。
配列だと先にCSVが何レコードあるかチェックしないと初期化できない。
横は固定だから配列でもいい。
となると、
class Data {
  String headers[];
  List<int[]> lines[];
}
こいつを初期化して、後は1行づつ追加していけば、いいだろ?

要素数がほぼ固定ならば配列、可変ならばListと使い分けるといいが、Listならば配列の機能はまかなうから、全部ListでもOK
あわせてMapも勉強するとベター
330デフォルトの名無しさん:2007/12/24(月) 19:59:36
訂正
class Data {
  String headers[];
  List<int[]> lines;;
}
331デフォルトの名無しさん:2007/12/24(月) 20:12:38
>>325
なんと。そうですか。J2MEのために足りないクラスをコピペしようと思っていたのですが、だめだとは。
諦めて自作します。ありがとうございました。
332デフォルトの名無しさん:2007/12/24(月) 20:14:48
>331
改変しないで使う分にはいいんじゃね?
classファイルを抜いて使う分には問題ないと思うが・・・
333デフォルトの名無しさん:2007/12/24(月) 21:11:48
>>332
運悪く、java.lang.reflectなど、J2MEにないクラスをimportされているクラスで、
使うにはその部分を削らないと駄目なんです。
オープンソースになっても、CPLのソフトなので、GPLじゃ矛盾するので使えません。参った。
334デフォルトの名無しさん:2007/12/24(月) 21:29:10
>>333
パッケージの改変とかなんだとか
ttp://javafaq.jp/S017.html
335デフォルトの名無しさん:2007/12/24(月) 22:24:26
>>329
どーもです
CSVってのも初めて聞きました…(やろうとしていることは近いですが)
336デフォルトの名無しさん:2007/12/25(火) 00:46:42
Javaに組み込めるXMLデータベースってありますか?
337デフォルトの名無しさん:2007/12/25(火) 00:50:45
Apache Xindice
338デフォルトの名無しさん:2007/12/25(火) 00:51:42
つローカルファイル

それ以外だとOracleとかDB2あたりでないとサポートしてないんじゃね?
そもそもDB使えるならばDB使う方が楽だから無理にDBに保存しなくてもいい気がする
339デフォルトの名無しさん:2007/12/25(火) 03:18:53
むかーし、パフォーマンスチューニングネタで 「System.currentTimeMillis() はなるべく使うな、
new Date() でやれ」 とどこかで見たことがあるのだが、クロックから 64 ビット値参照するより
ヒープからオブジェクト確保する方が (& GC 対象のもの作るほうが) 遅ぇよなぁと思ったの
ですが、ふと思い出したんでおまいらの意見でも聞かせてください。
340デフォルトの名無しさん:2007/12/25(火) 03:23:16
実行性能は単なる動く標的ではなく、高速で動く標的
341300:2007/12/25(火) 03:36:23
323さんやみなさんありがとう。
323さんの言っていることが意味不明です。
この辺のことが書いてある本ありませんか?
javaとデータベースとstrutsとデータベースに関する本がほしい
またはサイトをお願いします。
linux板でも聞けという意見もあったので、聞いています。
ほんとにがんばってやりたいと思いますので、よろしくお願いします。
342デフォルトの名無しさん:2007/12/25(火) 04:17:06
>>341
お前らの無自覚な図々しさにはときどき感動する。
343デフォルトの名無しさん:2007/12/25(火) 07:18:40
JSPで作成した変数をJavaで使用することはできないのでしょうか?
もしできるのなら、その記述方法を教えてください。
344デフォルトの名無しさん:2007/12/25(火) 08:08:44
日本語でおk
345デフォルトの名無しさん:2007/12/25(火) 08:20:04
346デフォルトの名無しさん:2007/12/25(火) 12:14:46
>>339
System.currentTImeMillis()は予想外に遅かった記憶がある。ループ中
で激しく呼んで問題になったことがあるよ。
なんにしても、どっちが良いかは実測するしかないです。
347300:2007/12/25(火) 16:15:45
    __,,/  _, ----`ヽ  :.
     :.  / _     ___   、\
       / /   i      \   \\ :.
     :. ,'./       i  ヽ:.   ヽ:.:.. ヽ.ヽ
      ,'/    / .ハ ヽ ヽ:.:.:.:. ヽ::.. ヽヽ :.
     :. |i .i i  .i /  ヽ ト 、 \、:.:.:. ',:.',:.:.lヽ}
       |i .i l  :N_, -弋 \弌弋ナ:}:.:}
    :. |i∧ ', :{ ,ィjモト \  イjミトイイV :.  な…
       .|  :メヽ.', `ozZ}      izN。ハ::{     なんでですか?
      :. |  :ヾ_! ゝ "゙゙    '  `゙ ハ.:', :.
      |  :.:_イ .:.ヽ.   (二フ , イ :.:.:!:.ヽ     なんでだれも
   :.  / rィイ | :.:.ヽ: >r/`<ノ .:.::.}ヽ、\:.   答えてくれないんですか?
      / ∧l;l ! :.:.:.://{二 ̄ .} ..:..::リ//ハ.:\
 :.  / .{. ',ヾ、ヽi .:.:.{ /(^`  |.:.:.:.//: : :.}: . ヽ.:.
   / /  ) ヽ ヾ、ヽ:.ハ ヤ{   ∧/.-‐'": : |:.:. i ',
  ./ .,イ .:..} : :\ヾレ'ハ ∧__ノノハヾ、  : : : l:.:.: .ハ ',
  { /| .:.:ハ : : :i Y {ヾ`Yヽニン'ノ}: : } : : : :/:.:.:/ }:.}
  V | .:.:/:.:|_,ィ' ̄  ヽ三{ `ー-ノ : イ : : :/:.:i.:{  リ
    ヽ:.:{、.:.V     : : ヘ     : : {: : :/:.::∧|
     ヽ! )人    : : :人      : : : / \! :.
      "  ヽ : : : : :/イ{     :.ノ: : : :.\ :.
       :.  \__///: :\______/: : : : : : : ヽ
           / //: : :|;|: : : : : : i: : : __: : : : ',
       :.     / 、 {;{   |;|   . : i/. : : : : : :|
          / `Y;{. . . .|;|. : : : /i: : : : : : : : :l
女の子のAAを張ったのでなんとか教えてください。
教えてくれたら別のAAを張りますので。
linux板の人もなんかわからないみたいです。
よろしくです。
348デフォルトの名無しさん:2007/12/25(火) 16:18:37
>>300
>>301
すぐに答えでてるじゃん
349デフォルトの名無しさん:2007/12/25(火) 18:00:26
>>300
fc4の勉強も必要だと見受けられますが、JavaとDBの勉強もしてください。
@ITなんで、正確性はアレですが…ええ、長いですが理解してください。では。

Javaデータアクセスの基礎
ttp://www.atmarkit.co.jp/fjava/rensai/jdbc01/jdbc01.html
ttp://www.atmarkit.co.jp/fjava/rensai/jdbc02/jdbc02.html
ttp://www.atmarkit.co.jp/fjava/rensai/jdbc03/jdbc03.html

JDBC(MySQL)編
ttp://www.hellohiro.com/jdbcmysql.htm
350デフォルトの名無しさん:2007/12/25(火) 18:43:22
>>349
餌与えるな
351デフォルトの名無しさん:2007/12/25(火) 20:15:52
>>350
スレタイ嫁。
>>300
Javaの世界だと、PHPみたいな「わかんないけど動いちゃったからOK」という
流儀は好まれないんだよ。実際、それで済まない場合が多いしね。
ご苦労だけど、まず一通り勉強してください。
352デフォルトの名無しさん:2007/12/25(火) 21:14:30
>351
初心者は歓迎するかもしれないが、放置すべきアホはいるだろ
353デフォルトの名無しさん:2007/12/25(火) 22:29:16
質問させてください。

実行環境:Eclipse 3.2 JRE5.0 Update12
実現したい機能:Enterキーが入力されたら次の処理へ移る

public class test
{
  public static void main(String[] args)
  {
    PressEnterKey(); //@
    PressEnterKey(); //A
    System.out.println("プログラム終了"); //B 
  }

  public static void PressEnterKey()
  {
    System.out.print( " Press Enter key>");

    try{ System.in.read(); }
    catch(Exception e){ }
  }
}

上記ソースコードを実行すると、@の行では、キー入力待ち状態になってくれるのですが、
Aの行では待ち状態にならずに、次の行Bが実行されます。
Aの時にも待ち状態になるようにしたいのですが、どの点を修正すれば良いのでしょう。
ご存知の方、ご教授の程お願いします。
354デフォルトの名無しさん:2007/12/25(火) 22:34:50
>>353
たぶん、処理が早すぎて@で待ち状態になった後にAまで反応してるんだろう。
@とAの間にThread.sleep(100)とかで取りあえずは動くはず。
355デフォルトの名無しさん:2007/12/25(火) 22:46:01
>>353
Unix系OSなら、期待通りに動くと思うよ。

とりあえず、System.in.read()の結果を出力してみよう。
356デフォルトの名無しさん:2007/12/25(火) 23:08:14
>>353
Windowsだったら改行コードは \r \n なので、Enterを1回押すだけで2文字分になる
readできれば何の文字でも良い、をやめて、\n が読めるまでループする、に変えてみるといいんじゃない
357デフォルトの名無しさん:2007/12/25(火) 23:19:07
入力はバッファリングされてるから System.in.read() したところでユーザが改行叩くまでは
PressEnterKey() を抜けないし、read() で 1 文字だけ消費しても次の PressEnterKey() で
以前の文字がバッファから読み出されるだけだし。Win/MS-DOS みたいな DEC 系は
Enter 一回で CR LF の 2 文字を入力したことになる。

つまり InputStreamReader かまして BufferedReader#readLine() 使えと。Java SE 6 なら
System.console().readLine(" Press Enter key"); 一行で良い。
358353:2007/12/26(水) 00:23:07
>>354-357
沢山のご指導ありがとうございます。助言を元に下記のコードを打ち込んだ所、
希望する動作が得られました。

import java.io.*;

public class test
{
  public static void main(String[] args)
  {
    PressEnterKey();
    PressEnterKey();
    System.out.println("プログラム終了");  
  }

  public static void PressEnterKey()
  {
    System.out.print( " Press Enter key>");

    try
    {
      InputStreamReader isr = new InputStreamReader(System.in);
      BufferedReader br = new BufferedReader(isr);
      br.readLine();
    }
    catch(Exception e){ }
  }
}

これで次のステップに進めます。ありがとうございました。(m_ _)m
359デフォルトの名無しさん:2007/12/26(水) 01:29:31
結城のプログラミングレッスンは初心者のマストアイテムだと思う。
360デフォルトの名無しさん:2007/12/26(水) 01:33:38
結城さんの本はいいよね。ちょっとゆるすぎて刺激が足りないけど、あの文章は癒される。
361300:2007/12/26(水) 08:39:22
勉強します。
ありがとうございました。
362デフォルトの名無しさん:2007/12/26(水) 17:35:22
すいません初歩的すぎるけど
c=a/bってやって、0<c<1だったらc=0って帰ってきますよね
c=0,0〜みたいに割合を求めたい場合ってどうするんでしたっけ?
363デフォルトの名無しさん:2007/12/26(水) 17:38:45
double使えばいいじゃん
364デフォルトの名無しさん:2007/12/26(水) 17:58:32
0.0になっちゃうんですよ
要素を別に表示してみたらちゃんと出る(例えば394/7266)んですけど
365デフォルトの名無しさん:2007/12/26(水) 18:04:15
c = (double)a/b; じゃなくて
c = ((double)a)/b; もしくは c = a/(double)b;
366デフォルトの名無しさん:2007/12/26(水) 18:19:54
できました、こんなことにお付き合いありがとう
367デフォルトの名無しさん:2007/12/26(水) 18:28:44
Servletでの質問なのですが、
現在、PrintWriterのout.println()を使ってHTMLタグを行ごとに吐いている箇所があり
バッファにため込んで、一気にHTMLを吐く処理に変えようと思っています。
ですが、Stringが途中で切れる可能性があるんじゃないかなと思いました。

ご教授願いたいのですが、Stringの最大値って何バイトまでOKなんでしょうか。
Tomcatでの設定に依存するものなのでしょうか。

368デフォルトの名無しさん:2007/12/26(水) 18:34:22
>>367
理論的にはStringは2G文字までできるんじゃないかと思うが、
なんでバッファにため込む必要があるの?
BufferedWriterを挟むだけではダメなの?
369367:2007/12/26(水) 19:04:50
なるほど。確認致しました。
プログラミングのブランク空きすぎると駄目ですね。
BufferedWriterを試してみます。ありがとうございます。

370デフォルトの名無しさん:2007/12/26(水) 19:30:34
もうひとつ初歩的な事教えてください
テキストデータからreadLineで読み込んだデータが文字か数字か判定したいと思ったらどうやるんでしょうか?
371デフォルトの名無しさん:2007/12/26(水) 19:32:00
>>367

>>65 を書いたものです。

ServletResponse#getWriter() をやると PrintWriter が取得できますよね。
Serlvet コンテナが Tomcat の場合、PrintWriter に書き込んでも Tomcat の内部で
バッファリングされているように見えます。
なので BufferedWriter をはさむと、二重にバッファリングされることになるので、
はさむ必要はないのではと思います。

ただし、どうしても自分で「1MB分の String を溜め込んでから吐き出したいんだ」とやりたい場合は
はさむ必要があるかもしれませんが、仮にそうしたとしても、Tomcat 内部で逆に分割されたりするような気がする。

(Tomcat のソースを見て、それっぽく思ったのですが、本当にそうかといわれると自信ない)

間違ってたらすみません。
372デフォルトの名無しさん:2007/12/26(水) 19:46:57
>>370
つ Integer.parseInt, Double.parseDouble and NumberFormatException
373367:2007/12/26(水) 21:03:39
>>371
なるほど。少し調査が必要のようですね。
貴重なご意見ありがとうございます。参考にさせていただきます。
374デフォルトの名無しさん:2007/12/27(木) 01:32:03
ttp://pc11.2ch.net/test/read.cgi/tech/1190807478/
ここの758から誘導されてきました。
ikisakiXとikisakiYまでXとYをiずつ増やすか減らしていくプログラムなのですが、
なかなかうまくできません。
xとyはランダムです

int i = 5;
if (X > ikisakiX){
 if (X - ikisakiX < i){
  x -= X -ikisakiX;
 } else {
  x -= i;
 }
} else if (X <ikisakiX){
 if(ikisakiX - x < i) {
  X -= ikisakiX - X;
 } else {
  X += i;
 }
} else {
}
Yも同じことをやる
↑こういう風にやってるんですけど下手くそ過ぎですよね
問題はXかYが行き先X,Yを超えてしまったときの判断がうまくいってないと思ってるんですが。
どなたかスマートにしてもらえますか
375デフォルトの名無しさん:2007/12/27(木) 01:43:29
学習中ですが環境が無くて、大変恐縮な質問ですが、
class testClass {
private int pVal;
public static void main (String[] argv) {
testClass tc = new testClass();
pVal=1;/*normal*/
tc.pVal=2;/*できないと思うが・・・?*/
}
}
のtc.pVal=2;は出来るでしょうか?
カプセル化の考えに反するから出来ないように
想像しますが、どなたかお答えいただける方お願いいたします。
376デフォルトの名無しさん:2007/12/27(木) 01:43:57
差の絶対値がiより小さかったら x = ikisakiX; ってすれば終わりだろ。
377デフォルトの名無しさん:2007/12/27(木) 01:44:34
>>374
int x; //現在位置 == >>374のX
int targetX; //目標位置 == >>374の ikisakiX
int moveX; //移動量 ==>>374の i
int deltaX = targetX - x;
x += ((int)Math.signum(deltaX)) * Math.min(Math.abs(deltaX), moveX);

検証してないから符号間違ってるかも
378デフォルトの名無しさん:2007/12/27(木) 01:47:17
>>375
できるよ。っつーか、pVal=1;/*normal*/ の方がコンパイルエラー。
379デフォルトの名無しさん:2007/12/27(木) 01:48:55
1. ikisakiX-Xの符号(1, 0, -1)を変数signに持つ。
2. sign==0なら終了
3. ikisakiX-Xの符号がsignと等しい間、Xにi*signを加える
4. ikisakiX-Xの符号がsignと等しくなくなったら、XにikisakiXを代入する

あとは、Yについても同じ処理を行う。
380375:2007/12/27(木) 01:48:58
すいません。pVal=1;/*normal*/は無しでお願いします(*^_^*)
381375:2007/12/27(木) 01:52:37
>>378
できますか。なるほど。
ほんと浅い質問ですいません。
ありがとうございます。
382デフォルトの名無しさん:2007/12/27(木) 01:53:41
>>374
int i = 5;
if (Math.abs(X-ikisakiX) < i) X = ikisakiX;
else if (X < ikisakiX) X += i;
else X -= i;
383デフォルトの名無しさん:2007/12/27(木) 02:06:31
どうもありがとうございました。
大変参考になりました。
384374:2007/12/27(木) 02:07:06
↑374です
385デフォルトの名無しさん:2007/12/27(木) 02:20:18
超初心者なのでエラーが出ても対処方法がわかりません・・・
画像を表示するプログラムなんですが、jarファイルにすると画像が表示されません。
これの解決方法はわかるのですが、ソースを書いてもいろいろとエラーが出てしまいます。

型Objectから非staticメソッドgetClass()にstatic参照することはできません
と表示されてしまいます。

JLabel animelb = new JLabel(new ImageIcon("animation.gif"));
// JLabel animelb = new JLabel(new ImageIcon(getClass().getResource("animation.gif")));

JPanel animepn = new JPanel(new BorderLayout());
JButton kekka = new JButton("計算");
animepn.add(animelb, BorderLayout.CENTER);
animepn.add(kekka, BorderLayout.SOUTH);

//ボタンにアクションリスナーを実装
kekka.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){

year = Integer.parseInt(yeartf.getText());

weight = Double.parseDouble(weighttf.getText());
height = Double.parseDouble(heighttf.getText());
intake = Double.parseDouble(intaketf.getText());
walk = Double.parseDouble(walktf.getText());

上のほうだと、当然jarファイルにすると表示されません。下のほうにするといいとは思うのですが
そうすると先ほどのエラーが出てきます。
解決方法を教えていただけないでしょうか?
386デフォルトの名無しさん:2007/12/27(木) 02:41:36
>>385
getClass()は呼んだインスタンスのClassクラスのオブジェクトを返すメソッドだから。
staticなメソッドではインスタンスを特定されないから呼べない。
そのコードが書かれているクラスがHogeクラスなら
JLabel animelb = new JLabel(new ImageIcon(Hoge.class.getResource("animation.gif")));
クラス名.classでそのクラス名のClassクラスのオブジェクトを返す。
387デフォルトの名無しさん:2007/12/27(木) 03:11:11
>>385
解決しました。ありがとうございます!!
388デフォルトの名無しさん:2007/12/27(木) 07:29:24
問題
以下のコードを実行した際、A, Bの関係を表す正しい表記を2つ選択して下さい。

class A {}
class B {
private A myA = new A();
}


A. A と B との関係がない場合もある

B. B は A との関係がない場合もある

C. B は A と "1対多" の関係をもっている

D. A と B は "has-a" の関係をもっている

E. A と B は "is-a" の関係をもっている

答えはAとDなんですが何故そうなるのか全く意味不明です。
初心者の私に説明してほしいです。
お願いします。
389デフォルトの名無しさん:2007/12/27(木) 07:53:25
A. A と B との関係がない場合もある
じゃなくて
A. A は B との関係がない場合もある

だろ
390デフォルトの名無しさん:2007/12/27(木) 12:29:37
>>388
A〜Eのどの部分が理解できない?
まずは自分の解釈を説明してみて
391デフォルトの名無しさん:2007/12/27(木) 13:32:50
phpの正規表現で、

test<br>
<nopc>aaa<br></nopc>
bbbb<br>
<nopc>qqq<br></nopc>
222<br>
<nopc>zzz<br></nopc>

<nopc>aaa<br></nopc>
<nopc>qqq<br></nopc>
<nopc>zzz<br></nopc>
というふうになるように正規表現でやりたいのですが、
$str=ereg_replace("#(<nopc>.+</nopc>)#", "", $str);
↑では巧くいかずでして…、ご教授お願い致しますっ!
392291:2007/12/27(木) 13:35:44
>>296,297,298
返事がおそくなってすみません。
博学な皆さんのお陰で綺麗に実装できました!
Robotって色んなことが出来て面白いですね。
どうもありがとうございました。

public void keyTyped(KeyEvent ke)
{
    char keyChar = ke.getKeyChar();

    // スペースからエンターに変えました。
    if (keyChar == KeyEvent.VK_ENTER) {
        try {
            Robot robot = new Robot();
            robot.keyPress(KeyEvent.VK_TAB);
        } catch (Exception e) {
            System.out.println("ロボット作成失敗");
            e.printStackTrace();
        }
    }
}
393デフォルトの名無しさん:2007/12/27(木) 15:33:38
セキュリティマネージャに怒られたらアウトか。
ロボット使うよりディスパッチし直した方が良いんじゃない?
394デフォルトの名無しさん:2007/12/27(木) 17:54:09
文字を特定のエンコードでバイナリ化した時のバイト数って getBytes() の長さ見るしかないの?
395デフォルトの名無しさん:2007/12/27(木) 18:01:02
>>394
正確なバイト数知りたくて、かつ特定のエンコードに依存しない方法となると
いったんエンコードして出力されたバイトデータの長さを見るしかない。

大雑把にバイト数知りたい場合は CharsetEncoder#averageBytesPerChar() * 文字数 とか、
CharsetEncoder#maxBytesPerChar() * 文字数とかって方法もあるけど。
396デフォルトの名無しさん:2007/12/27(木) 21:52:17
UTF-8とかSJISとかエンコードが固定なら、自分で1文字ずつ長さを数えることはできる
でもそんな面倒いこと俺はやらない
getBytesの何がイヤなの?
397デフォルトの名無しさん:2007/12/27(木) 22:01:27
UTF-8は単純には数えられんだろ。
それこそgetBytesとか使わないと。
398デフォルトの名無しさん:2007/12/27(木) 22:50:26
1byte2byteを節約する時代でもあるまいし、文字の正確なバイト数が必要なケースってどういう状況なんだ?
399デフォルトの名無しさん:2007/12/27(木) 23:26:02
プロトコルに乗せるのさ
400デフォルトの名無しさん:2007/12/28(金) 00:41:18
UTF-8は単純に数えられるだろ。サロゲートペアが無ければ。
401デフォルトの名無しさん:2007/12/28(金) 02:35:47
HTTP で Content-Length 付けたり PreparedStatement#setBinaryStream(in, length) とか
やるためだけに getBytes() してたらアホだな。まぁこれらは両方とも振り替え手段がなくは
ないが、通信のエンドポイントで事前に送信サイズが必要なのはよくある話。

あとフィルタかましてサイト内の JSP の送信バイト数調べたいとか思っても Writer しか
使えないから char からバイト数調べる方法が必要だし (結構前の Tomcat の話だが)。
402291:2007/12/28(金) 20:57:33
>>393
出来ました。
これでロボット作れなくても大丈夫ですね。
ありがとうございました。

public void keyTyped(KeyEvent e) {
    char keyChar = e.getKeyChar();
    if (keyChar == KeyEvent.VK_ENTER) {
        keyboardFocusManager.focusNextComponent();
    }
}
403デフォルトの名無しさん:2007/12/28(金) 22:41:35
eclipce3.2にて、プログラムにエラーがなくちゃんと動く状態であれば、shit+ctrl+oで整列ができると思うのですが、
しっかりエラーがないプログラムなのに整列してくれません。
どうすれば自動整列できるのでしょうか?
404デフォルトの名無しさん:2007/12/28(金) 22:44:03
エスパーさん、ご指名です。

>403
他のソースは出来るのか?
出来るならば、対象のソースがどんな自動整列ができないのか示せよ。
405デフォルトの名無しさん:2007/12/28(金) 23:01:06
というかスレチ。
eclipseスレで該当ソース出して聞いて来い。
406デフォルトの名無しさん:2007/12/28(金) 23:05:23
getKeyChar()でVK_ENTERって取得できるのですか?
407デフォルトの名無しさん:2007/12/29(土) 09:36:02
URI http://foo/1/2/3/bar.txt に対して http://foo/1/hoge.txt という URI で
relativize() しても ../../hoge.txt で返ってこないようですが、../../hoge.txt で取得するには
どげんかせんといかんか?
408デフォルトの名無しさん:2007/12/29(土) 10:47:18
>>407
URI#relativize(URI) だと、../../ みたいな相対化はしてくれないんだよね。
たとえば以下みたいなユーティリティメソッドを自作するか、
きっちり相対化してくれるライブラリ探したほうがいいよ。

public static URI relativize(URI base, URI child){
 String frontSide = ""; URI backSide;
 while(child.equals(backSide = base.resolve(frontSide).relativize(child))) frontSide += "../";
 return URI.create(frontSide + backSide);
}
409デフォルトの名無しさん:2007/12/29(土) 11:18:08
>>408
そっすか。まぁ作れりゃ作れますが、ファイル間の参照のログ出力が冗長だなと思っただけなんで放置しますわ。
使い方間違えてるとかじゃなくてよござんした。
410デフォルトの名無しさん:2007/12/29(土) 11:20:05
JSP 2.0 のタグファイルの body-content 属性に JSP が指定できない (<%= %> 等の
スクリプト系処理が内部で使えない) 理由をご存知の方おられてたら何でか教えていただけませんか?
411デフォルトの名無しさん:2007/12/29(土) 12:00:08
あ、フラグメントに対応できないせいか。サーセンw
412デフォルトの名無しさん:2007/12/29(土) 13:45:41
Java というか、プログラミング初心者ですが、よろしく願いします。

他のソフトで書き込まれた、整数などを含むファイルを
Java で作ったプログラムで読みたいんですが、
方法がイマイチわかりません。

やりたいのは、ファイルをbyte配列に読み込んで、
特定の位置から始まる4バイトをint型変数に代入したいんです。

一つ分かったのは、言語によって、整数のバイト配列が逆になる
ことがあるということで、今回の場合、他のソフトで書かれた整数は
下位バイト順に並んでいます。確かJavaは上位バイト順に
並んでいるんですよね。

どうか、よろしくご教授ください。
413デフォルトの名無しさん:2007/12/29(土) 13:52:29
>>412
そういうのはCでやらないと
414デフォルトの名無しさん:2007/12/29(土) 13:58:03
Java で何か問題でもあるのか?
415デフォルトの名無しさん:2007/12/29(土) 13:59:04
同意.
バイナリ処理とかはJavaでも可能だけど面倒
プログラミング言語には得意な分野と不得意な分野がある事は覚えておいた方がいい。
416デフォルトの名無しさん:2007/12/29(土) 14:00:15
>414
ならば、お前が教えてやれ。
俺はJavaで教える気にはならん
417デフォルトの名無しさん:2007/12/29(土) 14:05:29
つ ビット演算
418デフォルトの名無しさん:2007/12/29(土) 14:12:09
>>412
java.io.DataInput#readInt() とか使ってビッグエンディアンで読み込んでおいて
後で Integer#reverseBytes(int) するとか、
java.nio.ByteOrder セットした java.nio.ByteBuffer 使うとかすれば?
419デフォルトの名無しさん:2007/12/29(土) 14:13:10
オイオイ…
ByteBuffer#order() すりゃ済む程度の処理が面倒だから言語変えろって?
C ならビット演算意識しなくて良いわけ? せいぜい unsigned が使える程度だろ。
言語選定にまで飛躍するような話じゃねぇな。
420デフォルトの名無しさん:2007/12/29(土) 14:14:05
javaで低レベルな演算は面倒。
421デフォルトの名無しさん:2007/12/29(土) 14:15:46
数行のコード書くのが面倒って・・・。
422デフォルトの名無しさん:2007/12/29(土) 14:20:09
C を勧めた人は C を知らないと見た。
多分、ビット演算 → よくわかんないから C の方が得意そう、って発想だけで言っている。
普通に C 使える人間なら書かなきゃいけないコードが別段変わらないという事くらいすぐ分かる。
423421:2007/12/29(土) 14:21:33
ttp://www.02.246.ne.jp/~torutk/javahow2/integer.html

上のサイトに方法が出てたんですが、実は、Javaっていっても、
iアプリのJavaでして、ByteBufferの実装が違うみたいで
応用できませんでした。

わざわざ、こんなことをするのは、携帯のCPUが非力で
前処理をPC上で行い、中間データを渡した上で、携帯上で
残りの処理をしたかったからです。

一応、ビット演算などを使ってやってみたんですが、一部の値で
間違って変換されてしまって...たぶんbyte型が符号付ってことが
影響してるんだと思うんですが、なにしろ初心者でよく分からないんです。
424デフォルトの名無しさん:2007/12/29(土) 14:30:21
int num = 0x12345678;
num = ((num >> 24) & 0xFF) | ((num >> 8) & 0xFF00) | ((num << 8) & 0xFF0000) | ((num << 24) & 0xFF000000);
System.out.printf("%x%n", num); → 78563412

※最初のが >>> でないと気になる人が居るかもしれない
425デフォルトの名無しさん:2007/12/29(土) 14:41:58
Javaスレだしな、Cを知らない奴は多いんじゃねーか?

自分もCは学生時代に触ったきりだからビット演算なんて10年近く使ってない
遺伝アルゴリズムで少し触った程度だわ
426デフォルトの名無しさん:2007/12/29(土) 14:48:50
Cならhtons() や htonl() がある
427デフォルトの名無しさん:2007/12/29(土) 14:52:07
Cもjavaもできないアホなのに
どうして>>415-416みたいな自信満々なレスを書けるんだろ
428421:2007/12/29(土) 15:00:22
こんな関数作ってみたんですが、結果が思わしくない。
なんででしょう?

private int Bytes2Int(byte[] buf, int Start) {
return (buf[Start] | ((buf[Start+1]) << 8) | ((buf[Start+3]) << 16) | ((buf[Start+2]) << 24));
}

private void int2Bytes(int Value, byte[] buf, int Start) {
buf[Start] = (byte)(Value & 0xff);
buf[Start+1] = (byte)((Value >> 8) & 0xff);
buf[Start+2] = (byte)((Value >> 16) & 0xff);
buf[Start+3] = (byte)((Value >>> 24) & 0xff);
}
429デフォルトの名無しさん:2007/12/29(土) 15:04:25
>>428
ビット演算するために byte から int へ昇格するときに、byte の最上位ビットが立ってると
負値と見なされるから (例: 0x80 → 0xFFFFFF80)。だから byte をバイナリとして扱う時は
必ず 0xFF でマスクしなきゃだめ。
430デフォルトの名無しさん:2007/12/29(土) 15:12:54
>>429
ありがとうございます。

(buf[Start] & 0xff) | ((buf[Start+1] & 0xff) << 8) | ((buf[Start+3] & 0xff) << 16) | ((buf[Start+2] & 0xff) << 24)

これで、正しく変換されました。
431デフォルトの名無しさん:2007/12/29(土) 15:18:02
スミマセン独学ではじめた初心者です
Java勉強し始めたんですがプログラム書くときってみんなメモ帳で書いてるんですか?
ExcelのVBA使った時はエディターというのがあってプログラム書きやすかったのと
ステップ実行というのもできて一行ずつ実行してデバッグもできたのですが
Javaにはエディターとかないのでしょうか?
メモ帳だと入力支援ないし間違った関数書いてもわからないからきつい・・・

Javaでプログラム動かす時はコマンドプロンプトでしか実行できない?
exeファイルみたいな実効プログラムは作れないんですか?

ExcelVBAだとオブジェクトというのはセルとかワークシートとかわかり易かったのですが
Javaのオブジェクトって何・・・
432デフォルトの名無しさん:2007/12/29(土) 15:19:43
>>430 自レス

自分で書いたのをよく見ると、buf[Start+3]とbuf[Start+2]が
逆ですね。

元データがWORDだったんで、影響もなく気づきませんでした(冷や汗)。
433デフォルトの名無しさん:2007/12/29(土) 15:28:14
>>431
Eclipse
NetBean
434デフォルトの名無しさん:2007/12/29(土) 15:28:47
立体のひし形に色を付ける所までは出来たのですが
陰影を付けると下の3面と上の2面の色が変わってしまいます。
何故でしょうか?
435デフォルトの名無しさん:2007/12/29(土) 15:40:08
そういうコード書いたから。
436デフォルトの名無しさん:2007/12/29(土) 16:04:55
前にも少し出てたようなんですけど
javaで動画の画素情報を操作する方法はないんでしょうか
437デフォルトの名無しさん:2007/12/29(土) 16:19:37
Tomcat 6 の特定の Web アプリケーションだけをシェルから再起動さすことって出来る?
438デフォルトの名無しさん:2007/12/29(土) 16:46:21
あるひとつのクラス内で、同じシグネチャのstaticメソッドとインスタンスメソッドとの共存はできないんですか?
439デフォルトの名無しさん:2007/12/29(土) 17:09:52
Javaにできないことってあんの?
440デフォルトの名無しさん:2007/12/29(土) 17:10:11
できたら紛らわしすぎ
441デフォルトの名無しさん:2007/12/29(土) 17:55:14
>>439
おまえの童貞を捨てることはできないよ
442デフォルトの名無しさん:2007/12/29(土) 18:27:11
>>439
風俗で捨てた童貞を取り戻す事はできないよ
443デフォルトの名無しさん:2007/12/29(土) 18:27:36
>>439は女
444デフォルトの名無しさん:2007/12/29(土) 18:28:55
>>436
BufferToImageで取得できるImage型をBufferedImage型にキャスト出来ない?
445デフォルトの名無しさん:2007/12/29(土) 18:29:19

掲示板に連投できるツール知りませんか?
掲示板荒らしツールStorm
http://www.geocities.co.jp/SiliconValley/9216/down.html

使い方が難しいので もう少し↑のやつよりも簡単なものがいいです
できたらわかりやすく解説しているページでもあれば お願いします
446デフォルトの名無しさん:2007/12/29(土) 18:36:16
知りません><
447デフォルトの名無しさん:2007/12/29(土) 19:46:11
ブラウザからURLをデスクトップにドラッグアンドドロップすると
デスクトップにURLのショートカットファイルできるじゃないですか。

ブラウザからJavaで作ったGUIアプリにドラッグアンドドロップしたら
そのURLを認識させたいのですがどうしたら良いのでしょうか。
お願いしますm(__)m
448デフォルトの名無しさん:2007/12/29(土) 22:09:13
>>447
java.awt.dnd
java.awt.datatransfer

でURLリストをフレーバーとしてjavaに渡す。
URLリストの仕様はRFC嫁。
449デフォルトの名無しさん:2007/12/29(土) 22:24:41
システムクリップボード
450デフォルトの名無しさん:2007/12/29(土) 22:33:16
DnDだろ
451447:2007/12/30(日) 00:39:56
>>448-450
ありがとうございます。調べてみますm(__)m
452 ̄ ̄ ̄ ̄ ̄)/ ̄ ̄ ̄ ̄ ̄ ̄ ̄:2007/12/30(日) 05:12:57
  r"⌒⌒⌒⌒\
 /((""" ヾヾ ゝ
`/ (从(井ハハハヘ)丶丶
((从-== ̄ ==-〈 ii|
丶|/・〉 <・\ 丶リ
 V" ̄/    ゙̄ |ヘ)
 |  `ー^   _ノ
 丶(`ー―→))/|リ  <ブハハハ そこは否定しろよ
  \   / ハ
   ハ ̄ ̄ / /\
453デフォルトの名無しさん:2007/12/30(日) 08:11:28
SuSE Linux 10 で Xvfb 立ち上げてなくても AWT で画像処理するプログラムが
普通に動いたんだけど、これって JDK (5, 6) が X11 必要としなくなったのか、それとも
SuSE のディストリ構成がデフォルトで Xvfb に代わる仮想フレームバッファ使えるのか
どっち?
454デフォルトの名無しさん:2007/12/30(日) 12:44:25
SE 5.0からXAWTの実装が変わってMotif および Xt ライブラリへの依存の排除ってのが加わった。
455デフォルトの名無しさん:2007/12/30(日) 13:11:39
母親は殴ると金が出てくる打ち出の小槌
俺の専門書が増えるたびに母親のアザも増えていく
456デフォルトの名無しさん:2007/12/30(日) 13:37:23
>>454
そうか、じゃ JDK が必要としなくなったわけか。ありがとう。
457デフォルトの名無しさん:2007/12/30(日) 17:08:24
<foo:bar xmlns:foo="http://...">
  …
</foo:bar>

の要素に対して Element#getNamespaceURI() を呼んだら "http://..." が返るかと予想していたのですが
実際は null しか返ってきません。何か誤解してますか?
458デフォルトの名無しさん:2007/12/30(日) 17:28:15
ん、よく調べたら DocumentBuilderFactory#isNamespaceAware() が false を返しているな。
Java 6 標準のパーサじゃ名前空間関係のメソッドは全部使えないって事?
459デフォルトの名無しさん:2007/12/30(日) 17:33:19
すんません、DocumentBuilderFactory#setNamespaceAware(true) でイケました orz
460デフォルトの名無しさん:2007/12/30(日) 17:48:44
というかjava関係ないなDOMなら。
461デフォルトの名無しさん:2007/12/30(日) 17:50:50
462デフォルトの名無しさん:2007/12/30(日) 18:17:40
Swing、awtを使ったアプリの設計について
良い参考書、サイト、サンプルソース等がありましたら教えてください。

APIの使い方等は調べればすぐ解決できるのですが、綺麗な実装が出来なくて悩んでます。
GridBugLayout等や、イベント処理するメソッド等を実装していくとソースが
ぐちゃぐちゃになってきてしまって。。

デザインパターンの本は1,2冊読んだことあるのですが、
こういった仕組みで、このようなメリットがありますよって解説されても
swingアプリ等にはどう活用していけばいいのか分かりません。

最近人のソースコードを眺めたりしてるのですが、
ここでSingletonで実装してるのはなぜだろう?とか、
この人は、普通の人はやらないような実装(癖?)をしてるんじゃないだろうか?
など、模範としていいのかも正直分かりません。。
463 ̄ ̄ ̄ ̄ ̄)/ ̄ ̄ ̄ ̄ ̄ ̄ ̄:2007/12/30(日) 18:19:58

  r"⌒⌒⌒⌒\
 /((""" ヾヾ ゝ
`/ (从(井ハハハヘ)丶丶
((从-== ̄ ==-〈 ii|
丶|/・〉 <・\ 丶リ
 V" ̄/    ゙̄ |ヘ)
 |  `ー^   _ノ
 丶(`ー―→))/|リ  <ブハハハ そこは否定しろよ
  \   / ハ
   ハ ̄ ̄ / /\
 
464デフォルトの名無しさん:2007/12/30(日) 18:22:32
465デフォルトの名無しさん:2007/12/30(日) 19:45:51
>>464
正にこういった参考書探してました。
ありがとうございます!
466デフォルトの名無しさん:2007/12/30(日) 20:58:09
アルファチャンネル入りの24bit colorでBufferedImageを
つくり、いろいろな形式の絵をマージしてBufferedImageのまま
GIF形式ににしたいのですが、うまい方法がわかりません。


// 透明も扱えるようにARGBで作っておく
BufferedImage destIM = new BufferedImage(256,256,BufferedImage.TYPE_INT_ARGB);
raphics2D g2d = destIM.createGraphics();

// FILECOUNT だけ gifだのjpegだのpngを読み込んでくる
// fileName[]の中にはファイル名が入っている
for ( i=0 ; i < FILECOUNT ; i++ ) {
BufferedImage src = ImageIO.read(new File(fileName[i]));
g2d.drawImage(src,null,0,0);  // 重ねがき
}

ここでBufferedImageの中身を透明ありのGIFに変換したいのです。

ImageIO.write(src,"gif",new File("temp.gif"));
src=ImageIO.read(new File("temp.gif"));

といちいちファイルに書き出したんでは、ハードディスクに
書くこととなってしまい、量が少なければ問題なさそうですが、
遅そうです。

そもそもImakeIO.writeでgifにできるんだから、どこかで
変換している関数を呼んでいると思うんですがよくわかりませんでした。

よろしくお願いします。
467デフォルトの名無しさん:2007/12/30(日) 21:00:03
その程度で良いなら幾つもあるよ。
468デフォルトの名無しさん:2007/12/30(日) 21:00:35
469デフォルトの名無しさん:2007/12/31(月) 11:14:57
>>466
Image.write には OutputStream 受け取るオーバーロードがあるから、
BufferedOutputStream でも渡しとけよ。
470デフォルトの名無しさん:2007/12/31(月) 13:43:26
  r"⌒⌒⌒⌒\
 /((""" ヾヾ ゝ
`/ (从(井ハハハヘ)丶丶
((从-== ̄ ==-〈 ii|
丶|/・〉 <・\ 丶リ
 V" ̄/    ゙̄ |ヘ)
 |  `ー^   _ノ
 丶(`ー―→))/|リ  <ブハハハ そこは否定しろよ
  \   / ハ
   ハ ̄ ̄ / /\
471デフォルトの名無しさん:2007/12/31(月) 15:01:23
もうそれ面白くねーから
472デフォルトの名無しさん:2007/12/31(月) 15:12:04
JAVA MEDIA FRAMEWORK に関して、質問してよろしいでしょうか。

float型配列にrateを取っておき、それをplayerのsetRate()で、
映像に動的にrateの変化を反映させるプログラムを作りました。

しかし、これがまたカクカクとして、とても見れたもんじゃありません。
というより、ちゃんと時間通りに再生時間バーが動いているものの、
肝心の映像が動いているように見えないことすらあります。

※待機時間は、Threadのsleep()と、
Timeクラスのオブジェクトを使ったsetMediaTime()の
両方を試しましたが、まだ前者のほうがましでした。

こういう場合に、どのような解決策がありますか?

playerを再生する前に、あらかじめrateとそのrateで
開始させる時間を決めてから再生することは可能なのでしょうか。

それとも、playerでなくprocessorを使えば解決できるのでしょうか。
ご存知の方がいらっしゃいましたら、よろしくお願いします。
473デフォルトの名無しさん:2007/12/31(月) 15:13:25
>>471
  r"⌒⌒⌒⌒\
 /((""" ヾヾ ゝ
`/ (从(井ハハハヘ)丶丶
((从-== ̄ ==-〈 ii|
丶|/・〉 <・\ 丶リ
 V" ̄/    ゙̄ |ヘ)
 |  `ー^   _ノ
 丶(`ー―→))/|リ  <ブハハハ そこは否定しろよ
  \   / ハ
   ハ ̄ ̄ / /\
474デフォルトの名無しさん:2007/12/31(月) 16:02:29
二つのbyte配列(b1[], b2[])が等しいかどうかを判定する際、以下のような方法に危険な点はありますでしょうか?
if (new String(b1).equals(new String(b2))
....
475デフォルトの名無しさん:2007/12/31(月) 16:06:35
>>474
ある。
476デフォルトの名無しさん:2007/12/31(月) 16:09:07
>>474
1.1以前使ってるとかいうのでなければ、
java.util.Arrays.equals(b1, b2) した方が楽。
477デフォルトの名無しさん:2007/12/31(月) 17:17:56
printfで、出力桁数調整をするにはどうすればいいんでしょうか?
大きな数、たとえば10000000000をprintfで表示するとそのまま表示されてしまいますが
printと同じように1.0E10みたいに表示したいんです。

また、小数点以下何桁まで表示するかを調整したいのですが
どうすればいいんでしょうか?
上の例でいくと1.0E10を1.0000E10としたりするやり方です。
説明下手ですいません
478デフォルトの名無しさん:2007/12/31(月) 18:13:10
>>477
printf("%.4E", (double)10000000000L)
479デフォルトの名無しさん:2007/12/31(月) 18:18:22
480>>474:2007/12/31(月) 18:19:43
>>475
どういう危険なのでしょうか?

>>476
そんな便利なメソッドがあったのですね。
こちらを使うことにします。ありがとうございます。
481デフォルトの名無しさん:2007/12/31(月) 18:33:44
>>480
変換できないバイトがあった場合、
それが何であれ同じ文字(典型的にはU+FFFD)に変換される可能性がある。
よって new String(b1).equals(new String(b2) が true を返しても、
b1 と b2 の内容が同じとは限らない。

もうひとつ、エンコーディングを明示的に指定してないから
実際に使われるエンコーディングがプラットフォームやロケール設定で変わる。
放置すると、あるマシンでは動くけど、別のマシンでは動かないといった
原因を特定しにくいバグになる可能性が高い。
482デフォルトの名無しさん:2007/12/31(月) 19:03:09
Effective Java の最新版が2007年中にでるとかいう話を見た気がするのですが
まだ発売されてないですよね?

いつ頃発売されるか分かりませんでしょうか?
483466:2007/12/31(月) 19:08:49
>>469
 ありがとうございました。意味がわかってない部分もありますが、
調べて試してみます。
484デフォルトの名無しさん:2007/12/31(月) 19:13:55
>>482
http://www.amazon.co.jp/dp/0321356683 によると、2008/5/23 らしいけど。
485デフォルトの名無しさん:2007/12/31(月) 19:41:03
皆さん、 >>472 もお願いします!!><
486デフォルトの名無しさん:2007/12/31(月) 20:16:38
>>484
amazonって未来に発売される書籍情報ものってるんだ。
初めて知った。今後はそういう視点でもチェックしなきゃ。
487デフォルトの名無しさん:2007/12/31(月) 20:16:54
時系列の操作はClockとTimeBase使うんだぞ。ググレ。
488デフォルトの名無しさん:2007/12/31(月) 20:17:25
489デフォルトの名無しさん:2007/12/31(月) 20:42:48
>>485
式にするとこうだ。

MediaTime = MediaStartTime + Rate(TimeBaseTime - TimeBaseStartTime)
490デフォルトの名無しさん:2007/12/31(月) 21:02:20
>>478
thxです!助かりました!!
491デフォルトの名無しさん:2008/01/01(火) 01:46:03
あけましておめでとう!
今年もよろしく!
492デフォルトの名無しさん:2008/01/01(火) 02:11:07
あんた誰?
493 【ぴょん吉】 【1654円】 :2008/01/01(火) 09:09:39
テスト
494デフォルトの名無しさん:2008/01/01(火) 13:00:57
Javaの勉強をしようと、
http://www.atmarkit.co.jp/fjava/rensai3/tomcat06/tomcat06.html
のサイトに書いてある「カスタムタグ」の部分を実行したところ、
org.apache.jasper.JasperException: 絶対URI: http://java.sun.com/jsp/jstl/core はweb.xmlとこのアプリケーションを配備したJARファイルのどちらかでも解決できません
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:51)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:409)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:116)
org.apache.jasper.compiler.TagLibraryInfoImpl.generateTLDLocation(TagLibraryInfoImpl.java:315)
org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:148)
org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:420)
org.apache.jasper.compiler.Parser.parseDirective(Parser.java:476)
org.apache.jasper.compiler.Parser.parseElements(Parser.java:1426)
org.apache.jasper.compiler.Parser.parse(Parser.java:133)
org.apache.jasper.compiler.ParserController.doParse(ParserController.java:216)
org.apache.jasper.compiler.ParserController.parse(ParserController.java:103)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:167)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:306)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:273)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

というエラーが表示されました。
どうすれば解決できるのか教えていただけませんか。
495デフォルトの名無しさん:2008/01/01(火) 13:26:06
>>494
WEB-INF/web.xml に http://... と TLD のマッピングを追加

<taglib>
  <taglib-uri>http://java.sun.com/jsp/jstl/core</taglib-uri>
  <taglib-location>/WEB-INF/tld/c.tld</taglib-location>
</taglib>

c.tld がないなら下からダウンロード

1. ↓から Standard 1.1 Taglib をダウンロード
  http://jakarta.apache.org/site/downloads/downloads_taglibs.html
496デフォルトの名無しさん:2008/01/01(火) 13:57:40
>>495
ありがとうございます。
構造はいまいち理解できませんが、
無事記事どおりにページが表示されました。
497デフォルトの名無しさん:2008/01/02(水) 08:14:33
MVCについて理解できるサイトないですか?
今Webアプリ作っているのですがどうしてもVとCがくっついちゃうんですけどorz
498デフォルトの名無しさん:2008/01/02(水) 10:29:52
MとCがくっつきやすいと言うならまだ分かるけど
499デフォルトの名無しさん:2008/01/02(水) 12:10:15
解説なんて幾らでもあるっしょ
コーディングのコツまで行くとほとんどないと言ってもいいが

VとCがくっつくというのはどんな構成にしているのか解らない
Cはリクエストを処理してどんな処理(M)を行い、どの表示(V)を行うか、で終了だぜ。
500デフォルトの名無しさん:2008/01/02(水) 12:22:17
Model-UI 構造のSwingを標準装備してるJavaスレとは思えない発言が
// 無理やり分けるなら M-VC になるというのに…

一例として(いつもの@ITでごめんなさいまし
ttp://www.atmarkit.co.jp/fjava/javafaq/j2ee/j2e07.html
ttp://www.atmarkit.co.jp/fjava/rensai3/tomcat05/tomcat05.html
501デフォルトの名無しさん:2008/01/02(水) 13:18:37
SwingのMVCとWebアプリのMVCじゃ思想は一緒でも実装は随分と違うと思うけどね
Webアプリだと、MとCがくっつきやすいのは確か
特に参照系の画面だとCでデータ取得までやってしまうかどうかはよく議論になる
(Modelに切り分ける派と、直接DAOなり呼んでいいじゃん派)
502デフォルトの名無しさん:2008/01/02(水) 14:14:40
MVCで思ったけどMorphicのsmalltalk以外の移植ってないな。
503デフォルトの名無しさん:2008/01/02(水) 14:53:23
MIDIファイルをJava上で再生する場合と
Media Playerなどの再生ソフトで再生する場合とで
音色が違って聞こえます。
音色を一致させるにはどうしたらいいでしょうか。
504デフォルトの名無しさん:2008/01/02(水) 17:21:14
505デフォルトの名無しさん:2008/01/02(水) 18:22:15
あったのか。
まあ、考えてみりゃObjective-Cはそりゃあるわな。

>>503
無理、MIDIの勉強して来い。
506デフォルトの名無しさん:2008/01/02(水) 19:23:17
>>503
MIDIマッパーに渡せればOKってんなら、MidiDevice を列挙してマッパーを探してみれ。

for (MidiDevice.Info i : info) {
System.out.println(i.getName());
System.out.print('\t');
System.out.println(i.getDescription());
System.out.print('\t');
System.out.println(MidiSystem.getMidiDevice(i) instanceof Synthesizer);
}
507デフォルトの名無しさん:2008/01/02(水) 19:25:32
>>503
それからシーケンサが持ってるトランスミッタに設定してやれば出力先変わるよ。

MidiDevice.Info[] info = MidiSystem.getMidiDeviceInfo();
MidiDevice device = MidiSystem.getMidiDevice(info[1]);
device.open();
device.getReceiver();
Sequencer sequencer = MidiSystem.getSequencer();
Sequence seq = MidiSystem.getSequence(new File("F:/My Music/midi/dreamymap.mid"));
sequencer.open();
sequencer.getTransmitter().setReceiver(device.getReceivers().get(1));
sequencer.setSequence(seq);
sequencer.setLoopCount(1);
sequencer.start();
System.out.println("start.");
while(sequencer.isRunning()){
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
sequencer.close();

やってみたけど Java 内蔵のシンセサイザとは違う音色が出たからたぶん大丈夫。
ただリバーブかなんかの扱いが違うのか、Media Player で再生したのと少し違う音がでたなぁ…。
508デフォルトの名無しさん:2008/01/02(水) 19:26:10
>>503
ごめん、506 はこれが要る。
MidiDevice.Info[] info = MidiSystem.getMidiDeviceInfo();
509デフォルトの名無しさん:2008/01/02(水) 19:27:27
>>503
あと、>>507 の info[1] とか device.getReceivers().get(1) の数字は適当に
変えろよ。俺の環境での値だから。
510デフォルトの名無しさん:2008/01/02(水) 19:58:16
javaのサウンドバンクを一番良いやつにするのが一番早くて、環境固有の問題が発生しなくて良いんだがね。
511503:2008/01/02(水) 20:57:57
jreの中にあるsoundbank.gmを消したら
同じ音が出るようになりました。
512デフォルトの名無しさん:2008/01/02(水) 21:08:48
あほか?
513506:2008/01/02(水) 21:58:17
>>511
実験もやってまじめに答えた俺の立場はどうなる。
514デフォルトの名無しさん:2008/01/02(水) 22:04:02
ただのバカか釣りかはっきりしないと506が報われないなw
515デフォルトの名無しさん:2008/01/02(水) 22:05:43
というか普通はサウンドバンク消すとサウンドバンクがねーぞって
javaに怒られるんだが506のコードでデバイス自力で拾ってるから再現しないってだけか?
516デフォルトの名無しさん:2008/01/02(水) 23:55:18
J2EE の日本語版 API リファレンスって 1.3 までしかないの?
517デフォルトの名無しさん:2008/01/02(水) 23:58:41
ない
518デフォルトの名無しさん:2008/01/02(水) 23:59:49
↑Web で閲覧できる奴ね。
JSTL のリファレンスまとめてんだけどリンクの飛ばし先で迷ってる。
519デフォルトの名無しさん:2008/01/03(木) 00:00:18
矢印失敗 orz
どうもでした。
520デフォルトの名無しさん:2008/01/03(木) 00:25:56
ほぼ初心者です。卒業制作の一環で、Java3Dを使ったソフトを作っています。
GUI(swing)から画像ファイル名を指定してテクスチャを貼り付けたいのですが、
Java3Dのちょっと変わった構造からどのようにすればいいか分かりません。

現状しょうもない体裁をとったものがありますが、ファイル名をString型で
保持してtextureloaderにつければ、と考えています。他に有力なやり方が
あればご教授下さい。
http://www.dotup.org/uploda/www.dotup.org6709.java
521デフォルトの名無しさん:2008/01/03(木) 00:34:14
javadoc読んでから聞け
522デフォルトの名無しさん:2008/01/03(木) 00:48:24
ソフトウェア開発に興味があってJava言語を勉強しはじめた初心者です。
3日前にJavaの絵本という書籍を購入しました。
まだチンプンカンプンです。
慣れてきたらIDEを導入したいと考えてるんですが、どれが良いのか、どれが定番なのか、
さっぱり分かりません。

・Eclipse
・NetBeans

の2つが定番なのでしょうか?

また、それ以外にお勧めとかありますか?

Java Studio CreatorとかJava Studio Enterpriseとかはサーバーサイドって書いてるから用途が違いますよね?
523デフォルトの名無しさん:2008/01/03(木) 01:02:39
チンプンカンプンな間はテキストエディタ使っておけ
IDEを使うと、IDEの操作を覚えるのと言語を覚えるのが同時になって混乱する

どうしてもIDEが使いたいならば、Eclipseで始めるJavaみたいなタイプの本を買うべし
NetBeansの奴は今のところないのでEclipseのが情報も多いから良い
NBは春くらいにはきしだその本が出るらしいけど
524デフォルトの名無しさん:2008/01/03(木) 01:24:20
>>523
レスどうもです。
とりあえずTeraPad入れたのでそれでがんばって覚えます。
525520:2008/01/03(木) 02:11:16
526520:2008/01/03(木) 02:14:59
>>521
javadocは今まで使った事がなく生成の仕方が
よく分からなくて・・・
(エラーの解消の仕方が分からない)
出来ればその辺も含めて教えていただけないでしょうか?
527デフォルトの名無しさん:2008/01/03(木) 02:24:06
ググレカス^^
528デフォルトの名無しさん:2008/01/03(木) 06:10:46
>>522
GUIをもった普通のデスクトップアプリケーション作ることが多いならNetBeansのほうが楽かもね。
NetBeansなら「創るJava」という本がお勧め。
529デフォルトの名無しさん:2008/01/03(木) 10:29:42
現在実行中のJarのマニフェストの情報を取り出すにはどのようにすればよいでしょうか?
530デフォルトの名無しさん:2008/01/03(木) 11:18:28
今年で33歳、Java言語でプログラミング覚えようと思ってますが
遅いでしょうか?
個人差あると思いますが、普通のレベルまで習得するのにどの程度の期間がかかるでしょう?
531>>529:2008/01/03(木) 11:19:47
すみません。単純に
Hoge.class.getResource("/META-INF/MANIFEST.MF");
これでアクセスできますね。
お騒がせしました。
532デフォルトの名無しさん:2008/01/03(木) 12:06:35
XPでブラウザはSleipnir2使ってます。検索バーに曲名書き込んでダイレクトに曲名検索したいのです。
例えば、うたまっぷhttp://www.utamap.com/indexkasi.html
ここの検索バーをブラウザに追加したいのですが、
右クリック→ソースの表示でどこのURLをコピペしたら良いのか解りません。教えて下さい
533デフォルトの名無しさん:2008/01/03(木) 12:06:41
>530
他の言語を幾つか習得している上でならば遅くも何とも無いだろ
普通がどんな普通かは知らんが基礎的な文法を学ぶには1ヶ月もかからん

まったくプログラミングがはじめてってならば、軽い言語でプログラミングを学んでからの方が楽。
534デフォルトの名無しさん:2008/01/03(木) 12:09:34
>532
FireFoxならば選択した部分のソースを表示できるぜ
普通にソース出して見られないのは、インラインフレームとかAjaxで埋め込まれているからだと思われ
535>>529:2008/01/03(木) 12:11:14
何度もすみません。

URL mani = Hoge.class.getResource("/META-INF/MANIFEST.MF");
Manifest manifest = new Manifest(mani.openStream());
Attributes attr = manifest.getMainAttributes();
System.out.println(attr.getValue("Main-Class"));

WindowsXPでこのようにした場合、コマンドプロンプトからの実行であると適切に値が返されるのですが、ダブルクリックからの実行の場合は
attr.getValue("Main-Class")
でnullが返ってきます。

ダブルクリックによる起動とコマンドプロンプトからの起動による違いが何かあるのでしょうか?
536デフォルトの名無しさん:2008/01/03(木) 12:14:01
>>534
そうですか。FireFoxか・・・。相談に乗りついでにちょっとソース表示してここにURL貼ってもらっていいすか?
537デフォルトの名無しさん:2008/01/03(木) 12:20:43
>>536
続きはソフトウェア板かどっかでやるのがいいんじゃね?
538デフォルトの名無しさん:2008/01/03(木) 12:30:52
>536
最初からスレ違い
539デフォルトの名無しさん:2008/01/03(木) 12:50:04
>>530
思い立ったが吉日

ちょっと違うか

やる気と才能と「普通レベル」の内容によるけど
サンデープログラマで気軽にツールを作りたい程度、なら楽勝

もし仕事として普通に即戦力になる程度、ならかなり修行が必要だと思う
まあ、33歳未経験ではいくら死ぬほどの修行をしてエキスパートになったとしても雇ってくれんと思うが
540デフォルトの名無しさん:2008/01/03(木) 12:57:42
ブラックなら余裕
とりあえず2年くらいはデスマって経験年数つけなきゃどうにもならん
541デフォルトの名無しさん:2008/01/03(木) 17:14:27
>>522
じぶんもそれなりの見識を持っていると思っているが、
NetBeansなど思いつかない。eclipseが筆頭候補。
542デフォルトの名無しさん:2008/01/03(木) 17:45:40
思いつかないってのは見識が低いなw
日本語の情報量さえ増えれば、NetBeansは対抗しえるほどに成長している

最新技術を試したり、Swing使いたかったり、Railsに興味あったりするならばNetBeansの方が上
総合力じゃまだEclipseだろうけど、1年後にはわからんよ
543デフォルトの名無しさん:2008/01/03(木) 19:20:37
>>541
それなりの見識(笑)
544デフォルトの名無しさん:2008/01/03(木) 19:36:04
>>542
パソコン初心者にPC購入相談されて、候補に
Macを思いつけないことと同じようなことだが。
545デフォルトの名無しさん:2008/01/03(木) 20:22:56
別にMacでもいいじゃねーかw
どうせメールとインターネットが出来ればいいんだから
546デフォルトの名無しさん:2008/01/03(木) 21:41:51
Eclipseから次の手順でプロジェクトを作成しサーバで実行を押したところ
次のエラーが表示されてしまいます。

そもそもJavaでWebアプリをデバッグする事は出来ないのでしょうか?

【エラー内容】
Problem Occurred
Starting server - Tomcat v5.5 Server at localhost
(Time of error:2008年1月3日21:37:32:JST) Reason: Check the details

【実行手順】
1.動的プロジェクトを作成する。
2.Tomcatプロジェクトに設定する。
3.Run On Server
  (Tomcat v5.5 Server at localhostを選択)



547デフォルトの名無しさん:2008/01/03(木) 22:51:35
ダブルバッファリングと画像の読み込みについて質問なのですが、
画像を読み込むとダブルバッファリングできないのでしょうか?

public class Game extends Applet implements Runnable{
     Image img;
     Image buf;
     Graphics ct;
     Dimension dim;
     public void init() {
       Thread th = new Thread(this);
       dim = getSize();
       buf = createImage(dim.width, dim.height);
       th.start();
     }
     public void run(){
       while(true){
         try{
           if(ct == null){
             ct = buf.getGraphics();
             img = getImage(getDocumentBase() , getParameter("img1"));
             repaint();
             Thread.sleep(1000);
           }else{
             img = getImage(getDocumentBase(), getParameter("img2"));
             repaint();
           }
         }catch(InterruptedException err){}
       }
548デフォルトの名無しさん:2008/01/03(木) 22:52:08
public void update(Graphics g){
       paint(g);
     }
public void paint(Graphics g) {
       ct.drawLine(0,0,100,100);
       g.drawImage(img, 0 , 0 , this);
     }
}
一番最後の g.drawImage(img, 0 , 0 , this); を g.drawImage(buf, 0 , 0 , this);
にしたいのですがそうすると、画像が読み込めないのです。
でもこれだと画面がちらつく・・・
どうすればいいでしょうか?

549デフォルトの名無しさん:2008/01/03(木) 23:41:38
Swingを使ったプログラムを作っていたんですが、
いつのまにかタスクマネージャにjavaw.exeが大量に…
どうも、ウィンドウの閉じるボタンで終了すると残るみたいです。
メニューからSystem.exit(0)を実行して終了した場合は残っていません。
これについて何かわかる方いましたら助言お願いします。
550>>529:2008/01/03(木) 23:49:31
APIドキュメントでJFrame#setDefaultCloseOperation(int)を参照するといいですよ。
551549:2008/01/04(金) 00:01:16
javaw.exeの増える件
JFrameを継承しているクラスのインスタンスを生成しているmain内で
インスタンス.setDefaultCloseOperationで設定していたのを、
このインスタンスのコンストラクタ内の処理に変更したところ、
なぜか直りました。なぜだ・・・。super()とかその辺が何か関係してた??
552デフォルトの名無しさん:2008/01/04(金) 00:17:01
>549
JFrameで余計なコードを書いたんじゃないか?

ちなみにJFrameは継承しない方がいいと思う
Swingはコンポーネントを組み合わせて使うフレームワークだから、個々のコンポーネントを拡張するのは組み合わせで実現できない段階になってから。
大抵のことはコンポーネントのプロパティを設定すれば実現できるし、そのようなデザインになっている。
それまでは無闇に拡張しなくてOK
553デフォルトの名無しさん:2008/01/04(金) 13:39:39
import java.awt.*;

class LineFrame extends Frame{
public void print(Graphics g){
g.drawLine(70,50,190,80);
}

public static void main(String args[]){
LineFrame lineFrame = new LineFrame();

lineFrame.setSize(300,200);
lineFrame.setVisible(true);
}
}

上記を実行してもフレームは表示されますが線が描画されません
どなたかご教授ねがいます。
554デフォルトの名無しさん:2008/01/04(金) 14:45:19
print じゃなくて paint
555553:2008/01/04(金) 15:20:30
>>554
うおおお ありがとうございました。
なんとお恥ずかしい
556デフォルトの名無しさん:2008/01/04(金) 16:12:57
ところでおまいら
こんな簡単なコードで何日もかかってるのか?
557デフォルトの名無しさん:2008/01/04(金) 16:41:02
>>555
1.5以上使ってるなら Override アノテーションつけたほうがいい。
558デフォルトの名無しさん:2008/01/04(金) 16:47:26
class A {
    public static void main(String[] args)
    {
 return;
    }
}
559デフォルトの名無しさん:2008/01/04(金) 16:48:37
特殊文字(space, tab)変換( )すると大丈夫なんだなw
560デフォルトの名無しさん:2008/01/04(金) 19:18:44
>>557
// print の引数も Graphics ですが、どうしましょう
それはそれとして、print と paint の間違いは良くやらかした記憶がある
561デフォルトの名無しさん:2008/01/04(金) 19:23:00
intの範囲のサイズでおさまりきれない大きなデータをメモリに格納したい場合はどのようにすればよいでしょうか?
バイナリエディタを作っているのですが、RandomAccessFileの場合はあくまで読み込むのは一部分であり、全体として編集する場合はやはり一時的にメモリに保存したいので。
562デフォルトの名無しさん:2008/01/04(金) 19:46:58
>バイナリエディタを作っているのですが
それでこんな質問かいw
563デフォルトの名無しさん:2008/01/04(金) 20:21:54
はい。一番大事な部分だと思うので。
本格的なものを作る能力はまだないのですが、一般的にどのようにしているのかと疑問に思い質問させていただきました。
単純に多次元配列でいいのでしょうか。
564デフォルトの名無しさん:2008/01/04(金) 20:58:46
Javaに関して質問です。
BufferedWriterを使ってファイル書き込みをしてみてるんですが、
最後に改行コードが書き込まれて悩んでます。
writer.write("test");
writer.flush();
writer.close();
で、testの後に改行コードが書き込まれてるんです。
取り除きたいのですが、どうすればよいかご存知の方いらっしゃいませんか?
565デフォルトの名無しさん:2008/01/04(金) 21:39:11
>>564
そのコードなら改行コードは書き込まれない
566デフォルトの名無しさん:2008/01/04(金) 21:54:14
>>565
あ、、、スイマセンスイマセン
567デフォルトの名無しさん:2008/01/05(土) 00:40:00
今Javaで就職を考えてAWTやSwingのプログラムを中心にやっているのですが
CUIを中心に勉強したほうがいいでしょうか?
568デフォルトの名無しさん:2008/01/05(土) 00:49:13
567 名前:デフォルトの名無しさん[sage] 投稿日:2008/01/05(土) 00:40:00
今Javaで就職を考えてAWTやSwingのプログラムを中心にやっているのですが
CUIを中心に勉強したほうがいいでしょうか?
569デフォルトの名無しさん:2008/01/05(土) 00:52:14
>>567
真面目な話、就職なんて大事なものは2chで聞くべきではない。
自分で考えろ。
570デフォルトの名無しさん:2008/01/05(土) 00:52:54
>>567
実力にもよるだろ
全くの初心者なら、CUIから入ったほうがいいとは思う
モチベーションを維持できる自信がないなら
VBとかC#でGUIやったほうがいいかもね
571デフォルトの名無しさん:2008/01/05(土) 01:12:36
というか、何故このご時勢にPGなんてやろうとするんだ
もっと上流の勉強しろよ
プログラミング技術なんてその布石にすぎん
572デフォルトの名無しさん:2008/01/05(土) 02:03:56
すいません><教えてください
いきなりappletviewerだけが使えなくなってしまいました・・・
コンパイルはできるのになんででしょうか?(↓のようなエラーがでます)

D:\JavaSource>appletviewer test.html
Exception in thread "main" java.lang.IllegalArgumentException: Malformed \uxxxx
encoding.
at java.util.Properties.loadConvert(Properties.java:492)
at java.util.Properties.load(Properties.java:331)
at sun.applet.Main.getAVProps(Main.java:453)
at sun.applet.Main.getAVProps(Main.java:386)
at sun.applet.Main.init(Main.java:309)
at sun.applet.Main.run(Main.java:130)
at sun.applet.Main.main(Main.java:80)
573デフォルトの名無しさん:2008/01/05(土) 02:04:19
GUIなんてお飾りは、必要になったらやらないと割りに合わんよ。
飾りなんてとっかえるもんであって、消耗品の度合いが強い。
574デフォルトの名無しさん:2008/01/05(土) 02:10:21
絵チャットをするためにjavaがいるんで、その質問です。
javaをインストールして絵チャしに行くとできるんですが一旦PCの電源を落として
再度行くと
「Java(TM)Plug-inの致命的エラー
  Java Runtime Enrgonmentをロードできません。」

と表示され、次からは
「Java(TM)Plug-inの致命的エラー
  同じプロセスで実行中のいくつかの Java 仮想マシンによってエラーが発生しました」

と表示されてしまい絵チャが表示できません。
Javaをアンインストールすればいけるのですが、PCの電源を切ると再度上のエラーが起きてまたアンインストール。
これの繰り返しでめんどくさすぎるんです。

どうすればこのエラーにならずにすむんでしょうか?
575デフォルトの名無しさん:2008/01/05(土) 02:26:47
OSから再インストールすればどうでしょうか?

はい次
576デフォルトの名無しさん:2008/01/05(土) 02:37:39
絵チャットしなきゃいいんじゃね
577デフォルトの名無しさん:2008/01/05(土) 02:59:52
独習Javaの質問もここでおk?
578デフォルトの名無しさん:2008/01/05(土) 03:04:45
今独習Java手元に無いや
でも質問してもいいよ
579デフォルトの名無しさん:2008/01/05(土) 03:15:41
独習Javaって教える人がいたら最強の本な気がする。
この本を3か月で終わらせた人いる?
ニート時代に基本情報技術者試験用にやっていたが、
1日4時間、六か月費やしても終わらなかったぞ。
580デフォルトの名無しさん:2008/01/05(土) 03:20:05
>>579
6ヶ月って遅くないか?
大学時代、勉強の片手間に1ヶ月で終わったぞ
まぁ大学の課題をこなすのに必要だったからってのもあるけど
やっぱり期限とか目的みたいなものが無いと、エンジンの回転数上がらないのかね、人間って
581デフォルトの名無しさん:2008/01/05(土) 03:28:35
独習を日本人向けにわかりやすくしたのが結城のプログラミングレッスンなんだけどね。
582デフォルトの名無しさん:2008/01/05(土) 03:33:23
>>580
初のプログラミング言語・プログラミング本がJavaと独習Javaだったんだ。
それと雑誌付録の用語集だけでやっていっていたら、六ヶ月以上かかった。
基本情報技術者試験用の範囲はとっくに終わっていたけど、後半部分意味不明だった上、
当時は2ちゃんの存在を知らなかったから、誰にも質問できず困っていた。

1日どれくらい独習Javaにあててたの?1時間くらいで1ヶ月終了なら俺からしたら神。地頭レベルが違う希ガス。
583デフォルトの名無しさん:2008/01/05(土) 03:39:12
うるせーよニート
584デフォルトの名無しさん:2008/01/05(土) 03:41:17



   / ̄ ̄\
 /   _ノ  \    
 |    ( ●)(●)                キリッ   ____
. |     (__人__)                   /\  /\
  |     ` ⌒´ノ    ・・・・・・・・         /(ー)  (ー) \
.  |    .    }     ____        / ⌒(__人__)⌒   \
.  ヽ        }    /      /        |    |r┬-|      | 
   ヽ     ノ    /     /        \__`ー'´___/
   /    く     /     /         /:::∨<;;;>∨::::::::::::::::\
   |     \    /     /         ∧:::::::ヽ/;ヾ/::::::::::::::::::::::ヘ
    |    |ヽ、二⌒)___/         /::::ヽ:::::::ヽl/:::::::::::::::::::::/::::ヽ


    ┌──┬─┬───────────────────┐
    | 年 U月|        学歴・履歴                  |
    ├──┼―┼───────────────────┤
    |   U  |            学歴                  |
    ├──┼―┼───────────────────┤
    |   U  |なし                               |
    ├──┼―┼───────────────────┤
    |   U  |            職歴                  |
    ├──┼―┼───────────────────┤
    |   U  |なし                               |
    ├──┼―┼───────────────────┤
    |   U  |                             以上 |



 
585582:2008/01/05(土) 03:46:20
ぐわぁぁぁぁああぁぁぁぁぁぁぁぁぁっぁ
こんちくょおうぁぁぁぁぁつちくわぁぁぁぁあx
586デフォルトの名無しさん:2008/01/05(土) 03:48:31
>>582
1ヶ月っていっても、毎日やってたわけじゃないからなぁ・・・
あぁ、でも徹夜でやった日もあった気がするな、他の課題も終わらせないといけない、とかいって当時は必死だったな
無責任に言うと、1〜2時間ぐらいかな?昔すぎて覚えてないw

ちなみに初学はC
条件分岐だの変数だのコンピュータアーキテクチャだのってのは予め知ってた状態だからね
それでもプログラミングを勉強してまだ半年の状態だった
学部1年の前期にCをやって、後期の開発演習で先輩に薦められてJavaを使ったんだった
587デフォルトの名無しさん:2008/01/05(土) 03:52:24
import java.net.*;
import java.io.*;

class test {
public static void main(String args[]) {
String host = "111.11.111.111";
int port = 1111;
try {
Socket socket = new Socket(host,port);
InputStream is = socket.getInputStream();
OutputStream os = socket.getOutputStream();
DataInputStream dis = new DataInputStream(is);
DataOutputStream dos = new DataOutputStream(os);
int recv = dis.readInt();
System.out.println("受信したデータ : "+recv);
dis.close();
dos.close();
is.close();
os.close();
} catch (Exception e) {
System.out.println("Client : Error");
e.printStackTrace();
}
}
}
588デフォルトの名無しさん:2008/01/05(土) 03:54:33
むしろ、一日四時間6ヶ月が凄すぎだよな……
人間辞めてるんじゃね? 一ヶ月って言われたほうがまだ人間らしい。



お前、マジでアホ過ぎ
589デフォルトの名無しさん:2008/01/05(土) 03:58:36
>>586
十分神すぐる…
高校中退→引きこもりという王道をつっぱしってた俺とはバックグラウンドが違いすぎるぜ。
エロゲを作りたい!と思ってなぜか基本情報処理技術者試験の勉強を始めたんだよなあ…
590デフォルトの名無しさん:2008/01/05(土) 03:58:42
家で勉強するより、実務で無理矢理覚えると早いよ。キツイけど実務が一番早い
591デフォルトの名無しさん:2008/01/05(土) 04:05:57
実務って下地が無いと辛いだろ
仕事忙しくて、勉強が中途半端にならないか?
文系出身者なんか、言語仕様を理解していないせいで引き起こされるバグが多すぐる
当の本人はそれでも、勉強になった、で済むけど、
プロジェクトにとっては大変な負債ですよ
592デフォルトの名無しさん:2008/01/05(土) 04:09:39
実務だとミスってフルボッコにされる恐怖感があるから必死でがんばる。
あんまり無理するとウツになるけどね
593デフォルトの名無しさん:2008/01/05(土) 04:12:09
>>579
俺はC#経験者だったけど2時間くらいで読み終えたよ
問題とかは解いてないけど
594デフォルトの名無しさん:2008/01/05(土) 04:35:01
>>593
一ヶ月で終わった人も読んだだけなのかな?
俺はそれぞれの課題プログラムを組んでいっていたら六ヶ月以上かかったぜ。
課題プログラムもこなして一ヶ月なら頭があがらない…
595デフォルトの名無しさん:2008/01/05(土) 04:45:21
>>589
基本情報基本情報ってそればかり拘ってんじゃねぇよゆとりガキ
596デフォルトの名無しさん:2008/01/05(土) 04:45:57
結局、学坊の溜まり場だなここ
597デフォルトの名無しさん:2008/01/05(土) 05:11:52
>>594
課題もこなしたよ、全部じゃないけどね
問題みてすぐ答えが頭に浮かぶような奴はやるだけ無駄だから飛ばしていった
だから前半部分は一気に読み進んでしまったと思った
598デフォルトの名無しさん:2008/01/05(土) 06:58:55
大学で、JAVAでオセロゲームを作れとかいう課題が出た
JAVAの知識なんてゼロ。しかも授業時間2コマだぞ。
不可能だろ
599デフォルトの名無しさん:2008/01/05(土) 07:34:11
マス目を二次元配列で表現してだな
配列の要素に石の状態を表す値を格納して
石を置いた配列の場所から、上方向に、マスの限界かもしくは同じ色の石が見つかるまで走査、同じ色が見つかったら、
さっき石を置いた位置と見つかった位置までの配列を同じ色の値に書き換える
見つからなかったら何もしない
これを右、左、下方向にも適用する

石を置くのはユーザがやる
CPU対戦は無し

ってことだったら90分で余裕だろ
600デフォルトの名無しさん:2008/01/05(土) 07:37:38
正直何をいってるのかさっぱり分からん
でも、サンクス
601デフォルトの名無しさん:2008/01/05(土) 07:47:15
>598
プログラマ暦5年の俺でも無理。ロジックが頭に浮かばない。
1週間がんばればできるかも
602デフォルトの名無しさん:2008/01/05(土) 07:56:52
無駄な5年だなw
603デフォルトの名無しさん:2008/01/05(土) 07:59:49
あ、2コマだから3時間か
超よゆ〜^^
604601:2008/01/05(土) 08:46:20
オセロ作成で…

>>ってことだったら90分で余裕だろ

こんな上司だと最悪。なんでも楽観視して「なんでまだできないの?」っていってくる
しまいには「俺にやらせてみろ」といって「あれ?うーむ、難しいな」となる

正しい対応は

「弊社の最低価格で頑張らせていただきます、工数1人月です。」
と、思いっきり工数を取るのが優秀な人物。
605デフォルトの名無しさん:2008/01/05(土) 09:32:09
なんで上司と工数の話になるんだよw
599の仕様なら(GUIの部分はぬきだとして)余裕でしょ
606601:2008/01/05(土) 09:48:12
すまん、ただ俺が無能なので愚痴をこぼしただけだ。

いや、まじで俺無理、仕事での必要最低限のプログラミングしかヤル気がおこらん
オセロっていってもだなぁ
GUIもJAVAにはいろいろな選択肢があるし、なぜそれを選んだか上司を説得する論拠も練らないといけない
ドキュメントもISOに準拠とか…テスト仕様書とか…
どんな小さいプログラムでもいろいろめんどくさい事を想像しちまう癖があってね…トホホ
607デフォルトの名無しさん:2008/01/05(土) 09:51:53
それSEの仕事w
608デフォルトの名無しさん:2008/01/05(土) 10:29:22
>580
俺もPGはじめて最初にやったのは独習Cだったけど、全部打ち込んだら半年かかった
609デフォルトの名無しさん:2008/01/05(土) 10:31:39
>601
最初からオセロと考えんなよ
2x2のマスに交互に石を置くだけのロジックから考えて、拡張していけば簡単だろ?
610デフォルトの名無しさん:2008/01/05(土) 10:45:58
今度会社で一からシステム構築するんですですが、
javaソフト、htmlソフト、DB、OSはフリーかシェアか?それぞれver、価格なんかも含めて調査しないとならないんですが、
正直全然分かりません。
環境的なことって全然分からんのですが誰か分かる人いますか??
611デフォルトの名無しさん:2008/01/05(土) 11:00:38
>610
自社が金出すんだったら全部タダのモノ使ってやれば?

javaソフト:J2EE、イクリプス⇒0円
htmlソフト:IE、アパッチ、トムキャット⇒0円
DB:MySQL、アクセス2000(コピー品)⇒0円
OS:Windows2000(余ってるパソコンのを使う)⇒0円

ちゃんとした調査したかったらSierのIT営業経験者に聞くとよろし
612デフォルトの名無しさん:2008/01/05(土) 11:18:11
そんな状態で1から作るならば1人派遣会社からでも雇った方がいいと思う
システム開発は作るより調べる方が難しい
613デフォルトの名無しさん:2008/01/05(土) 11:18:17
>>598
それは、対人対戦のみの、単に盤に駒を置いていくだけのモノか?
それとも、COM対戦のあるやつか?

それによって全然違う。
前者なら余裕だが後者ならほぼ不可能。
614デフォルトの名無しさん:2008/01/05(土) 11:29:13
>>610
>一からシステム構築するんですですが
>誰か分かる人いますか??
いますよ、このスレにはいくらでもw
615デフォルトの名無しさん:2008/01/05(土) 11:54:34
UTF-8なテキストファイルを読み込むには、
InputStream stream = new FileInputStream("file.txt");
Reader reader = new InputStreamReader(stream, "UTF-8");
StringBuffer buf = new StringBuffer();
int ch;
while ((ch = reader.read()) >= 0) {
  buf.append((char)ch);
}
String str = buf.toString();
でいいでしょうか。
もっとかっこいい書き方 or 効率よい書き方があれば教えてください。
616デフォルトの名無しさん:2008/01/05(土) 11:58:10
せめてバッファリングしようぜ
617デフォルトの名無しさん:2008/01/05(土) 12:28:29
>>613
COM対戦ありでも簡単だろ

ランダムで置けるところに置くだけならw

ちょっとこだわろうと思うなら、すべての置ける場所に置いた場合の自コマの数
若しくはその数手先のコマ数を調べて自コマ数の昇順ソートで決めても良い
※逆順ソートじゃないから注意。終盤を除く
618615:2008/01/05(土) 12:33:53
>>616
バッファリングするというのは、Bufferedreaderを使うということでしょうか。
InputStream stream = new FileInputStream("file.txt");
Reader reader = new BufferedReader(new InputStreamReader(stream, "UTF-8"));
StringBuffer buf = new StringBuffer();
int ch;
while ((ch = reader.read()) >= 0) {
  buf.append((char)ch);
}
String str = buf.toString();
こうでしょうか。
619デフォルトの名無しさん:2008/01/05(土) 14:09:07
>>598
昔VB使って1時間半で作ったことある。
通信対戦付きで。
ロジックはめちゃ単純だお
620デフォルトの名無しさん:2008/01/05(土) 14:41:21
>>611
コピー品とかアウトだろw
せめて OpenOffice.org Base とかにしろよ。
621デフォルトの名無しさん:2008/01/05(土) 14:54:31
>>611

IDEはNetBeans、
DB接続にはJDBCをつかって、
OSはOpenSolaisを。
622デフォルトの名無しさん:2008/01/05(土) 15:20:48
Javaでベンチマークプログラムを書きたいのですが、Javaでユーザ時間とシステム時間を計測することはできませんか。
623デフォルトの名無しさん:2008/01/05(土) 17:22:57
Java のとあるライブラリが LGPL なのですが、このライブラリを使うとソース公開しないといけないのですか?
動的リンクの場合ソースは公開しなくていいはずですが、Java の class は動的・静的どちらの扱いになるのですか?
624デフォルトの名無しさん:2008/01/05(土) 17:50:15
Javaのclassを動的・静的のどちらで使うつもりですか
625デフォルトの名無しさん:2008/01/05(土) 17:51:16
どのライブラリをどんな状況で使うんだ?
626デフォルトの名無しさん:2008/01/05(土) 17:52:57
public interface Foo {
Class c = Bar.class;
}

public interface Bar {
Class c = Foo.class;
}

インターフェースでこんな風に相互に参照するようにしても問題ないですよね?
これって循環参照ではないですよね?
#循環参照をよく分かってないですが・・・
627デフォルトの名無しさん:2008/01/05(土) 18:06:20
問題はありあり
原則としてA→B→Cのように相互の「関連」を持たせない方がいい

循環参照も勉強して来い
あくまでインスタンス同士の関係だ
628デフォルトの名無しさん:2008/01/05(土) 19:24:01
HTML文章をラッピングしてJSPに提供するようなライブラリってありますか
629デフォルトの名無しさん:2008/01/05(土) 20:29:06
そのままJSPに書くかHTMLとしてURL指定しろ、アホ
630デフォルトの名無しさん:2008/01/05(土) 22:21:29
>>627
ありがとうございます。
循環参照は、
class A{
B b=new B();
}
class B{
A a = new A();
}
みたいになってるときですね。これは、実行すると無限にエラーがでました。

>>626 みたいにClassを参照するだけなら実行時にエラーも出ないです。
設計的には、何となくまずいような気がするのですが、言語仕様的にもまずいのでしょうか?
631デフォルトの名無しさん:2008/01/05(土) 23:13:40
>630
コンパイルが通る → 仕様的にはOK
クラスのロードに関連する部分(static initalizerとか)で実行時に問題が起きる可能性があるとか、問題が起きる原因をわざわざ作る必要は無い
あくまでコンパイルが通る事は正しく実行できる事の最低条件でしかないんだよ
632デフォルトの名無しさん:2008/01/05(土) 23:14:07
仕様的には → 言語仕様的には
633デフォルトの名無しさん:2008/01/05(土) 23:33:01
コンパイルが通っても言語仕様的にマズいこともあるかもしれないけどな。
634デフォルトの名無しさん:2008/01/05(土) 23:43:29
おれjava実務経験者なのにこのスレの話題についていけねーwwww
難しいってことは言語としてはダメだ
分かりやすいが一番。
全部VBでよい
635デフォルトの名無しさん:2008/01/05(土) 23:46:53
   ∩___∩         |
   | ノ\     ヽ        |
  /  ●゛  ● |        |
  | ∪  ( _●_) ミ       j
 彡、   |∪|   |        J
/     ∩ノ ⊃  ヽ
(  \ / _ノ |  |
.\ “  /__|  |
  \ /___ /
636デフォルトの名無しさん:2008/01/06(日) 01:51:30
>>624-625
例えば、LGPLであるiText(PDF作成ライブラリ)などを利用して、スタンドアロンのソフトを公開する状況などです。
Wikipediaには
・ライブラリAにリンクしたプログラムBを配布する場合、Bのライセンスにリバースエンジニアリングを禁止する条項を含めてはならない。(LGPLv2-6、LGPLv3-4)
・ライブラリAに静的リンクしたプログラムBを配布する場合、Bのソースコードまたはオブジェクトコードの配布を拒否してはならない。(LGPLv2-6a、LGPLv3-4d0)
とありますが、Javaには動的リンクや静的リンクという区別はないので、どのような扱いとなるのかを知りたいです。
637デフォルトの名無しさん:2008/01/06(日) 02:04:05
>636
ものすごーく簡単に言えば、
GPLは使うならばソース全部晒せYO
LGPLはライブラリに変更を加えないならば晒さないでOKだぜ

jarを含めて使用するってのは静的リンクにあたると解釈されているはず
だが、バグの修正も含めてソースをいじって使用したらアウト
中のクラスを拡張して〜とかなると曖昧
638デフォルトの名無しさん:2008/01/06(日) 02:17:59
そんなもんだが、適当すぎw
639デフォルトの名無しさん:2008/01/06(日) 02:33:03
>636
↓Look!
>634

「KY」
640デフォルトの名無しさん:2008/01/06(日) 02:49:17
Java は基本的に全て動的バインディング。
でも GPL 系でどういう解釈になっているかは知らん。俺も教えて。
以下俺妄想。

■セーフ
・LGPL の JAR にクラスパス通してアプリ実行

■アウト
・JAR をバラして中のクラスファイルを自分のJARに入れる
・ソースを自分のプロジェクトに持って来て(修正、無修正問わず)再コンパイルして使う
・ソースを自分のソースにコピペして使う

■グレー?
・JARを配布バンドルに含める

まぁ実際作れと言われたら、LGPL のライブラリ使うところだけインターフェース化して
完全に切り離し、アダプタ用意してデフォルトでもとりあえずは動くようにしておく。
んでそのライブラリとそれ用のアダプタを別個にダウンロードさせるような設計に
しておけば、最悪公開が必要なのはそのアダプタまでになるんじゃないか。
GPL 汚染モデルがどこまで強力か知らんが。
641デフォルトの名無しさん:2008/01/06(日) 06:23:12
>>640>>636
LGPLv2でいうところの「『ライブラリ』を利用する著作物」、
http://www.opensource.jp/lesser/lgpl.ja.html
LGPLv3でいうところの『結合された作品』
http://opentechpress.jp/opensource/07/09/05/017211.shtml
に該当すれば良いので、
> ・JARを配布バンドルに含める
は問題無いのでは、と。

642デフォルトの名無しさん:2008/01/06(日) 07:20:31
普段Webからの情報のみで、本は読まない人なのですが、
少し上にある独習Javaっていう本は2とか3とか種類ありますよね?
もし買うとしたら最新のやつだけ買って勉強すればいいですか?
それとも古いほうのもやるべきですか?
643デフォルトの名無しさん:2008/01/06(日) 09:12:24
第3版は、Javaのバージョンアップに合わせて改訂されたもの。
第3版だけでいい。古いのは要らない。
644デフォルトの名無しさん:2008/01/06(日) 15:29:49
javaで8bitのグレースケール画像を読み込んで1画素ずつ操作したいのですが、いい方法はありますか?
645デフォルトの名無しさん:2008/01/06(日) 15:52:17
>>644
BufferedImage を TYPE_BYTE_GRAY でイメージを作って、
getData()して直接バイト配列をいじる。
646デフォルトの名無しさん:2008/01/06(日) 16:20:03
import java.awt.*;でFrameクラスを継承してもうまくいかない。
Frameのメソッドを使えない。
import java.awt.Frame;ってやるとできるからいいけど、
なんでなんすか???
Java6Update3です。
647デフォルトの名無しさん:2008/01/06(日) 16:43:32
携帯からですみません。
JAVAを学びたいのですが、独学にはどの本がオススメでしょうか?
PC経験は日常使うくらいです。
よろしくお願いします
648デフォルトの名無しさん:2008/01/06(日) 16:54:56
かなり基本的な質問で申し訳ないのですが…
コマンドプロンプトを使ってjavaファイルをコンパイルしようとしても、
javacと打っても内部(外部)コマンド、操作可能なプログラム、バッチファイル
として認識されていません。
と出て、
1時間以上YAHOOで検索しても、どうすればよいか乗っておらず、わからないんです。
どうすればこのパソコンでjavaファイルをコンパイルできるようになるんでしょうか??
649デフォルトの名無しさん:2008/01/06(日) 16:58:58
>>648
JDKをインストールする。
http://java.sun.com/javase/ja/6/download.html
650デフォルトの名無しさん:2008/01/06(日) 17:02:55
>>646
自分でFrameという名前のクラスを別に作ってそれをimportしている、とか。
651デフォルトの名無しさん:2008/01/06(日) 17:26:39
>>650
そのとおりでした。ありがとうございます。
いやあ、本末転倒ですな
652デフォルトの名無しさん:2008/01/06(日) 19:53:49
>647
Javaっていうよりはコンピュータの基礎から学んだ方がいいかと
「プログラムはなぜ動くのか」あたり一読しておくべし
後は適当な入門書を1冊斜め読み
その上でどんなことが解らないのかを確認して、何を読んだら良いか聞くといい
653デフォルトの名無しさん:2008/01/06(日) 20:34:28
今大学の課題でアナログ時計を作ってるんですけど、時計自体は完成したんですけど付加機能で
アラームか文字スクロールを付加させたいと思っています。

やはり複数の機能をつけるためには複数のソースを合体させなければいけないのでしょうか?
654デフォルトの名無しさん:2008/01/06(日) 20:44:25
複数のソースの合体ってなんだ?

クラスを分けるって話ならば、アナログ時計の時点でクラスは分かれているべき
どんだけ機能を持っていても1つのクラスで出来ない事もないが普通はやらない
まあ、アラーム機能だけ追加程度ならばいいかもしれないが、そのうち管理できなくなる
655デフォルトの名無しさん:2008/01/06(日) 21:15:12
今まで1つのファイルでやってきた、ってことかな
Javaでは1ファイル1クラスが基本(ネスト・インナークラスのぞく)だから、
そうなってないんなら複数ファイルに分割したほうがいいよ

あと、CUIかGUIかは分からないけど、
GUIならGUI自体のコードとロジック部分は分離しとくべき
656デフォルトの名無しさん:2008/01/06(日) 21:16:39
>>653
あのさ、こういう質問でいつも思うんだけど、どうして教員に聞かないの?
もちろん、本来はこんな基本的なことは当然習った上で課題をやってるんだと
思うけどね。

独学でやってるならともかく、大学で一体何を習ってるのやら。
657デフォルトの名無しさん:2008/01/06(日) 21:21:20
私も大学生ですが、初めのうちは「とりあえず使ってみよう」的な感じで、デザインやらなんやらはなかなか教えてもらえませんでしたよ。
658デフォルトの名無しさん:2008/01/06(日) 21:45:05
>>656
今必要な情報だからここで聞いてるのです。家で制作してて教員に聞ける状況ではないんですよ。講義は明日からだし。
習って言われたこと、やったこと100%覚えれるほど頭良くないのでw

>>654>>655
エラーがなく、かつ動作も問題なくできたので大丈夫だと思います。指摘ありがとうございました。
659デフォルトの名無しさん:2008/01/06(日) 22:03:04
あれですか、5分返事が来なかったら友達じゃない世代ですか
660デフォルトの名無しさん:2008/01/06(日) 22:11:53
今まで互換性最優先で1.1をこねくり回して使ってきたのですが、
さすがに限界を感じて上位バーションに移行しようと思っています。
とりあえず1.6をインストールして、コンパイルで注意された
推奨されなくなっている書き方を直して警告無しにする所までこぎ着けました。

ですが1.6ならではの機能を取り入れると動かなくなっちゃう環境も出てくるんですよね?
互換性でお勧めのバージョンはあるでしょうか。出来れば半透明と音量調節をしたいと思っています。
半透明は1.1でも力業で実装してたのですが、ドット単位で計算していたのでは処理が遅すぎて
隠し味程度にしか使えません。

浦島状態の私にアドバイスを下されば助かります…
661デフォルトの名無しさん:2008/01/06(日) 22:16:30
そんなリスキーな事するくらいならば1.1のまま使え
もしくは、作り直せよ、1.1って10年弱使ってんだろ?

Javaは幾ら互換性が高いとはいえ、1.1と1.2以降は別物に近い
そもそもGUI系なんて全部AWTだろ、それ
662デフォルトの名無しさん:2008/01/06(日) 22:17:49
>658
話きいてんの?
>654も>655も1つのクラスに書くことはヤメロって言ってんだよ
663デフォルトの名無しさん:2008/01/06(日) 22:24:04
>658
おなーじ。
数千行程度なら1ファイルにした方が見渡しがきいてイイですよね。
昔と違って分割コンパイルしなくても一瞬でバイナリになるし(^^;

>661
アドバイスありがとうございしました。
後もう少しだけ1.1を使ってみることにします。
どうしてもMS-javaの環境の人を捨てきれなくてここまで来ちゃたのですが
アクセス解析でその人たちが全滅するまで付き合ってみることにします…
664648:2008/01/06(日) 22:43:31
>>649
jdk-6u3-windows-i586-p.exeをインストールしたんですが、
やっぱりjavacコマンドが使えません。どうすれば?
665デフォルトの名無しさん:2008/01/06(日) 22:44:26
1.1でもJavaはJavaで別に変じゃないよ。
Appletとか1.2にするほどでもないし結局1.1だし、とすればjava.awtになる。

javac -soruce 1.2 -target 1.2 a.java
とかのオプションでいいじゃないか。

>半透明は1.1でも力業で実装してたのですが、ドット単位で計算していたのでは処理が遅すぎて 

これはおかしな話じゃないのか?力技で実装しても、ハードの進化によって逆に速くなるし
当時は何とか動いてたんだからそれより遅くなる事はない。
いいかげんな嘘つくなよw
666デフォルトの名無しさん:2008/01/06(日) 22:48:16
>>664
windowsだから、コンソール(DOS窓)で

set path c:\program files\java...

とかだろうな。典型のFAQだろ。
パスの設定でグぐれ。
もしくはネットビーンズとかエクリプスとかのIDEでやる。
667デフォルトの名無しさん:2008/01/06(日) 22:50:45
winのJDKインストールするとパス通らなかったっけ?
668デフォルトの名無しさん:2008/01/06(日) 22:54:12
昔の手動で設定したパスが残ってて上書きされなかったとかも考えられる。
669648:2008/01/06(日) 22:54:18
DOS窓って何ですか、
コマンドプロンプトで打つと環境変数path c:\programが定義されていませんと
670デフォルトの名無しさん:2008/01/06(日) 23:01:06
もうスレ違いw
こういうやつが多いから答えたくないんだよなw
671デフォルトの名無しさん:2008/01/06(日) 23:22:08
>669
心配するな、マ暦5年(そのうちJAVAは2年)の俺でも話しについていけないw
なんとかなる!!!たぶん

672デフォルトの名無しさん:2008/01/06(日) 23:25:04
>>671
何年もやっていて結局なんか作ったの?C++? Java?
673648:2008/01/06(日) 23:34:33
エクリプスとやらをインストールしても全く使えないんだが、何なんだこれ。
674デフォルトの名無しさん:2008/01/06(日) 23:39:20
あぁ、もうじれったい
このバカチン!
675デフォルトの名無しさん:2008/01/06(日) 23:39:33
>>673
おまいさんの頭のほうが全く使えないんだと思う。
その調子でNetBeansも入れてやれ。
676648:2008/01/06(日) 23:41:08
>>675
だって無理だもん。天才だけどやる気がない。どうするか教えて。
677デフォルトの名無しさん:2008/01/06(日) 23:46:11
>>676
Eclipse入れたらコンパイルは簡単にできるだろう。
とりあえずチュートリアルとか読め。
どーしてもコマンドラインからコンパイルしたいというなら、
PATHとかから勉強せにゃならんから板違い。

つうかやる気がないならやめとけ。
678648:2008/01/06(日) 23:47:43
やらなならんのだ!
どげんかせんといかん!宮崎をどげんかせんと!!
679デフォルトの名無しさん:2008/01/06(日) 23:48:38
冬休みだしスルー
680648:2008/01/06(日) 23:49:29
英語ばっかで読めない。てかなぜコンパイルができないのかと。
普通初期でできるようになってるべきだろ
681デフォルトの名無しさん:2008/01/06(日) 23:51:39
>>680
バカにはできないようになってる。
あきらめれ。
682648:2008/01/06(日) 23:52:27
いや、DLしないとできないってことは
初期でできないってことじゃん。
頼む!オラに力を!!
javaを使って宮崎をどげんかせんといかんとです!!
683デフォルトの名無しさん:2008/01/06(日) 23:53:06
これで無理なら身近な人に聞け
684デフォルトの名無しさん:2008/01/06(日) 23:59:39
改めて>>649のとこ見てみたけど、ちゃんと「インストール手順」まで載ってるじゃないか
パスの設定やらよくあるエラーへの対処法まで…

まあ、Javaや日本語以外の問題もあるかもしれないが…スレ違いってことで。
685デフォルトの名無しさん:2008/01/07(月) 00:01:06
冬休みだしスルー 
686デフォルトの名無しさん:2008/01/07(月) 00:25:19
おまんこ
おまんこ
おまんこ
おまんこ
おまんこ
おまんこ
おまんこ
おまんこ
おまんこ
おまんこ
おまんこ
おまんこ
687デフォルトの名無しさん:2008/01/07(月) 01:29:27
>>667
WinXPにインストールしてみましたが、
インストールしただけではパスの設定は行われないみたいですね。
688デフォルトの名無しさん:2008/01/07(月) 01:47:23
え?この流れまで含めてネタということで遊んでたんじゃないの、みんな?
それとも、本当の本当に真性がいるのか、、、
689648:2008/01/07(月) 01:54:35
パスの設定の仕方がわからない。
690デフォルトの名無しさん:2008/01/07(月) 02:06:35
691デフォルトの名無しさん:2008/01/07(月) 02:08:37
他人が作成したライブラリ(Commonsとか)がGeneric化されていない場合、
警告:[unchecked] 無検査キャストです

みたいな警告を修正することは出来ないんでしょうか。
692デフォルトの名無しさん:2008/01/07(月) 02:12:12
java って C# の System.Reflection.Emit.ILGenerator みたいなのって無いんですか?
Jython とか JRuby とか Pnuts とか見るに、みんな独自に実装してるみたいですが……
693648:2008/01/07(月) 02:28:25
XPなんだがまず環境設定ってのがコンパネにない
694デフォルトの名無しさん:2008/01/07(月) 02:42:56
>>692
ないよ。
バイトコードを吐く部分を共通化しようとする動きはあるみたい。
http://www.infoq.com/jp/news/2007/09/jlr-project
695692:2008/01/07(月) 02:51:04
>>694
ありがとうございます。
JLR はまだ未完成のようなので、他の実装を参考に自作することにします。
696デフォルトの名無しさん:2008/01/07(月) 02:56:32
>>686 をデバッグするにはどうすればいいでしょうか
697デフォルトの名無しさん:2008/01/07(月) 03:22:47
>>693
コンパネに環境設定ってのがあるっていう記述も
どこにも無いと思うけど。
698デフォルトの名無しさん:2008/01/07(月) 10:26:05
>>665
>>半透明は1.1でも力業で実装してたのですが、ドット単位で計算していたのでは処理が遅すぎて
>これはおかしな話じゃないのか?力技で実装しても、ハードの進化によって逆に速くなるし

1.1で現在進行形で更新を続けてるんですよ。そこで利用者の数を取るか、機能アップを取るかの迷いですね。

例えば1.1のMS-javaだと半透明の画像を表示しようとするとどうしてもディザリング合成になってしまうから
予め半透明で合成済みの画像に書き換えてから表示してました。透明部分があると異様に処理が遅くなると言うのもありました。
そのスピードを基準に作るハメになるとか。しかも拡大縮小するとディザリングされた状態でそのまま拡大縮小されてモザイク模様とか。
…最近のsunでは大丈夫みたいですし、この部分を単純化できれば余力で他の機能をアップできるわけです。
699デフォルトの名無しさん:2008/01/07(月) 11:12:37
これって87行目にどういう例外があったということでしょうか??
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -171008
at test.main(test.java:87)
700デフォルトの名無しさん:2008/01/07(月) 11:27:01
ArrayのIndexがOutOfBoundsな例外
701デフォルトの名無しさん:2008/01/07(月) 14:59:04
好きならば好きだと言おう
ごまかさず素直になろう
702デフォルトの名無しさん:2008/01/07(月) 17:32:53
class MyFrame extends Frame implements ActionListener {
......
}
これをコンパイルするとMyFrame.classとMyFrame$1.classってのができました。
MyFrame$1.classって何ですか?
703デフォルトの名無しさん:2008/01/07(月) 17:41:44
無名クラス。
704デフォルトの名無しさん:2008/01/07(月) 18:12:41
内部クラス。
705デフォルトの名無しさん:2008/01/07(月) 18:51:15
匿名クラス
706デフォルトの名無しさん:2008/01/07(月) 20:32:41
学校の図書館でJavaプログラミング入門という本を借りてきました。
JavaAppletというのが面白そうですが、
いちいちHTMLを書かないといけないのは面倒です。
直接
command Class.java
の形でアプレットを起動する方法はありませんか?
707デフォルトの名無しさん:2008/01/07(月) 20:57:48
appketviewer
708648:2008/01/07(月) 20:58:15
>>697
つまりは、コンパネから環境設定を出す術がない。
どすればいいの。
709デフォルトの名無しさん:2008/01/07(月) 21:13:07
appletviewerでもhtml書かないとダメですよね?
710デフォルトの名無しさん:2008/01/07(月) 21:56:12
Class.java のファイル内に APPLET タグ書いておけば

appletviewer Class.java

で起動できたりする
711デフォルトの名無しさん:2008/01/07(月) 21:57:11
ヴぉけ。<APPLET>タグだけだ。しかもソースファイルに。ぐぐれ。
712デフォルトの名無しさん:2008/01/07(月) 22:02:27
クラス名を引数に取って、html作成・表示するようにすればいいんじゃね?
713デフォルトの名無しさん:2008/01/07(月) 22:37:26
>>708
板違いはそのへんにして他所へ池。
714デフォルトの名無しさん:2008/01/07(月) 23:03:07
String型文字列をKEYとして与えて、
複数のインスタンス(クラスは同じ)を得ることができる
hashのようなものってありますか?

それとも標準的なhashに
Collection関係のインスタンスを格納すべきですか?
715デフォルトの名無しさん:2008/01/07(月) 23:10:29
Map<String, T> で良いんじゃね?
それとも質問の趣旨が違う?
716デフォルトの名無しさん:2008/01/07(月) 23:11:09
あ、なるほど。1つのキーに複数の値を割り当てたいと。

Map<String, List<T>>
717デフォルトの名無しさん:2008/01/07(月) 23:20:16
>>716
そうです。
やはり、Listなどを使うのがよいんですね。
ありがとうございます。

キーでCollection関係のインスタンス(List)をとってきて
そのListに要素加える(add)処理って少し面倒だと思ったので、
何も考えずに使える、よいクラスがないかなと質問しました。
718デフォルトの名無しさん:2008/01/07(月) 23:20:42
>>713
いや、ここ以外で聞いたらここで聞けと言われる気がする。
719デフォルトの名無しさん:2008/01/07(月) 23:21:55
google collections library に MultiMaptってのがあったような
720デフォルトの名無しさん:2008/01/07(月) 23:22:18
>>710
>>711
どこに書くんですか?
ぐぐっても出てきません。
721デフォルトの名無しさん:2008/01/07(月) 23:23:54
>>713
もう釣られてやらなくていいだろう
昨晩だけで辟易した
722デフォルトの名無しさん:2008/01/07(月) 23:25:16
>>720
ソースの最初にタグを入れたコメントをかけ。
723デフォルトの名無しさん:2008/01/07(月) 23:25:41
お、出来た。
724デフォルトの名無しさん:2008/01/07(月) 23:29:37
>>717
アノテーション使えばラクチンよ

map.get(key).add(obj)
アノテーション使えば、サクっとこんなん書けるし

なしだと
((List)map.get(key)).add(obj)

キャストが1つ入るだけだけど気持ち悪い
725デフォルトの名無しさん:2008/01/07(月) 23:31:39
アノテーションどこに使ってんだよwww
726デフォルトの名無しさん:2008/01/07(月) 23:35:05
724の国ではこれをアノテーションと呼ぶんです
727デフォルトの名無しさん:2008/01/07(月) 23:35:41
やっぱりアノテーションじゃなかったか!

なんつーんだっけ?思い出せないw
728デフォルトの名無しさん:2008/01/07(月) 23:37:38
つ ジェネリクス
729デフォルトの名無しさん:2008/01/07(月) 23:45:54
純粋なJavaな質問じゃないかもしれないですが。
JBossでWebシステム作ってます。
自作のEJBがあり、WebアプリからそのEJBを使用しています。
そのEJBはサーバー上にインストールされている外部プログラム(A)
を使用してるのですが、そのプログラムがインストールされている
場所を知る必要があります。

いくつか方法を考えたんですが、どれもしっくりきません。
1.環境変数A_HOMEを設定して、EJBから参照
→ 同様の事をするプログラムが多数あると、環境変数が沢山必要。

2.Webアプリのweb.xmlに記述して、その値をWebアプリから
読み出し、EJBを呼び出す時に値を渡す。
→ Webアプリはwarファイルで配布してるので、配布先の環境に
応じてwarファイルを作り直すのが面倒。

3.ejb-jar.xmlに値を記述
→ 2.と同様の理由で面倒。

何かいい方法ないですか?
730デフォルトの名無しさん:2008/01/08(火) 00:15:28
EJBを自作したとは賞賛する
731デフォルトの名無しさん:2008/01/08(火) 00:25:09
【処理概要】
コマンドラインから入力した2つの数の和を求めて、
その計算結果を戻り値で返すメソッドplus()を
作成します。

class Modori2 {

しかわかりません(すみません)。取り敢えずInterger.parseIntで
2つの数を入力させると思うのですが、plus()をどういう風に組み込め
ばいいのかわからないので、悩んでいます。
732デフォルトの名無しさん:2008/01/08(火) 00:34:34
>>731
多分学校の課題なんだろうと思うが、
メソッドの作り方なんてのは基本中の基本で、そんなものはどこにでも
載ってるから、まずは教科書を見るなり本を読むなりぐぐるなりする癖を付けるのが
先決だと思うよ、マジで。
733デフォルトの名無しさん:2008/01/08(火) 00:36:20
問題文がそもそもおかしい気がする。
734デフォルトの名無しさん:2008/01/08(火) 00:48:16
勝手に問題文を書き換えたんだろ
どちらにせよ単位取り直せ
735デフォルトの名無しさん:2008/01/08(火) 02:11:25
この質問スレのレベルが異様に低い件について
736デフォルトの名無しさん:2008/01/08(火) 02:13:12
Java使いなんてそんなもんだ
737デフォルトの名無しさん:2008/01/08(火) 02:20:13
コマンドラインツールが使えないなんてのは板違いだしな。
738デフォルトの名無しさん:2008/01/08(火) 02:21:36
>>737
それ以前じゃないのかw
739デフォルトの名無しさん:2008/01/08(火) 02:32:17
それ以前ってどこよ?
コマンドプロンプトやDOS起動するところ?
740デフォルトの名無しさん:2008/01/08(火) 02:51:28
public class Hello {
741デフォルトの名無しさん:2008/01/08(火) 03:17:56
public String greet(){
return "Hello World"
}

public void main(String[] args){

Hello greeter new Hello();
System.out.println(greeter.greet());
}

}

これくらいのOOPは思い付かんだろうな・・・そこらへんで止まるなら。
742デフォルトの名無しさん:2008/01/08(火) 03:18:37
ごめん、コンパイルエラーだわw
743デフォルトの名無しさん:2008/01/08(火) 03:23:51
そもそも授業の課題を丸ごと2chで聞くという神経がマジでわからんわ。
何のためにガッコ通ってて、なんのために教員がいて、なんのために教科書があるんだ?
まともに勉強する気がない、もしくはまともに教えてもらえないようなガッコはやめちまえ。
744デフォルトの名無しさん:2008/01/08(火) 04:00:03
ゆとり坊やだからさ
745デフォルトの名無しさん:2008/01/08(火) 07:39:30
>>744
修正してやる!
746デフォルトの名無しさん:2008/01/08(火) 08:52:03
>>729
つ JNDI
747デフォルトの名無しさん:2008/01/08(火) 09:06:39
初めて1ヶ月足らずのの初心者です。
普段は結城浩さんの本を読んでます。

この問題集ってどうでしょうか?
著者の評判等もありましたらお願いします。
ttp://www.scc-kk.co.jp/scc-books/book_data/B-268/B-268.html
748729:2008/01/08(火) 09:17:31
>>746
データソースの設定でJNDIは使ってるんですが(*-ds.xml)、
それ以外の使い方がよく分からいので教えてもらえませんか。

deployディレクトリにあるxmlのどれかを編集するんでしょうか?
それとも新たにxmlファイルを作ってdeployディレクトリに置くのでしょうか。
749デフォルトの名無しさん:2008/01/08(火) 10:24:10
>>745
これがバカさか・・・
750デフォルトの名無しさん:2008/01/08(火) 12:40:52
この写真が全てを物語ってる
媚びるモー娘、毅然とした態度のAKB
タレントとしての器の違いが歴然
http://hello.uh-oh.jp/cgi-bin/aaa/img/hell49003.jpg
751デフォルトの名無しさん:2008/01/08(火) 12:43:10
質問です。

指定した文字がStringの文字列の中に何個あるか知りたいのです。

例えば「あいうあえお」という文字列があった時、「あ」という文字は何個あるかということが
知りたいのです。
この場合だったら2個という答えが返ってきてほしいわけです。

分かりにくい質問かもしれませんが、どうぞよろしくお願いします。

752デフォルトの名無しさん:2008/01/08(火) 12:55:32
>>751
String.indexOf(String,int) を、見付からなくなるまで繰り返す。
753デフォルトの名無しさん:2008/01/08(火) 12:56:44
1.先頭から1文字ずつ「あ」と比較してカウントする

2.「あ」を「""(ヌル文字)」に置換して文字数の差を求める

3.その他好きな方法
754デフォルトの名無しさん:2008/01/08(火) 13:42:24
なるへそ
755デフォルトの名無しさん:2008/01/08(火) 14:03:31
java関係なしに単純なアルゴリズムの問題だよな。
756デフォルトの名無しさん:2008/01/08(火) 16:20:38
windows2000,j2sdk,jbossの環境で既存システム変更で
デバッグのために使用しているSystem.out.printlnがコンソールに出力されません。
またlogファイルにも出力されていません。
そういった設定はどこかにあるのでしょうか?

757デフォルトの名無しさん:2008/01/08(火) 17:03:07
>>756
c:\Program Files\JBoss-version\server\xxx\conf\log4j.xml
とかチェックした?
758デフォルトの名無しさん:2008/01/08(火) 17:54:02
(前略)
<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
 <layout class="org.apache.log4j.PatternLayout">
  <param name="ConversionPattern" value="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
 </layout>
</appender>
(中略)
<root>
 <appender-ref ref="CONSOLE"/>
 <appender-ref ref="FILE"/>
 <appender-ref ref="STDOUT"/>
</root>

のように設定しております。
759デフォルトの名無しさん:2008/01/08(火) 19:53:47
>>751
なんでそんなロジックぐらい自分で思いつけないのかが分からない。

「頭から見ていって数える」という、別にコンピュータに限らず
日常生活でもやるようなごく当たり前の操作をするだけだと思うんだが。
760デフォルトの名無しさん:2008/01/08(火) 20:06:26
ゆとりだからさ・・・。
761デフォルトの名無しさん:2008/01/08(火) 20:08:31
まぁ基本機能すら押えられてない頃はそんなもんだろ。
762デフォルトの名無しさん:2008/01/08(火) 20:33:02
すいません。スレ違いかもしれないんですが質問があります。
質問は、「カーナビのサーバシステムでJAVAやXML等の技術がが何所で使われているのか?」
です。
この場合のサーバシステムとは、携帯電話などの無線通信によりセンターにあるサーバにアクセスして、
情報を取得し、センターではインターネット上に公開されてる気象情報や、周辺のレストランの情報等を集約し、
カーナビに提供するというものです。

自分で調べていたのですが、なかなかwebでは見つからなかったので、知ってる方がいれば是非教えていただきたいです。
763デフォルトの名無しさん:2008/01/08(火) 20:53:59
soapとかxml-wsのことか、これくらいググレばすぐに出てくるぞ。
調べ方が悪い。抗議で何聞いてたんだ?
764デフォルトの名無しさん:2008/01/08(火) 20:58:39
>>763
soapの技術を使ってるのはわかるのですが、例えばカーナビの内部のどの部分にどの技術を使ってるのか、
等がいまいち解らなかったので・・・
ちなみに講義は寝てるかさぼってました。
765デフォルトの名無しさん:2008/01/08(火) 21:07:02
最近こんな質問ばっか。
766デフォルトの名無しさん:2008/01/08(火) 21:11:01
ヒント:学年末と卒論
767デフォルトの名無しさん:2008/01/08(火) 21:15:16
カーナビはハードウェアなわけで・・・。
レイヤーが丸っきし違うだろ。
自分がイミフな質問してること分かってるか?
講義サボった分頭整理して出直して来い。
768デフォルトの名無しさん:2008/01/08(火) 21:16:45
そもそもアーキテクチャやインフラを知るのに内部実装を調べろって言う講師もおかしい。
769デフォルトの名無しさん:2008/01/08(火) 21:20:32
ttp://pc11.2ch.net/test/read.cgi/tech/1196543694/304
システムの設計しろって事らしい
770デフォルトの名無しさん:2008/01/08(火) 21:24:16
Derbyに接続するJSPのサンプルってありますか
771デフォルトの名無しさん:2008/01/08(火) 21:25:40
>>767
組み込み技術と関係有るのでは?
772デフォルトの名無しさん:2008/01/08(火) 21:45:25
>>769
なるほど。

じゃあ、具体的な話しようか。
組み込み向けでjava使ってハードがカーナビならJava MEのコンフィギュレーションはCDCになる。
カーナビならGUIを持つのでプロファイルは最低でもPBPになる。
んでJAX-WSを使うからJSR-172の実装が必要になる。

あとはクライアントとサーバでJAX-WS使って通信すればいい。
卒論か卒業制作か知らんがこれくらい自分で思い付けよ。
何勉強してんだか・・・。

実際に作るのかは知らんが問題はどうやって実装を持ってくるかだな。
まあ、まだ実用外だがPhoneMEが無いわけでもないけど。

あとここで探すと幸せになるかもしれない↓
ttps://www.dev.java.net/
773デフォルトの名無しさん:2008/01/08(火) 22:10:16
こんなバカ共が2chで仕入れた知識で卒論書いて卒業して
世に出て行くかと思うと、うんざりするよ。

「初心者」ってことと、自分で考える能力がそもそもないこととは
全く別問題だよな。
774デフォルトの名無しさん:2008/01/08(火) 22:13:47
レス感謝です。
ちなみに卒論じゃないですよ。
講義のレポートです。
775デフォルトの名無しさん:2008/01/08(火) 22:17:17
講義サボったり寝てたりした奴が2chで仕入れたネタで講義のレポート書こうってんだから
世も末だ。
776デフォルトの名無しさん:2008/01/08(火) 22:18:35
>>773 おまいはこの職業に妄想持ちすぎ。
過去問とお情けで期末通ってた連中と同等レベルのお仕事してるって事を自覚しとけ。
777デフォルトの名無しさん:2008/01/08(火) 22:25:36
>>776
あんたは「同等レベルのお仕事」しかしてないかもしれないけど、
みんながみんなそうだというわけじゃないよ。
778デフォルトの名無しさん:2008/01/08(火) 22:29:34
EJBのインタフェースにVectorって使えないの?
779デフォルトの名無しさん:2008/01/08(火) 22:32:29
はぁ? マネージメントだろうがアーキテクトだろうが、所詮は世渡り上手な文型に
使われるだけの IT ドカタ業。おまいは神聖な仕事してるつもりかもしれんがw
780デフォルトの名無しさん:2008/01/08(火) 22:39:58
馬鹿者度共が夢の跡
781デフォルトの名無しさん:2008/01/08(火) 22:43:26
Java PG の派遣叩き売りしてる時代に Java でコーディングしてます設計できますなんて
何の価値もないしな。JavaHouse 全盛期の連中ももう Java なんて離れてるだろう。
782デフォルトの名無しさん:2008/01/08(火) 22:45:50
JavaHouseか、懐かしいな。
趣味グラマが一番楽だよな。PGなんてドカタ扱いの日本でなるもんじゃない。
783デフォルトの名無しさん:2008/01/08(火) 22:57:51
そうだな、適当なところで趣味と割り切って、スキル生かして客側に転職するのが一番。
下手に孤高化してしまった奴は 40 過ぎで給料ガン下げ or リストラ対象 or 一生
泥沼プロジェクトのエスケープゴートくらいしか使い道がない。自力で海外へコネ
作って旅立てる奴なんて一握りもいないし、日本でこの道を極めるには天井が低すぎ。
784デフォルトの名無しさん:2008/01/08(火) 22:59:18
エスケープゴート w
生贄になる前に逃げ出しそうだな。
785デフォルトの名無しさん:2008/01/08(火) 23:02:31
吹いたw
786デフォルトの名無しさん:2008/01/08(火) 23:02:52
エスケープゴート の検索結果 約 15,700 件中 1 - 100 件目 (1.06 秒)

意外とあるな。
787デフォルトの名無しさん:2008/01/08(火) 23:08:07
それエスケープとゴートで分けられてるから。

"エスケープゴート" の検索結果 約 3,430 件中 1 - 10 件目 (0.14 秒)
788デフォルトの名無しさん:2008/01/08(火) 23:08:46
ネットエスケープ
789デフォルトの名無しさん:2008/01/08(火) 23:26:37
すまん、質問間違えた。
ArrayListってシリアライズできないの?
790デフォルトの名無しさん:2008/01/08(火) 23:54:35
中身次第
791デフォルトの名無しさん:2008/01/09(水) 00:00:48
class test implements Serializable{}
上のインスタンスが詰まってる。
で、EJBインタフェースにListをフィールドとして持つbeanを引数にすると
実行時に落ちる。
792デフォルトの名無しさん:2008/01/09(水) 00:52:47
だからなに?
793デフォルトの名無しさん:2008/01/09(水) 04:34:24
javaからexeファイルを作るのは
どうしたらいいんでしょうか?
794デフォルトの名無しさん:2008/01/09(水) 04:46:36
new File("exe").createNewFile();
795デフォルトの名無しさん:2008/01/09(水) 06:34:54
whileもしくはfor文で、
    N-1
S=1/NΣ(2i+3)
    i=0
のような文を作るにはどうすればよかったでしょうか?

単純にΣ計算忘れてしまってどうやりゃいいのかわからんのですが数学板行った方が早いのかな・・・
796デフォルトの名無しさん:2008/01/09(水) 06:42:15
long sum = 0;
for(int i=0; i<n; i++){
  sum += 2 * i + 3;
}
double s = 1 / (n * sum)
797デフォルトの名無しさん:2008/01/09(水) 06:47:22
○double s = 1.0 / (n * sum);
798デフォルトの名無しさん:2008/01/09(水) 10:21:07
Sがどんどん小さくなるが
799793:2008/01/09(水) 12:21:03
質問を変えます・・・。
classファイルをexeファイルに変換するのは
どうすればいいんでしょうか・・・?
800デフォルトの名無しさん:2008/01/09(水) 12:36:05
801デフォルトの名無しさん:2008/01/09(水) 13:00:07
基本的には無理です
802デフォルトの名無しさん:2008/01/09(水) 13:37:38
実行可能jarファイルで代用するのがベスト
803デフォルトの名無しさん:2008/01/09(水) 13:43:32
インターネット上から取得した複数のXMLファイルの一部または全ての値をまとめて
新しい1つのXMLファイルに出力するシステムを考えています。
サーバとのやり取りはSOAPにしようと思っているのですが、取得したXMLファイルの
処理はDOMとSAX どちらを使うべきでしょうか? また全体として取得したXMLの処理
にはJAX-WS(Webサービスからの取得も想定)とJAXP、新しいXMLファイルの出力には
JAXBを利用しようと考えているのですが、システムとしておかしくないでしょうか?
実際のシステムではどんな感じなのでしょう?
804デフォルトの名無しさん:2008/01/09(水) 14:00:12
>>803
メモリが足りるんならDOMでやるのが楽なんじゃないかねえ。
実際のシステムではSOAPやJAX-WSなんて使わない。重すぎるから。
805デフォルトの名無しさん:2008/01/09(水) 14:06:08
RESTでしょJK
806デフォルトの名無しさん:2008/01/09(水) 15:14:06
>>779
その状態からどのように抜け出すか(今の仕事を生かして)、生きがいを見つけるかが、
賢い人間が考える事なんだよ。

お前みたいにただやられた仕事をこなすことしか思いつかないヤツは、
期末を遊んで通過した連中以下だよ。
807デフォルトの名無しさん:2008/01/09(水) 15:32:24
質問です。

txtファイル
例)
Hello, everyone!
My name is 2channel.
Thank you.

にどの文字が何回ずつ使用されているかを
調べるプログラムを作成中ですが、上手くいきません。
何が悪いのか教えてください。
808デフォルトの名無しさん:2008/01/09(水) 15:35:16
809デフォルトの名無しさん:2008/01/09(水) 15:35:53
どう上手くいかないんだよ「?
810807:2008/01/09(水) 15:37:48
int s;
int n = 50; //改良中
int a[] = new int[n];
int A[][] = new int[n][2];
try {
BufferedReader br = new BufferedReader(new FileReader("ファイル.txt"));
for(int i=0; i<n; i++){
s = br.read();
System.out.print((char)s);
a[i] = s;
}
for(int i=0; i<n; i++){
int k = 0;
int ii;
for(ii = 0; ii < n; ii++){
if(A[ii][0] == 0) break;
if(a[i]==a[ii]){
A[ii][1] += 1;
k = 1;
break;
}
}
811807:2008/01/09(水) 15:39:14
遅くて申し訳ないです!
810の続きです。

if(k == 0){
A[ii][0] = a[i];
}
}
System.out.println();
for(int i=0; i<=n; i++){
if(A[i][0] == 0) break;
else {
System.out.println("i=" + i + " ["+ (char)A[i][0] + "] "
+ A[i][0] + ":" + (A[i][1]+1) + "回");
}
}
(以下略)

A[][0]に文字を、A[][1]に回数を保存しています。
812807:2008/01/09(水) 15:42:19
結果が
i=0 [H] 72:1回
i=1 [e] 101:6回
i=2 [l] 108:3回
i=3 [o] 111:1回
i=4 [,] 44:3回
i=5 [ ] 32:1回
i=6 [v] 118:5回
i=7 [r] 114:1回
i=8 [y] 121:1回
i=9 [n] 110:1回
i=10 [!] 33:1回
i=11 [] 13:3回
i=12 [] 10:1回
i=13 [M] 77:5回
i=14 [a] 97:1回
i=15 [m] 109:1回
i=16 [i] 105:2回
i=17 [s] 115:2回
i=18 [2] 50:1回
i=19 [c] 99:1回
i=20 [h] 104:1回
i=21 [a] 97:1回
i=22 [.] 46:2回
i=23 [T] 84:1回
i=24 [h] 104:1回
i=25 [k] 107:1回
i=26 [u] 117:1回
i=27 [.] 46:1回

となってしまいます。
どうかアドバイスをお願いします。
813デフォルトの名無しさん:2008/01/09(水) 16:01:18
>>812
a が2箇所に別れているのが期待通りではないということ?

まずは、変数名をわかり易く書き換えるべし。
a ⇒ source, text など
n ⇒ sourceSize, textSize など
A ⇒ counters
i ⇒ sourceIndex, textIndex
ii ⇒ countersIndex
k ⇒ found

814807:2008/01/09(水) 16:07:49
>>813
はい、そうです。
同一文字が分かれてしまっているのと、
あとは「o」のカウント回数が違うことも
期待通りの結果でない理由です。

プログラム見ずらくて申し訳ないです。
書き直してもう一度載せた方がいいですか?
815デフォルトの名無しさん:2008/01/09(水) 16:11:38
Java Servlet での質問です。
HttpSession に setAttribute するとき、セットするオブジェクトは
implements Serializable しないといけないのでしょうか?

・セッションレプリケーションをしない
・tomcat を再起動したときに、セッションを復元する必要がない
こういった場合なら implements Serializable しなくてもいいと思っています。

あと、逆に Serializable する場合は、Session にセットする
オブジェクトの属性にプリミティブ型は使えないですよね?
816デフォルトの名無しさん:2008/01/09(水) 16:15:46
>>814
複数レスにまたがるようならどこかのうpろだにあげたほうがいい
817815:2008/01/09(水) 16:17:32
あ、属性にプリミティブ型が含まれているのは、別にいいのか。
http://edocs.beasys.co.jp/e-docs/workshop/docs81/doc/ja_JP/core/index.html
818デフォルトの名無しさん:2008/01/09(水) 16:25:59
>>814
手作業で変数名を変えていけば、途中でバグに気付くと思うよ。
819デフォルトの名無しさん:2008/01/09(水) 16:26:08
今は何も知りませんが
勉強して将来自分で株のチャートソフトを作りたいと思っています

Javaはチャートの描写とかレイヤーみたいに画像を重ねたりすることは可能でしょうか?
820デフォルトの名無しさん:2008/01/09(水) 16:27:21
可能
821807:2008/01/09(水) 16:28:35
>>816
初心者で申し訳ないです。

>>807のプログラムうpろだにあげました。
http://www.dotup.org/uploda/www.dotup.org1987.java.html
良ければアドバイスお願いします。
822807:2008/01/09(水) 16:29:58
>>818
え、なんてこったい!
もう一度前のプログラムからコツコツ直してみます!

ありがとうございます!!
823デフォルトの名無しさん:2008/01/09(水) 16:43:18
皆さんは
ソフトウェア工学は勉強したのでしょうか?

>>820
ありがとうございます
OSの垣根を越えていけるみたいなので楽しみです
824デフォルトの名無しさん:2008/01/09(水) 16:44:01
してあせん
825デフォルトの名無しさん:2008/01/09(水) 16:44:32
したよ
826デフォルトの名無しさん:2008/01/09(水) 17:29:50
javaの型で一番桁数がでかくても表示できる型ってなんなんですかね?
827デフォルトの名無しさん:2008/01/09(水) 17:30:22
BigDecimal
828デフォルトの名無しさん:2008/01/09(水) 17:34:37
Runnableを継承したクラスのループ内でソケットから取得した入力ストリームのreadLineを使っています。
入力待ちの状態で外部からこのスレッドを終わらせるにはどうすればいいのでしょうか?
readLineの前にreadyでチェックを行えばうまくいくのですが動作が多少重くなります。
もっとよい方法がありましたらよろしくお願いします。
829807:2008/01/09(水) 17:37:05
たびたびごめんなさい。

>>807=>>822がやはり解決できません。
if文に問題があるのでしょうか?
830デフォルトの名無しさん:2008/01/09(水) 17:38:54
ステップ実行すりゃいいと思う。
831デフォルトの名無しさん:2008/01/09(水) 17:50:48
>>829
きみのコードでは、配列aの添字はi以外にはならないはず
832デフォルトの名無しさん:2008/01/09(水) 17:53:04
>>828
ソケットか入力ストリームを外からクローズして例外を出させる。
833807:2008/01/09(水) 17:59:15
>>831
配列aに添字iiを入れられないということですか?
834デフォルトの名無しさん:2008/01/09(水) 18:16:53
>>819
JFreeChartのデモでもみれ
835デフォルトの名無しさん:2008/01/09(水) 18:25:54
>>832
書き忘れていましたが外からクローズするのは避けたいです。

同じプログラム内で入力ストリームに入力できるなら
うまく動かせるんですけどそんなことできませんよね?
836デフォルトの名無しさん:2008/01/09(水) 18:26:34
>833
だいぶ真相に近づいてるぞ。がんばれ。

aabb
みたいな簡単な入力でプログラムがどう動くか追ってみるといいよ。
837デフォルトの名無しさん:2008/01/09(水) 18:28:37
>>835
じゃあソケットに setSoTimeout() して 1 秒おきにでも終了フラグが立ったかどうか確認するようなコード書け。
838デフォルトの名無しさん:2008/01/09(水) 19:12:11
すみません。

質問なんですがJSPの文法(BNFやEBNF)ってどこかに置いてありませんか?

JSPパーサを作るためにジェネレ−タに食わす材料です。
839デフォルトの名無しさん:2008/01/09(水) 19:16:04
XSL 使え
840807:2008/01/09(水) 19:45:52
できましたーーー><!!

本当に本当にありがとうございました!!
if文の中の条件を配列と行列のものにすれば解決だったんですね!

本当に長々とありがとうございました!
841デフォルトの名無しさん:2008/01/09(水) 20:01:16
javaにおいてコンパイルするためにJDK6というものをダウンロードしたいです。
しかし、ttp://java.sun.com のサイトのJDK 6 Update 4 のダウンロードボタンを
押してもページが表示されませんと出ます。どこでダウンロードできるのでしょうか?
お願いします。
842デフォルトの名無しさん:2008/01/09(水) 20:16:24
下に同じ
843デフォルトの名無しさん:2008/01/09(水) 20:17:33
上に同じ
844デフォルトの名無しさん:2008/01/09(水) 20:45:30
Windowsで

int i = 1;

iをファイルに出力したときにファイルの中身をバイナリエディタでみたときに

01 00 00 00

にしたいのですがどのようにするのでしょうか?
845デフォルトの名無しさん:2008/01/09(水) 20:50:11
out.write((i & 0x000000FF) << 24);
out.write((i & 0x0000FF00) << 8);
out.write((i & 0x00FF0000) >> 8);
out.write((i & 0xFF000000) >> 24);
846デフォルトの名無しさん:2008/01/09(水) 20:50:47
>>844
そういうのはC言語で
847デフォルトの名無しさん:2008/01/09(水) 20:53:42
Java で何か問題でもあるのか?
848デフォルトの名無しさん:2008/01/09(水) 21:06:15
>>844
java.io.DataOutputStream out = new java.io.DataOutputStream(new java.io.FileOutputStream("filename"));
out.writeInt(Integer.reverseBytes(i));
out.close();
849デフォルトの名無しさん:2008/01/09(水) 21:12:51
サイトでのjavaのページを開こうとしたら
エラーで「"ow"はNullまたはオブジェクトではありません」
と表示され開けませんでした。
大学のPCからだと普通に開けるのですが…
どうすればいいのでしょうか?何も知らない初心者で申し訳ありません。
850デフォルトの名無しさん:2008/01/09(水) 21:21:07
>>849
ブラウザの問題
851デフォルトの名無しさん:2008/01/09(水) 21:25:06
jdk6u4きてるけど繋がらないな。よくある事だが。
852844:2008/01/09(水) 21:56:13
>>845
out.write((byte)(i & 0xff));
out.write((byte)((i >> 8) & 0xff));
out.write((byte)((i >> 16) & 0xff));
out.write((byte)((i >> 24) & 0xff));

でいけました。
853849:2008/01/09(水) 22:01:56
>>850
ブラウザ…?
IEなんですが、なんか設定を変えないといけないのでしょうか?
854デフォルトの名無しさん:2008/01/09(水) 22:45:42
JavaVM のクラスファイルの仕様書いてある日本語のドキュメントってどこかにあったりします?
855815:2008/01/09(水) 22:47:14
すみません、 >>815 についてご存知の方がいたら、レスをいただけるとうれしいです。
よろしくお願いします。
856デフォルトの名無しさん:2008/01/09(水) 22:48:50
今SJC-P対策用の参考書でJavaを勉強してるんですが、
ラッパークラスのオブジェクトの生成について質問があります。

valueOfを使って生成する際、ある参考書には
Integer i = Integer.valueOf(10);
は("10");にしないとコンパイルエラーになると書いていまして、

ある参考書にはvalueOfメソッドは値からオブジェクトを生成する場合にも利用される
(例)Integer i = Integer.valueOf(40);
とあり一体どっちが正しいのだろうと困っています。

valueOfでオブジェクトを生成する場合は必ず文字列じゃなければいけないのか、それとも
文字列、数値どちらを引数にしても生成できるのか、どっちなんでしょうか。

Integer i = Integer.valueOf(10);
はコンパイルエラーになるんですか??
857856:2008/01/09(水) 22:51:09
>>856
すみません最後の二行無視して下さい、ミスです。
858デフォルトの名無しさん:2008/01/09(水) 22:52:33
>>856
実際にやってみりゃ一発でわかるだろうが!!!!
まさか開発環境もなしに「勉強してる」なんて言ってるんじゃあるまいな?
859デフォルトの名無しさん:2008/01/09(水) 22:54:13
>>855
その条件ならする必要もないが、どちらでも良いならとりあえず付けておけば。
プリミティブ型はそもそも設定できない。設定していると思っているのは autoboxing で
変換されたプリミティブ型の Wrapper インスタンス。これはシリアライズ可能。
860デフォルトの名無しさん:2008/01/09(水) 22:58:41
Integer.valueOf(int) が導入されたのは JDK 5.0 から。
それより前ならコンパイルエラーになるし、それ以降ならエラーにならない。
同様にそれ以前に記述された本ならエラーになると書いているかもしれない。
実際に試せば分かるという問題じゃないだろ。
861803:2008/01/09(水) 22:59:12
>>804-805
レスありがとうございます。
実はこれ レポート課題でして授業でSOAPしか習わなかったので 習ってない
RESTを使うのはまずいかなと思いまして。とりあえずXMLの処理はDOMでやるということで色々考えてみます。
ありがとうございました。
862デフォルトの名無しさん:2008/01/09(水) 23:00:04
>>854
ない。英語で十分。
863デフォルトの名無しさん:2008/01/09(水) 23:12:18
>>854

手元に97年発行の本があるなあ。
「The Java 仮想マシン仕様」Addison-Wesley
ISBN4-7952-9671-5
864815:2008/01/09(水) 23:18:37
>>859
レスどうもありがとうございます。
インフラ担当に、使おうとしているロードバランサがセッションレプリケーション型なのか
Sticky セッション型なのか聞いて、対応を考えます。

理想としては、implements Serializable してないオブジェクトを
すでにみんな使いまくっているので、このまま対応なしにて終わらせたいです。

プリミティブ型は、何もせずともシリアライズされるというのは >>817 で理解しました。
865856:2008/01/09(水) 23:30:12
>>860
5.0から数値も可能になったんですか・・・・。
これでもやもやが解けました。
有難うございます。
866854:2008/01/09(水) 23:38:18
>>862
hm。英語力に自信があるのは羨ましい限りです(´・ω・`)

>>863
いや、それの第2版を手に入れたんだけど、
もしかしたら買わなくても済んだのかなーと思いまして(´・ω・`)
867デフォルトの名無しさん:2008/01/09(水) 23:38:35
余談だがいまだに new Integer(x) とやってる奴は今後は Integer.valueOf(x) に書き換えろ。
理由はソース嫁。
868デフォルトの名無しさん:2008/01/09(水) 23:52:37
>>837
readyをしたときにsleepしてごまかそうと思ってたんですが、そっちのほうがよさそうですね。
ありがとうございました。
869デフォルトの名無しさん:2008/01/10(木) 00:11:29
eclipseをアンインストールしたいのですが、どうすればきれいに消せるのでしょうか。
フォルダ吹っ飛ばしたくらいでは前の環境が残っているみたいなんです。
よろしくお願いします。
870デフォルトの名無しさん:2008/01/10(木) 00:38:35
インストール方法が悪い、諦めろ
871デフォルトの名無しさん:2008/01/10(木) 01:13:15
GanttProjectってswing使ってるみたいだけど、なんでネイティブっぽく見えるの?
872デフォルトの名無しさん:2008/01/10(木) 01:17:29
そういう Look & Feel 作ったんじゃねーの
873デフォルトの名無しさん:2008/01/10(木) 01:32:24
最近関係ない質問ばっかだな。
874デフォルトの名無しさん:2008/01/10(木) 01:52:42
>>869
神経質は氏ね
875デフォルトの名無しさん:2008/01/10(木) 01:55:55
ハードディスクを 3 回くらいゼロ埋めすりゃ二度と復元できないくらい激しく消せるよ。
876デフォルトの名無しさん:2008/01/10(木) 06:19:49
>>841
http://java.sun.com/javase/downloads/index.jsp

日本語ページのupdate 4の表記は誤字だと思う。update3が最新のはず。
877デフォルトの名無しさん:2008/01/10(木) 07:35:38
Javaに限ったことではないかもしれないんですが、
1つのプログラムでマルチスレッドでなく、2つのプログラムで
ファイルの読み書きを制限するにはどうしたらいいですか?
一つのプログラムは本当にかなりの頻度で書き込みします。
もう一つのプログラムはほとんど書き込みしませんが読み込みます。
宜しくお願いします。
878デフォルトの名無しさん:2008/01/10(木) 07:42:12
排他制御 ファイルでググレカス
879デフォルトの名無しさん:2008/01/10(木) 07:57:45
>>877
もう一つ識別フラグ用にファイルを作って、それがあるときはビジー、ないときは書き込めるという
約束を二つのプログラムで了解しておくというのがよくいわれるけど、実は完全には保護できず、
運が悪いと壊れる。シビアに連続的にアクセスすると確実に壊れる。

二つめの方法はファイルにアクセスするためのファイル書き込み管理サーバを作って、
ポートを使ってプログラム同士で通信する。
ファイル書き込みサーバは、ポートの要求を待ち行列に入れて順番に処理する。
で、こんなめんどっちいプログラムを書くぐらいなら、DB入れようということになる。
880デフォルトの名無しさん:2008/01/10(木) 08:01:43
>>879
おまいさんの知識はいつの時代の JDK で止まってるんだ?
881デフォルトの名無しさん:2008/01/10(木) 08:32:44
>>880
知らぬが仏。やってみ。
882デフォルトの名無しさん:2008/01/10(木) 08:41:44
やってみ、と言われても createNewFile() を使ってもプロセス間のアトミック性は
保障されないのは API リファレンスにすら載ってたはずだが。
ところで New I/O って知ってる?
883デフォルトの名無しさん:2008/01/10(木) 08:50:21
二度驚いた。

一度目はファイル存在法なんて古典的で不確実な方法をいまどき引き合いに出す奴が居たこと。
二度目はファイルロックをすっとばしていきなり排他制御用のプロセス立ち上げる方法なんぞを持ち出したこと。
884デフォルトの名無しさん:2008/01/10(木) 08:58:17
ここでいいのか分かりませんが、実行時にjavaVMのバージョンを知ることは出来ますか?
バージョンに合わせて実行するアプレットを変更したいのです。
もしくはブラウザにバージョンを表示させてユーザーに選ばせてもいいです。
885デフォルトの名無しさん:2008/01/10(木) 08:59:49
>>879
dクスです。
DB使えばよかったんだけど最初はDB使わなければ金もかからないし
と思っていたんですがコードの量がかなり大きくになってしまい
どうしたらいいかと思っていたんですが、もう一つのファイルをつかってとなると
それも同時アクセスもありえるから・・・なんですよね。
サーバーで管理するというのは思いつかなかったのですが、環境上少し難しいところも
あるので無理かなぁ・・・
実行のされ方にかなり癖があるのでそれを利用してもう少し考えて見ます。
また投稿させてもらうかも知れませんが宜しくお願いします


   


886デフォルトの名無しさん:2008/01/10(木) 09:04:29
>>884
System.getProperty("java.version")
あるいは RuntimeMXBean (とか何とか言うクラス)
887デフォルトの名無しさん:2008/01/10(木) 09:05:26
>>885
FileLock 使え。
888デフォルトの名無しさん:2008/01/10(木) 09:08:47
>>884
まてよ、君はひょっとして HTML か JavaScript での話をしているのか?
889デフォルトの名無しさん:2008/01/10(木) 09:15:22
>>885
HSQLDBとか組み込み型DBが便利よ。タダだし。
大きなものには向かないだろうけど。
ファイル管理はなめてかかると後になって後悔しがち。
890デフォルトの名無しさん:2008/01/10(木) 09:15:49
>886
ありがとうございます。
実行後はそれで試してみます。

>888
書き方が悪かったですね。
アプレットの実行前に知りたいです。
HTMLの実行後に振り分けられる方法が有ればと思っています。
891デフォルトの名無しさん:2008/01/10(木) 09:20:22
ビット演算は C でやれ、ファイル操作は DB 使え。
回答内容も IT 業界の Java PG 層を順調に反映してますな。
892デフォルトの名無しさん:2008/01/10(木) 09:31:58
>>890
public class JavaVMApplet extends Applet{
  public String getJavaVMVersion(){
    return System.getProperty("java.version");
  }
}

というダミーアプレットを用意し LiveConnect で JavaScript から Java VM のバージョンを取得。
あとは該当バージョン用の HTML にジャンプするなり document.write() で <applet> や <object>
タグ書くなり好きにすれ。
893デフォルトの名無しさん:2008/01/10(木) 09:37:39
あるいはランチャーアプレットのようなものの中で JDK のバージョン調べて
AppletContext#showDocument() で該当バージョンの HTML へ飛んだり
JSObject で JavaScript でジャンプさせたり。
894デフォルトの名無しさん:2008/01/10(木) 09:40:41
>>887
>>889
ありがとうございます。参考にさせてもらいます。
FileLockは二重起動チェックにしか今のところは使っていませんが、
利用できるかどうか考えて見ます。
DBもタダのものがあるんですね。データベース使って組んでおけば
よかったと少し後悔です。ただもうかなりの人が自分のプログラムを
使ってしまっているので緊急措置的には少し無理そうです。
ファイルの読み書きがこの2つのプログラムで同時に行なわれる確率は非常に
低いのですが次にバージョンをうpさせるときはデータベースの使用を考えて見ます。
895デフォルトの名無しさん:2008/01/10(木) 09:55:30
>>892
ありがとう! こんな裏技があるなんて思わなかったよ。
896デフォルトの名無しさん:2008/01/10(木) 10:38:47
以下の問題なんですが、何処を修正、追加すればいいのかまるでわかりません、ご教授お願いします

N日分の生産個数データDsから最高値Dmax、平均値Davrをもとめ、以下のように処理するプログラムを作成したい
ここで、Ds.Dmax、Davrは整数値とする
1,データの個数は任意で、入力の完了は入力値が負の値だったときに行う
順に20,13,12,-1の場合、N=3、(20.13.12)として扱う
Nは最大でも100とする
2、最高値Dmax、平均値Davrを計算
小数点以下切り捨て
3,DmaxとDavrが等しい場合、”Antei”と表示
4,3以外の場合、Ddif=Dmax-Davrとし、Ddifの値を表示
897デフォルトの名無しさん:2008/01/10(木) 10:39:56
ちょっとうpろだにあげてきますorz
898デフォルトの名無しさん:2008/01/10(木) 10:44:16
すいませんこの問題です
ttp://www11.axfc.net/uploader/20/so/He_62510.txt.html
PASS:test

というかメソッドがよくわからないorz
899デフォルトの名無しさん:2008/01/10(木) 10:46:56
>>896
だ か ら、その手の質問は宿題スレ逝けと何度言ったらわかるんだ?
900デフォルトの名無しさん:2008/01/10(木) 10:50:15
>>867
非常に為になったのでお礼を言おう

ちなみにオートボクシングのときもInteger.valueOf(x)に展開されてるのかな
それともコンストラクタ?
901デフォルトの名無しさん:2008/01/10(木) 11:00:28
>>900
public class a{
 public static void main(String[] args){
  new java.util.ArrayList<Integer>().add(100);
 }
}
↓コンパイル & 逆アセンブル
public class a extends java.lang.Object{
 …
public static void main(java.lang.String[]);
Code:
0: new #2; //class java/util/ArrayList
3: dup
4: invokespecial #3; //Method java/util/ArrayList."<init>":()V
7: bipush 100
9: invokestatic #4; //Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;   ←★
12: invokevirtual #5; //Method java/util/ArrayList.add:(Ljava/lang/Object;)Z
15: pop
16: return
}
902デフォルトの名無しさん:2008/01/10(木) 11:02:39
>>900
なんだこの上から目線のお礼はw自分脳で神らしいなw
903デフォルトの名無しさん:2008/01/10(木) 11:58:00
宿題スレいってきますλ....
904デフォルトの名無しさん:2008/01/10(木) 13:45:21
ところで Java コアライブラリで STRINGPREP 機能ってないよな?
905デフォルトの名無しさん:2008/01/10(木) 13:53:22
学坊うぜぇ
906デフォルトの名無しさん:2008/01/10(木) 14:58:31
import java.applet.Applet;
import java.awt.*;

public class zahyou extends Applet{

public void paint(Graphics g){
g.drawLine(150,150,0,250);
g.setColor(Color.black);
g.drawLine(150,150,250,0);
}
}

座標系を作りたいのですが、これであってますか?
907デフォルトの名無しさん:2008/01/10(木) 15:07:24
何言ってるのか意味わからんが、それくらいのコードなら実際に試してみればいいじゃん
908デフォルトの名無しさん:2008/01/10(木) 16:25:44
JavaからSWFファイル(Flush)を生成するライブラリは見つけたのですが:JavaSWF
JavaでSWFファイル(Flush)を再生するライブラリはないのでしょうか。
909デフォルトの名無しさん:2008/01/10(木) 16:54:30
見た事ないな。
上にも出てるLiveConnectでJavaから制御ならNNで出来たが。
910デフォルトの名無しさん:2008/01/10(木) 17:14:16
>>908
調べてみた。
http://www.jpackages.com/jflashplayer/
WinオンリーっぽいからJavaの意味ないな。
911デフォルトの名無しさん:2008/01/10(木) 17:20:18
JDICのブラウザコンポーネントでFlashを再生とか。
一応Flash有りのページのブラウズは可能な様子。
912デフォルトの名無しさん:2008/01/10(木) 20:23:16
質問です。
staticメソッドにfinalをつけるのとつけないのとではどのような違いがあるのでしょうか?
913デフォルトの名無しさん:2008/01/10(木) 20:30:51
同シグネチャのstaticメソッドをサブクラスで定義できるかできないかが変わる
914デフォルトの名無しさん:2008/01/10(木) 20:32:52
>>912
finalを付けると、サブクラスで上書きしたり隠蔽できなくなる。
staticが付いてる場合は隠蔽できなくなるだけ。

class base { public static final void method(){} }
class derived extends base { public static void method(){} }
はfinalメソッドを隠蔽しようとしてるのでコンパイルエラーになる。
915デフォルトの名無しさん:2008/01/10(木) 22:17:01
>>913-914
なるほど〜! 理解できますた。
どうもありがとう
916デフォルトの名無しさん:2008/01/10(木) 22:42:23
finalつけても上書きする方法はある

こっそりfinalはずすんだ
917デフォルトの名無しさん:2008/01/10(木) 22:42:35
J2SE SDK をインストールしようと思ったのだけど
NetBeans IDE と Java EE 5 の2つがあって
どちらにすればいいのかがわかりません。
どちらをインストールすればいいのでしょうか?
918デフォルトの名無しさん:2008/01/10(木) 22:43:22
Eclipse
919デフォルトの名無しさん:2008/01/10(木) 22:51:25
>>917
http://java.sun.com/javase/ja/6/download.html
「JDK 6 Update 3」の「ダウンロード」をクリック
「Accept License Agreement」のチェックボックスをクリック
「Windows Offline Installation, Multi-language」をクリック
実行する
920デフォルトの名無しさん:2008/01/10(木) 23:33:58
プログラマってみんなLinux使ってるよな?
921デフォルトの名無しさん:2008/01/10(木) 23:35:42
OS くらい自分で作れよ。
922デフォルトの名無しさん:2008/01/10(木) 23:35:50
私はWindowsです
923デフォルトの名無しさん:2008/01/10(木) 23:57:10
JDKとSDKはどう違うの?
924デフォルトの名無しさん:2008/01/11(金) 00:04:04
JDK は Java の開発キットの表現。
SDK は Java 以外の開発キットを指す (含む) こともある表現。
925デフォルトの名無しさん:2008/01/11(金) 01:13:10
>>923
具グレ。
926デフォルトの名無しさん:2008/01/11(金) 02:21:10
質問です。
【開発環境】
 java(JDK1.4.? マイナー忘れ)
 Olacle10.1
 Eclipse3.2 AllInOne
 struts
 mado XP+IE
 サーバはLinux

で、resultSetの使い方で質問です。
現在、引数ががStringのSQL文、戻り値がresultSet
の関数があり、今回取得したresultSetの文字化けする
コードを一度変換をかけ、サイドresultSetに格納して
戻す処理が必要になりました。

現行、下記の用なStatementでresultSetを作成し、更新可能な
resultSetを作成、updateXXXメソッドで更新をかけ、updateRowはしないまま、
resultSetの内容だけを変えるイメージで作成中です。

Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
ResultSet res = stmt.executeQuery(SQL);


が、この方法だと、単一テーブルを見るSQLは処理可能なんですが、
複数テーブルを参照するSQLでは更新可能なresultSet自体を作成
出来ない為、SQLExせpちおnが発生してしまいます。

どなたか、良い知恵は御座いませんでしょうか?
927デフォルトの名無しさん:2008/01/11(金) 02:27:04
> の関数があり、今回取得したresultSetの文字化けする
> コードを一度変換をかけ、

最初から文字化けしないように取得すれば?
928デフォルトの名無しさん:2008/01/11(金) 02:49:35
DB 上で文字化けしてるレコードを取得ついでに正しく直す設計にしてんでしょ (憶測)。
単一テーブルで SELECT かけるようにすればとしか言いようがない。
てか文字化けレコードをまず作るなと。
929デフォルトの名無しさん:2008/01/11(金) 04:00:58
>>926
>SQLExせpちおn
ツナサンド吹いたwwww
930デフォルトの名無しさん:2008/01/11(金) 04:14:59
こんな時間に綱三度食うなよ
931デフォルトの名無しさん:2008/01/11(金) 06:47:12
どこで質問すべきか分からないのでここで聞かせていただきます。
数学は専門ではないので言葉が多少間違っていたらすみません。

現在行っている研究で、
三次元空間に点が複数あり、その全ての点を通る曲面の関数を近似したいのですが、
まったく方法が思いつきません。

平面状なら、ラグランジュの補間公式等を用いて算出できるのですが、三次元となるとどこを調べたらよいやら、
見当も付きません。

つまり、f(x)に補間する方法はわかるのですが、f(x,y)に補間する方法が分かりません。
どこかにjavaの補間クラスが公開されてたりしませんでしょうか?
932デフォルトの名無しさん:2008/01/11(金) 07:12:41
数学板で聞けばいいと思うお(# ^ω^)
933デフォルトの名無しさん:2008/01/11(金) 07:16:20
Mathematica でも使っとけ。
934デフォルトの名無しさん:2008/01/11(金) 08:04:08
IPv4アドレスの払い出しみたいな処理がしたいと思います。

こんな感じで。
 10.0.0.254
 10.0.0.255
 10.0.1.0
 10.0.1.1
  : :

漠然と
ロングIP化→10進数で加算→元の形式に戻す
とか考えてますが、long2ipとかip2longみたいのってJavaの
どっかのクラスのどっかのメソッドにないでしょうか。

もしくは2進数にして桁上がりありのビット演算とか。
桁上がりのビット演算って普通にできましたっけ?
ロジック作らないとだめでしょうか。
935デフォルトの名無しさん:2008/01/11(金) 08:18:07
BigInteger 使えば良いんじゃね?
ビット幅指定できるし、加算できるし、バイト配列化もできるし。
936デフォルトの名無しさん:2008/01/11(金) 08:22:35
何を言ってるのかわからんw
937デフォルトの名無しさん:2008/01/11(金) 12:00:02
こうか?
InetAddress addr = ...
byte[] b = addr.getAddress();
if (++b[3] == 0) if (++b[2] == 0) if (++b[1] == 0) ++b[0];
InetAddress newAddr = InetAddress.getByAddress(b);
938デフォルトの名無しさん:2008/01/11(金) 12:14:20
こりゃまたトリッキーな条件じゃのう。
939デフォルトの名無しさん:2008/01/11(金) 14:08:16
初心者です。質問です。

import java.util.*;

class TreeSetTest {
public static void main(String[] args) {
TreeSet set = new TreeSet();
set.add("CCC");
set.add("AAA");
set.add("BBB");
set.add("AAA");
Iterator it = set.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
}
}

というソースをコンパイルしようとしたら
注: Test3.java の操作は、未チェックまたは安全ではありません。
注: 詳細については、-Xlint:unchecked オプションを指定して再コンパイルしてください。

というメッセージが出るのですが、どこを直したらよいのか、このエラーメッセージが
何を指示しているのかが分かりません。
ご教授お願いします。
940デフォルトの名無しさん:2008/01/11(金) 14:10:09

糞アメリカ人がWTCジャンプアウト!!!バカザマ!バカザマ!バカザマ!

http://tbn0.google.com/images?q=tbn:d3eyeFZihdYVuM:http://strange_site.tripod.com/wtc_sm7.jpg

これが糞アメリカ人のWTCからジャンプアウトのザマだ

http://tbn0.google.com/images?q=tbn:d3eyeFZihdYVuM:http://strange_site.tripod.com/wtc_sm7.jpg

これが糞アメリカ人のWTCからジャンプアウトのザマだ

http://tbn0.google.com/images?q=tbn:d3eyeFZihdYVuM:http://strange_site.tripod.com/wtc_sm7.jpg

これが糞アメリカ人のWTCからジャンプアウトのザマだ

http://tbn0.google.com/images?q=tbn:d3eyeFZihdYVuM:http://strange_site.tripod.com/wtc_sm7.jpg

これが糞アメリカ人のWTCからジャンプアウトのザマだ

http://tbn0.google.com/images?q=tbn:d3eyeFZihdYVuM:http://strange_site.tripod.com/wtc_sm7.jpg
941939:2008/01/11(金) 14:26:51
すいません、クラス名とTest3.java がおかしなことになってますが気にしないでください。
942デフォルトの名無しさん:2008/01/11(金) 14:27:18
>>939
TreeSet<String> set = new TreeSet<String>();

Iterator<String> it = set.iterator();
943デフォルトの名無しさん:2008/01/11(金) 14:27:37
>>939
TreeSet<String> set = new TreeSet<String>(); 

Iterator<String> it = set.iterator(); 

詳細は「Generics」でぐぐってくれ。
944デフォルトの名無しさん:2008/01/11(金) 15:34:11
>>939
知らないエラーが出たら、とりあえずググレ。
昔はマニュアル嫁だったが、今ならぐぐるほうが楽かと思う。
エラーメッセージは特有の言い回しの場合があるから、割と見つかりやすいはず。

今回は、「未チェックまたは安全ではありません」の辺りかね。
945デフォルトの名無しさん:2008/01/11(金) 16:59:10
String型をint型の配列に変換できますか?
いくらググってもみつからない・・・。
946デフォルトの名無しさん:2008/01/11(金) 17:02:59
どう変換するんだい
947945:2008/01/11(金) 17:45:11
まんまStringの中身をint型の配列にぶち込みたいんですよ。
Stringの中身が"254"としたらint型の配列の中身は254という形で。

948デフォルトの名無しさん:2008/01/11(金) 17:49:59
配列ならば 2, 5, 4 じゃないのか?
toCharArray でばらせばいいだろ
949デフォルトの名無しさん:2008/01/11(金) 17:51:16
Stringを1文字ずつバラす方法、数字文字列のint型への変換の方法、
それぞれ調べて組み合わせればいいじゃん。
950デフォルトの名無しさん:2008/01/11(金) 17:57:34
参照型から基本データ型にはキャストを使っても変換できないから

int i = Integer.parseInt("254");

でラッパークラスのメソッド使用して、文字列から数値取り出して格納するしかないんじゃない?
的外れだったらごめん。
951デフォルトの名無しさん:2008/01/11(金) 18:57:42
というかもうちょっと何をやりたいのか具体的に書くべし。
Stringからint配列の変換じゃ複数の解釈がある。
952デフォルトの名無しさん:2008/01/11(金) 23:02:14
>>810

import java.util.*;
import java.io.*;
public class CharCount1 {
  public static void main(String[] args) throws Exception {
    String fileContent = "Hello, everyone!\r\nMy name is 2channel.\r\nThank you\r\n";
    
    LinkedHashMap<Integer, Integer> map = new LinkedHashMap<Integer, Integer>();
    
    BufferedReader br = new BufferedReader(new StringReader(fileContent));
    try {
      for (int c; -1 != (c = br.read()); ) {
        Integer count = map.get(c);
        map.put(c, (count == null ? 1 : count + 1));
      }
      for (int c: map.keySet()) {
        System.out.printf("[%c] %d: %d回\n", c, c, map.get(c));
      }
    } finally {
      br.close();
    }
  }
}
953デフォルトの名無しさん:2008/01/12(土) 00:26:40
初心者です。どなたか教えてください。

tomcat5.5.20 の tomcat Manager からwarファイルをデプロイ/アンデプロイし
てます。また、tomcatのserver.xmlにJNDIのデータソースを下のように定義して
います。

この状態で、コンテキストパスが /path の path.war を一度デプロイするとデー
タソースがserver.xmlに書かれているというこでtomcat managerからアンデプロ
イできなくなります。アンデプロイしたい場合はserver.xmlのJNDIリソース定義
を一度コメントアウト, tomcatを再起動とかやってます。

運用上どうしても .war ファイルにして tomcat manager から war ファイルの
デプロイ/アンデプロイをしたいと思っているのですがいい方法があったら教えて
いだけますせんでしょうか?お願いします。

<Host name="localhost" appBase="webapps"
      unpackWARs="true" autoDeploy="true"
      xmlValidation="false" xmlNamespaceAware="false">
  <Context path="/path" docBase="path" debug="0"
           reloadable="true">
   <Resource name="jdbc/hoge" auth="Container"
             type="javax.sql.DataSource"
             factory="org.apache.commons.dbcp.BasicDataSourceFactory"
             driverClassName="oracle.jdbc.driver.OracleDriver"
             url="jdbc:oracle:thin:@localhost:1521:SID"
             username="USER"
             password="PASS"
             maxActive="10"
             maxIdle="10"
             maxWait="3000"/>
    </Host>
954デフォルトの名無しさん:2008/01/12(土) 03:23:59
>>953
あてずっぽうで悪いけど <Context> を server.xml じゃなくて個別のファイルに記述するってのはどう?
955デフォルトの名無しさん:2008/01/12(土) 09:59:20
>945
?
import java.util.*;
import java.util.regex.*;


public class KoudesukaWakarimasen{
public static ArrayList<Integer> getIntArray(String str){
ArrayList<Integer> ret = new ArrayList<Integer>();
Pattern pat = Pattern.compile("[0-9]+");
Matcher mat = pat.matcher(str);
while(mat.find()){
ret.add(Integer.parseInt(mat.group()));
}

return ret;
}
public static void main(String args[]){
ArrayList al = KoudesukaWakarimasen.getIntArray("123 456 789 10.5");
for(int ii = 0;ii < al.size();ii++){
System.out.println(al.get(ii));
}
}


}
956デフォルトの名無しさん:2008/01/12(土) 10:01:17
正規表現のコスト高くね?
957デフォルトの名無しさん:2008/01/12(土) 10:05:45
955 じゃないけどこの程度ならどうでもいいレベルでは。
958955:2008/01/12(土) 10:15:25
コードの見易さと必要とされる速度を量りにかけて。

私は見易いコードがすき。
後々手を加えやすいしな。
959デフォルトの名無しさん:2008/01/12(土) 12:31:39
まー速度は、実際にプロファイラで計測してからだよね。
もっと他の点を見落としてる事の方が多いしね。
960デフォルトの名無しさん
Floatの値を、小数点第2位までで表示するメソッドってないでしょうか?
 1 → 1.00
 1.2345 → 1.23
のような感じです。
String#formatでできそうな気がするんですが、使い方が分かりません。