【初心者】Java質問・相談スレッド110【大歓迎】
1 :
デフォルトの名無しさん :
2007/12/15(土) 18:22:46 プログラミング言語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 あたりで。
前スレ
>>729 亀レスですが、ありがとうございました
おっさん!
4 :
デフォルトの名無しさん :2007/12/15(土) 19:18:17
1.5で追加されたマルチスレッド用のAPIを1.4で使用することは 出来ませんか? 1.4用のjarとかあればいいのですが。
6 :
デフォルトの名無しさん :2007/12/15(土) 21:40:04
JAVAスクリプトでお気に入りにとぶだけで自動的にフォーム埋めるのを書きたいです javascript:(function()でvalueのところにパスワードなど書くはずですが…
>>6 javascriptの実装によってpostする文字列が異なる。複数のURL対応は難しいと思う。
8 :
デフォルトの名無しさん :2007/12/15(土) 22:18:00
一つのURL対応でかまいません
9 :
デフォルトの名無しさん :2007/12/16(日) 00:27:13
どなたか教えて〜 インターネットを利用して、Excelにて作成したデータシートに 携帯電話でデータの確認および入力するシステムを作りたいの ですが、どのようにプログラムを書けばデータの確認および入力 ができるのか教えていただけないでしょうか。 よろしくお願いします
>>8 ブラウザが何を送っているか調べるとこから始めないと
11 :
デフォルトの名無しさん :2007/12/16(日) 04:21:32
12 :
デフォルトの名無しさん :2007/12/16(日) 04:24:01
javacでコンパイルはとおるのに、 javaで実行したら java java.lang.NoClassFoundError とメッセージがでます。 どのように対処すればよいのですか。
13 :
デフォルトの名無しさん :2007/12/16(日) 04:39:33
14 :
デフォルトの名無しさん :2007/12/16(日) 10:46:34
RGB値にアルファ値をつけてPNGとして保存するにはどうしたらいいんでしょうか? 今はRGBの値を配列として持っていてそれに対応するアルファの値も配列として持っています。 jaiとかimageioを使いそうなのですがよくわからなくて。よろしくお願いします。
15 :
裕釐 :2007/12/16(日) 12:56:42
PNGべんきょーしる
>>12 それって色々なバージョンがある。
main(String args[]){}がきちんとあるのなら、たぶんJava自体の問題。
Macに新しいJavaを入れたとき、プリインストールのと喧嘩してるみたいだった。
17 :
デフォルトの名無しさん :2007/12/16(日) 13:21:31
質問させてください。 当方、オンラインの麻雀ゲームをしているのですが、JAVAの勉強もかねて、 自分の勝敗、振込み方等をツールを使い、記録させたいと思っております。 JAVAでのネットワーク接続にはSocketメソッドを使用すればよいことまでわかり、 PGを組んでみたのですが、どうも接続先がみあたりません的なエラーが 帰ってきます。 見ていただいてもよろしいでしょうか。(受信されたデータを表示するPGのつもりです。) ○.○.○.○はサーバーのIPアドレスを、△は、ポート番号をあらわします。 PGは次のとおりです。
18 :
17 :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(); } } }
>>17 コマンドラインから、次のコマンドを打ってみよう。
telnet ○.○.○.○ △
21 :
17 :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)
22 :
17 :2007/12/16(日) 14:50:25
>>20 ありゃ・・・接続に失敗しました、となってしまいました。
そうすると、IPアドレス、ポート番号が違っているということですかね
netstatコマンドとか使って調べてみたのですが、調べ方に誤りが
あったみたいです。(´・ω・`)
どうもありがとうございました。
23 :
14 :2007/12/16(日) 15:01:41
>>15 なんか参考に出来るサイトとかあります?pngとしてどう保存していいか調べたいのですが、どう勉強していいかわからなくてここで聞いてます
>>23 TYPE_4BYTE_ABGR の BufferedImage に描画して ImageIO で保存すりゃいいんじゃねーの? (予想)
>>23 Page page = google.search("imageio png 配列").get(0);
String keyword = page.getNewKeyword(); // "MemoryImageSource"
List pagelist = google.search(keyword);
27 :
23 :2007/12/16(日) 21:41:27
>>25 あ、できそう。
でもこの場合のアルファって1or0なんですかね?
仕様書嫁
29 :
デフォルトの名無しさん :2007/12/17(月) 07:52:07
1. 大量の要素が Iterator から返されてくる 2. 1 の要素 1 つにつき、1 ファイルに書き出し と言う事をしようとしています。 2 の過程で一つのフォルダ以下にファイルを置きすぎないよう、フォルダを 切って(例えば 1000 ファイルごとに次のフォルダ)入れています。 しかし、単純にあるルートフォルダを直下にフォルダを切っていくと、 今度はフォルダ自体が 1000 個なりを超えてしまうので、 そうならないよう子なり孫なりに作ろうと思っているのですが、 うまいアルゴリズムが思いつきません。 そもそもこのようなシリアル番号的でなく、大量のファイルを分散して配置 できさえすれば良いのですが、何か良い方法は無いでしょうか?
要素にシーケンス番号でも付けて 10 進数 3 桁ずつでもディレクトリにすりゃ良いじゃん。 シーケンス番号の最大値が事前に分かれば何階層まで作ればいいかわかるだろ。 最大: 10,000,000,000,000,000L 番号: 12,345,678,901,234L → 000\012\345\678\901\234.txt
>>30 ディレクトリが満杯になったら新しいルートディレクトリを作って
その中に満杯になったディレクトリを移動させればいいだけじゃないの?
同じファイルシステム内でのディレクトリの移動は一瞬で終わるはずだし
33 :
Round 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()って、ありでしょうか。設計思想的に。
あり
java実装的には大文字で始まるフィールド名はなしの方向で
俺様実装的には引数なしの set() は reset() の方向で
37 :
Round Trip :2007/12/17(月) 13:41:40
>>34-35 なるほど。
ちょっとミスあり。
public void set()でした。
で、この場合は上記のような記述と
public void set(){
this.A = 0;
this.B = 0;
}
という記述と比較するとどうでしょう。
実際はもうちょっと複雑な処理をしているのですが。
一般論とか、見易さとか、いろいろな点からのご意見を伺いたく…。
よろしくお願いします。
どうでもいい
39 :
Round Trip :2007/12/17(月) 13:43:42
>>36 関数名などは適当につけただけなのです。
あくまで、『オーバーロードされる関数を相互で呼び出す場合の処理』と
考えていただければ…。
>>33 読み方によって色々助言が出そうなソースだが…
set(int, int) を setAB(int, int) もしくは setA(int) + setB(int)、set は reset かね。
まぁ、引数無しの同名メソッドが引数有りを初期値で呼び出すのは、間々ある話。
>>39 なんというか、あのソースだとオーバーロードを行うメリットより、
拡張時等のデメリットの方が大きそうデスヨ
41 :
30 :2007/12/17(月) 14:59:40
>>31-32 ありがとうございます。
>>31 ちょっとすぐに飲み込めていませんが考えてみます。
>>32 すみません。条件が抜けていたのですが、一度格納したファイルのパスは
別の所に記録していまして、移動してしまうとそちらの修正が伴うので
できれば避けたいのです。
42 :
Round Trip :2007/12/17(月) 15:29:31
>>40 拡張時のデメリットって、どんなことでしょうか。
名前がいい加減なのは、仮名だからでして…。
気に入らないようでしたら、hoge()なりunk()なり読み替えてください。
POIでExcelファイルを出力するにはExcelは必要ないのでしょうか?
イラネ
おk
TimeStampをCalendarに変換するにはどうすればよいでしょうか?
Calnedar cal = Calendar.getInstance(); cal.setTime(timestamp);
GJ じゃねーよ。ありがとうございますだろガキこら。
文字コードをShift-JISにすると、ByteBufferに格納された1バイトの文字が デコードできなくなるのですが・・。 何か心当たりがある方、原因と対処方法について教えて もらえないでしょうか。
>>51 文字セット変換部の当該コードもしくは使用クラスを
以下のように書くと、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){ } }
×Shift-JIS ○Shift_JIS
Shift_JISにしても現象変わらずです・・・。 Shift-JISでもSystem.out.println(CHARSET.isSupported("Shift-JIS")); の結果を見る限り良さそうですが・・。
>>53 decode(ByteBuffer) だか encode(CharBuffer) には
入力が1文字だったか1バイトだと正常に出力されないバグがあったはず。
たしか 出力用のバッファの生成関連で失敗するのが原因だったはずなので
decode(ByteBuffer) とか使わないで、自力で出力用のバッファ取って
decode(ByteBuffer, CharBuffer, boolean) とかの方を使えば回避できたような。
ああ・・有り難うございました・・・やはりバグでしたか・・。
59 :
デフォルトの名無しさん :2007/12/17(月) 20:56:06
すいません 超初心者なんですが0.1を10回たすと0.9999999.......と表されるのは何でですか?教えてください。
浮動小数点では 10 進数を正確に表現できないから。
>>59 10進数の 0.1 を自力で 2進数にしてみれば大体わかる。
1/3 を 10進数で小数点以下 5桁までしか保持しなかった場合
0.33333 になって、それを 3倍しても 1.0 にならずに 0.99999 になるのと似てる
>>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); } }
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 にした。
66 :
65 :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) を使えばいいのでしょうか?
67 :
65 :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. でバッファリングする必要がないのであれば、除外する) を満たすには、オレパーサのコンストラクタにはどの型を引数にすれば、 出力先に依存せずにできるのでしょうか? 長くなってしまい申し訳ありません。こういうふうにやればよい、というのがあればよろしくお願いします。
ひとついうがsaxでhtmlは読めんぞ。
ちゃんとhtmlパーサ使え。
>>63 そもそもJMFの使い方間違ってる。コーデック実装してセットしてやれ。
69 :
デフォルトの名無しさん :2007/12/17(月) 23:23:24
コマンドプロンプトでnfkコマンドを使いたいのですが使えないといわれます どこかのサイトからDLする必要がありますか? Windowsで実行したいのですが検索してもLinux関係のものしかでなくてわかりません
> オレパーサのコンストラクタで 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 で良いんじゃねーの。
×new PrintStream(System.out) ○new OutputStreamWriter(System.out)
なんだよ。わくわくしながら開いてみたのにラジオかよ。 つまんねぇ〜
書き込みがあると思ったらJwaveかよ
今夜はくりぃむしちゅーのオールナイトニッポンの日だな
それほど初心者でもないのですが,classファイルが 増えてきたので継承関係を反映したディレクトリ別に ソースファイルを分類したいと考えております. しかしそのような方法について記述した資料をあまり 見かけません.そもそもできないのでしょうか?
ほとんどの入門書に書いてあるパケジとはやりたい事がちがうの?
>>76 それほど初心者でもないのなら、
パッケージでファイルの位置が指定されることぐらい知らんのか?
genericsのワイルドカードでコンパイルエラーがでちゃいます List<?> list = new ArrayList<?>(); なんででしょうか? XPとJDK1.5.0_13、VistaとJDK6_u1、ともにダメでした ?じゃなくObjectにすればうまくいくんですが。
>>76 ソースディレクトリはパッケージ関係なくても別にできる。javac -help 参照。
>>79 new で作るときは型指定必須。それを受ける参照型は <?> でも OK。
まぁ <?> を <Object> と等価とみなしてくれても良いとは思うが、そこらへんは
言語仕様作った連中に聞いてくれ。
82 :
76 :2007/12/18(火) 09:16:56
>>80 実はそれが言いたかったのです.言葉が足りず申し訳ない.
packageのディレクトリ構成は任意性が大きすぎる.
クラス間の継承関係を反映したディレクトリ構造を
package構成にも反映させたいと考えているのですが,
その指針を示すような資料が見つけられません.
そのあたりを必然的に決定できるような方法論はどこかに
ありませんでしょうか.
継承関係を自動的に反映するようなメカニズムが
packageのシステムには無いということなんでしょうけど,
それならば人間の考え方でなんとかならないかという話です.
継承関係とパッケージ階層 (ディレクトリ構造) は何の関係もないし、厳密に 関係させること自体に意味がない。だから 「必然的に決定できる方法論」 などという御大層なものは存在しない。
84 :
76 :2007/12/18(火) 09:29:08
>>83 結局そういうことですね.
継承関係とパッケージ階層 (ディレクトリ構造) とが
うまく対応してくれるとわかりやすいと思ったのですが.
あきらめます.ありがとうございました.
maven だと、ソース(本番用)とテストソースで、package は同じだけどフォルダは別にしてるね。
>>84 蒸し返すようで申し訳ないので、流してくれて結構だが、何が分かりにくいと感じたのだろうか。
クラスの継承だけが分かりにくいのであれば、javadoc で対応できると思う。
クラス図が必要なら、ソースからそれを生成するツールがあったかもしれない。
自分の想像してる解決法が、常に唯一のそれではないかも知れない。
ま、失礼でお節介な戯言で重ね重ね申し訳ない。
レスどうもありがとうございます。
>>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つんでるんですけど・・。
-Xmx512m オプション付きで実行
質問なのですが、現在ハロワの職業訓練でCOBOL・Cを勉強しています。 が、Javaで就職したいと思い、夏から「やさしいJava」「やさしいJava活用編」 「Javaの絵本」を勉強していました。 来年の3月卒業なのでそろそろ就職を考える時期なのですが、 今からどんなところをやっておくと現場でつかえますか? アプレット?データベース?Eclipse? またおすすめの参考書などありましたら教えていただきたいです。よろしくお願いします。
地雷本で就活せんでくれw
>>87 xhtmlが保証されてるのか・・・。
じゃあ、pullパーサ使った方が楽だと思うけど。どう?
パッケージは依存関係で分ける。機能で分けるのはドツボの入り口 相互参照しているパッケージがあったら、そのプログラムは捨てましょう Javaの言語的なパッケージという意味ではないが、 パッケージの分け方についてはロバートのアジャイルなんとかという本が神 マーチンもUMLの本にて、パッケージについてこの文献をリファーしてた
うんち
95 :
76 :2007/12/18(火) 19:01:53
>>86 >>93 ありがとうございます.
示していただきましたツールや本を参考に
もう少し勉強することにします.
STGをつくっていて背景の縦スクロールをおこないたいのですがわかりません Back1.Ymove=10 Back1.Y=Back1.Y+Back1.Ymove; で移動するようにしたのですが同じ画像をなんかいもまわして表示させることだできません この場合だったらうごいた10ドット分の背景をゲーム画面のいちばん左上である座標(0,0)に描画すればいいんじゃないかとかんがえたんですが、 この処理はどういうふうにプログラミングをかけばいいですか?
99 :
デフォルトの名無しさん :2007/12/18(火) 19:30:53
equalsってなんて読むの?
Javaの元ネタってコーヒーなんだぜ?みんな知ってた?
>>101 レスどうもありがとうございます。
pullパーサ = StAXのことだとおもってたけど、
もともとは pullパーサの実装は乱立するぐらいいろいろあったんですね。
>>103 「java コーヒー」でググれ。
ちなみに Java Beans はコーヒー豆なんだよな。
>>104 こういうことは知らなくても何ら差し支えは無い。
>>98 配列をMapのキーにするなんてロクでもない考えのように俺には思えるが、
Arrays.asList でリストにすれば放り込めるんじゃないか?
*7とか懐かしいね。
equalsってなんて読むの?
エクウワァァルス
エコールエス
113 :
98 :2007/12/18(火) 20:45:05
>>107 ありがとうございます。
リストにすれば放り込めることは分かっています。
私が知りたいのは、配列の equals() がこのような仕様になっている理由です。
Mapの件は、不便さの実例に出しただけなのです。あまりいい例ではなかった
かもしれませんが。
114 :
デフォルトの名無しさん :2007/12/18(火) 20:45:07
コルズはねーよw 六本木コルズ
. ∧_∧
(;´Д`)
-=≡ / ヽ
. /| | |. |
-=≡ /. \ヽ/\\_
/ ヽ⌒)==ヽ_)= ∧_∧
-= / /⌒\.\ || || (´・ω・`)
>>114 / / > ) || || ( つ旦O
/ / / /_||_ || と_)_) _.
し' (_つ ̄(_)) ̄ (.)) ̄ (_)) ̄(.))
116 :
97 :2007/12/18(火) 20:50:21
>>106 すいませんでした
誘導ありがとうございます
. ∧_∧
(;´Д`)
-=≡ / ヽ
. /| | |. |
-=≡ /. \ヽ/\\_
/ ヽ⌒)==ヽ_)= ∧_∧
-= / /⌒\.\ || || (´・ω・`)
>>116 / / > ) || || ( つ旦O
/ / / /_||_ || と_)_) _.
し' (_つ ̄(_)) ̄ (.)) ̄ (_)) ̄(.))
>>113 「同一インスタンス」 と 「同一値」 は意味が違うから。
>>113 配列は内容を変更して使うのがメインの使い方だと思ってるからじゃないかと。
StringBuilder/StringBuffer の equals が上書きされてないのと同じ理由で。
言語仕様に関して 「何でこうなっている/ないんでしょうか?」 という素朴な疑問系ネタは
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.
仕様書眺めてみたけど、配列のequalsについての文章見当たらないなぁ・・・ 探し足りないだけかもしれないけれど
あぁ、Object#equalsをオーバーライドしてないだけなのか・・・
>>120 そこには「今更変更できねーよ」って書いてあるだけで、
「元々の言語仕様がなんでそーなってるのか?」って理由は書いてないような。
検索すりゃ幾らでも出てくるから自分で探せ。
125 :
98 :2007/12/18(火) 21:50:06
>>124 一通り検索はしたつもりなのです。申し訳ありませんが、何か一つリンク先を
教えていただけませんか?
一つだけ思い当たるのは、Collectionと違い、配列にはプリミティブ値も入り
ますから、Java1.4以前だと個々の要素にequals()メソッドが定義されていない
場合があることです。
無いならそれは 「90 年代に言ってくれればそういう実装もあったかもね」 という意味だ。
等値性と同一性の違いだろ。 ecma scriptの==と===の違い。
分かってない奴がいるから聞いてくるんじゃないの?
130 :
17 :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();
}
}
}
131 :
17 :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とかにしてみたのですが、やはりだめでした。 よろしければ、ご教授いただけないでしょうか
132 :
98 :2007/12/18(火) 22:57:22
>>125 の続きですが、考えてみたらどうも外れのようです。プリミティブ型は
==, オブジェクト型は equals()で比較すればいいだけだから、コンパイル時
に引数の型で判別して分岐すれば済む話です。
実際、Arrays.equals()は型ごとにオーバーロードされています。同じことは
配列でもできたはずです。
結局、わからないままです。やっぱり、いい仕様じゃないけど今さら変えられ
ないだけなのかもしれません。
>>119 なるほど、安全側に振ったわけですか。しかし、だとするとCollection全般で
equals()が実装されている理由がわかりません。
>>129 私は分かってます。C++も書きますので。つうか
>>98 の質問から、私がアドレ
スの比較とインスタンスの値の比較ぐらいは知っていると読み取っていただき
たかった。
初心者スレで質問してる時点で何も分かってないとみなされますが。
. ∧_∧
(;´Д`)
-=≡ / ヽ
. /| | |. |
-=≡ /. \ヽ/\\_
/ ヽ⌒)==ヽ_)= ∧_∧
-= / /⌒\.\ || || (´・ω・`)
>>133 / / > ) || || ( つ旦O
/ / / /_||_ || と_)_) _.
し' (_つ ̄(_)) ̄ (.)) ̄ (_)) ̄(.))
135 :
デフォルトの名無しさん :2007/12/18(火) 23:14:59
ここ初心者スレじゃないだろ 初心者も歓迎ってだけで。
てst
>アドレスの比較とインスタンスの値の比較ぐらいは知っている javaはそういうことやってないが・・・。
>>132 作ってる人が違うからポリシーも違うとかかも?
そーいや java.util.Vector とかは 1.1 んときは equals() も hashCode() もなかったけど、
1.2 で Collection API のメンバになったときに equals() や hashCode() を追加して非互換出してるしね。
139 :
98 :2007/12/18(火) 23:53:05
>>137 げっ、そうでしたか、すみません。VMの仕組みについてはまったく素人なので。
140 :
デフォルトの名無しさん :2007/12/19(水) 00:00:55
パラメータ管理などのXMLからクラスソース(Bean)を生成できませんか? 簡単な感じのJarとかあれば教えてください。
単純にXML⇒Beanマッピングしたいのか? DiggesterなりJava5のパーサなり好きなの使え
143 :
98 :2007/12/19(水) 00:17:39
>>138 うーむ、意外にそれだけなのかもしれません。でもいかにも不統一だなあ。
Vectorの件は知りませんでした。
>>132 はさらに間違いでした。配列のequals()を引数の型でオーバーロードはできま
せん。なぜなら、Object#equals(Object o)を継承(オーバーライド)しなけれ
ばならないからです。
ですから、型判別による分岐は、コンパイル時ではなく実行時にやらなければ
なりません。ちょっとコストがかさみますね。
まあこれ以上、質問スレで自分の混乱した思考を垂れ流しても仕方が無いので、
この件についてはいったん打ち切ります。皆さん、ありがとうございました。
>>141-
>>142 > クラスソース(Bean)を生成
質問者はソースコードの自動生成をしたいんじゃないかと思うが。
>>144 だからソースに変換する XSL 書けと言っておるのだが。
equals() の話でちょっと思ったが、循環参照している 「同値」 のコレクションを equals() で比較したら StackOverflow になるんかな。
スキーマも不明なのに出来合いのツールなんてあるわけないだろ。
>>147 単に慣れない XSL 使って文句言ってるだけの便所の落書きだなそれ。
使っているコンピュータ上で1回だけしか使われない数値を 毎回生成するようなことはできますか?
1回しか使われないのに、毎回という概念があるとは、随分と不思議な世界だな
あぁ、変ですね、すいませんw 2度と同じ数値を生成しないようなプログラムです。
エスパーになってみる。 重複しない数値と言う意味ではなかろうか?
Digester使ってんよ parseするとObjectだから未チェックキャストの警告でまくりなんよ @SuppressWarningsで黙らせるしかないのかね
コンピュータ上で? プログラム上でならば、1ずつ発行してやればいい話だが、そういう意味じゃないのか?
>>150 FileLock 使って user.home に自分でシーケンスファイル作ればええ。
それを現在時刻(ミリ秒)と組み合わせればまぁ実用レベル。
ん、user.home だとマルチユーザ OS だったら同一コンピュータ上で重複するか。
消される前提になるが java.io.tmpdir の方が良いかな。
まぁ堅牢なのが欲しければ DB 使え。
エスパーになり損ねたようだ。 何桁欲しいのだろうか? 128bitで「殆ど」重複しないものとして、java.util.UUIDがある。
XSLでjavaソース吐けるか? Eiffelでjava吐かせた方がましな気がする。
>>143 とか = の話について。
C# だと、演算子をオーバーライドできるんだっけ?
なので、オブジェクトのフィールドに値をセットするときに、わざわざ setter メソッドを用意せずとも、
hoge.name = "taro";
としておいて、name へ値をセットするときに何か処理をかませたければ、 = の演算子をオーバーライドすることができると聞いた。
だいぶ前に聞いたことを思い出しているだけなので、間違ったことを書いていたらすみません。
Java7 に導入されるかもしれないプロパティも似ているけど、C# と違ってなんか力技すぎると思った。
>>141 おれも興味があるので、あなたがやりたいことをもう少し詳しく書いてください。
>>141 みたいに、XML を読み込んで、すでに定義されているクラスにマップしたいのか、
>>144 みたいに XML からソースコードを自動生成したいのか。
>>156 java.io.tmpdir は、WindowsXP だとデフォルトでは
%UserProfile%\Local Settings\Temp だからマルチユーザで使ってるとダメ
待ち受けに自分のチンコ画像設定した携帯を ドコモショップのお姉さんに渡したらどうなるの?
java.util.UUIDって重複すんの?
>>159 Rubyみたく最初から組み込まれているならばともかく、いまさら導入して混乱を招く必要はあるまい
Javaの強みはJava2以降、6までそれなりに下位互換が実現できているところを忘れない方がいいと
164 :
デフォルトの名無しさん :2007/12/19(水) 08:41:08
kkkkk
マイコゥソフトゥ エポーコンピューラー モーティミーディオ
>>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>
}
なんか力業だな。 まあ、本来の目的と違うことに使ってるから当たり前か。
どこがだよw 単におまいが使い慣れてない & XML/HTML 以外に変換できること知らんかっただけだろ。
読みにくいので不可
読みにくい云々の主観認定はどうでも良い。 これ以上簡単にしようと思ったら <xsl:select>, <xsl:value-of> を簡素に書ける言語しかないんだがな。 Eiffel のほうがマシと言ったんだから、これより簡素なソースで書いてみてよ。
for-eachより、apply-template使ったほうがXSLTらしくていいな。
173 :
デフォルトの名無しさん :2007/12/19(水) 14:02:13
スミマセンちょっとジャバを勉強してみたいのですが、 初心者が中級レベルくらいまで勉強できる本で、 一冊で勉強できる本がありましたら教えてください。 ジャバの入門書は前に買って読んでないのが2冊くらいもっているので 入門書のあとに読むといいのなにかありませんか?
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
>>173 中級がどんなレベルか知らんが、初心者が中級レベルまでなんて1冊じゃ無理
時間もかかるし何冊も読んで実務もこなしたから中級者っていうんだよ。
まあ、EffectiveJavaとかが一通り理解できたら脱初心者くらいだと思われ。
>>169 javaのソースはXML,SGMLで言う文章じゃないから却下だな。
178 :
デフォルトの名無しさん :2007/12/19(水) 14:25:40
>>176 けっこう時間かかるんですね・・・
EffectiveJavaがなにかはわかりませんが、
とりあえずジャバの本手当たりしだい適当に買って勉強してみます・・・
179 :
173,178 :2007/12/19(水) 14:29:38
初心者がジャバを習得するのに何日くらいかかりますか? 経験は全くありません、VBAを少し使ったことがあるくらいです
180 :
173,178 :2007/12/19(水) 14:40:14
スミマセン一冊の本はある程度のレベルになると 同じ本を繰り返し何度も読むようになるのでしょうか? もしジャバ勉強するのに暗記するくらいまで何回も読んだ本などがあれば知りたいなと思います。 いろいろ手当たりしだいの読むのと、核になる本を一冊繰り返し読むのと両方やれば 早く覚えられるということもあるかな
>>179 個人差がとても大きいので一概には言えませんが、自分が見たところ、フルタ
イムで勉強した場合、平均的には、
・最低レベルのコードなら何とか書ける
...1〜2週間
・初心者としてプロジェクトに参加し、人に言われたことをこなせる
...三ヶ月から半年
・フレームワークを理解し、自分でも設計ができる
...1年以上
こんな感じに見えます。ただし、
・脱落者もかなりいます。
・途中で止まってしまう人が多いです。特にデザインパターンを理解できず、
設計ができない人が多い。
・才能に恵まれていたら、ものすごく速く進みます。大変ラッキーです。
>>180 コアとなる本を必要とするかどうかは、人によりけりでしょうね。
自分はこの本で入門して、何度も読みました。いい本だと思いますが、誰にで
も薦められるとは思いません。
「JavaプログラミングBlack Book」
http://www.amazon.co.jp/dp/4844316117
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にする方法を教えてください。
>>184 ArrayList<Object> p = new ArrayList<Object>();
↓
ArrayList<Integer> p = new ArrayList<Integer>();
>>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
189 :
173,178 :2007/12/19(水) 15:42:57
>>182 丁寧にありがとうございます。
論理的な思考ができないので時間がかかるかもしれませんが頑張ってみます。
紹介していただいた本読んでみます。ありがとうございました。
>>183 初歩的な質問ばかりでスミマセンでした、
才能ないので努力で頑張ってもっと高度な質問できるように頑張ります。
>>173 ワザあり! 逆引き速引きリファレンス Java
初心者を脱しかける頃はだいたいどういうメソッドが有るか理解する(決して暗記では無い)のが超大事あるよ。
メソッドがわかれば、この機能はこのメソッドを使って作るって考えられる。また逆説的に、こういうメソッドが有るから こういう機能が簡単に実現できるってわかる。
192 :
173,178 :2007/12/19(水) 16:34:24
>>190 >>191 ありがとうございます。
少し慣れてきたらとても役に立ちそうですね調べながら覚えられるかも・・・
辞書代わりに使ってみます。
193 :
デフォルトの名無しさん :2007/12/19(水) 16:40:00
暗記とどう違うのかよくわからない俺ガイル
195 :
173,178 :2007/12/19(水) 17:31:16
jdk-6u3-windows-i586-p.exeというのをダウンロードして PATH設定して本に書いてあるコード書いて「Hello JAVA!」 出すのに成功しました! 感動したありがとうございました。
そういえば、生まれて初めてprint文のプログラム書いて、 それが動いた瞬間って、すげぇ嬉しかったなぁ。。。
Java プロセス実行中にローカルホスト名変えても InetAddress.getLocalHost().getHostName() が返す値って変わらないんだけど そういうもんなの?
>>195 おめでとう。
誰もが最初はそこから始めるものです。
まだまだ先は長いけど、がんばってね。
>>197 Javaのホスト名は起動時にキャッシュされたのを使いまわしのはず。
設定で非キャッシュに出来たような、出来なかったような…
質問お願いします。 何を入力しても「入力された値は 0 より大きいです.」となるので, 正しく動作するようにプログラムを修正するにはどうすればいいですか??
どうにかすればいい
笑えば良いと思うよ(AAry
>>200 当該メッセージ部分を探して、それを実行する条件を確認。
まぁ。その調子だと条件部分に問題があるんだろうさ。
ここまで大雑把な質問もめずらしいな
日本語でおk
>>200 0より小さい値が入力されたときに 「入力された値は0より小さいです」 と表示するようにすればいいよ
207 :
参戦 :2007/12/20(木) 01:23:29
charだな
チャー
なるほど…ごにょごにょごにょ…と。こんなのかな int i = System.in.read(); if (i > 0) System.out.println("0より大きい!");
大雑把と言うかエスパー専用だろ。
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 と読み込みたいのですが・・。お願いします。
abcdefabcdef というファイルを用意すれば完了
test
>>211 JavaDoc FileInputStream#read()より
public int read()
throws IOException
この入力ストリームからデータのバイトを読み込みます。
入力がまだ利用できない場合、このメソッドはブロックされます。
定義:
クラス InputStream 内の read
戻り値:
データの次のバイト。ファイルの終わりに達した場合は -1
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
例外:
IOException - 入出力エラーが発生した場合
>>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
テキストファイル読み込んで処理させてるんですが、 行頭が記号(@とか*)で始まっている場合これらの記号を取り除いて処理するのって どういう方法がありますかね?indexOfとかでしょうか?
>>220 行毎に読んでいるんだったら
if (line.length() > 0 && line.charAt(0) == '@' ...
line = line.substring(1);
って感じでいいんじゃない? indexOf()でもいいけど。
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(); } }
224 :
223 :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つのプログラムでは何が問題なのか教えてください。
>>223-224 ソースのディレクトリ構成と、コンパイルした後の .class のディレク
トリ構成と、実行時のクラスパス設定 のどこかに問題がある。
このへん、最初は煩わしいので Eclipse とか使うと楽よ。
その煩わしいのを覚えてからIDE使わないと自力でコンパイルできないぞ。
227 :
223 :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使いなさい
綴り間違うようなやつは信用できねえw
エクレーップス だろ、常考。
>>227 D:\Java\Class\>java test.a.A
232 :
223 :2007/12/21(金) 22:08:48
>>231 ありがとうございます。実行できました。
その後カレントディレクトリを
D:\Java\Class\test\a
にしてから同様のコマンドを試してみましたがうまく実行できました。
しかし、なぜカレントディレクトリを
そのクラスがあるフォルダ(この場合D:\Java\Class\test\a)にしてから
実行してるのに、このような指定 test.a.A が必要なのでしょうか?
手持ちの入門書には、package内のクラスを実行する場合は
package名から指定しなければならないとの記載はありませんでした。
> 手持ちの入門書には、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がないとなにもできない厨」より成長するだろう。
励めい。
パッケージ名というか完全修飾名じゃない?
すいません。質問させて下さい。 フレームワーク、Strutsとかなんですが、 どの参考書やサイト見ても便利だ便利だ、とかしか書いてません。 それもほんの少しだけで、後は全部コードが載っています。 サーブレットとJSP、beanで自分でMVCをコツコツ作るのも 5つも6つもファイルを編集してフレームワークに反映させるのも そんなに手間が変わらないように感じます。 黒電話 ・有線で設置場所が限定される ・個人の所有物では無いので意図しない人物が出る ・留守番機能がない 携帯電話 ・無線なので設置場所を選ばない ・個人の所有物なので確実に相手が限定できる ・電話に出れなくとも用件は伝えられる のような、比較してここが便利と明記されている書籍やサイトは無いでしょうか? そもそもフレームワークって必要なのかどうなのかがわからないので 脳みそがどこかで拒否してしまうんです・・・
フレームワークなんてのは何十人もの開発者が何百クラス/ページも使うような開発を 型にはめて、均質化で効果を出すもの。一人がフリーダムな設計でモノ作るのに直接的な 恩恵はないに等しい。 個人的にフレームワークとしての Struts が嫌いな点 ・前世紀時代のサーブレット過渡期の古い設計で進化が止まってる。まぁ一度リリースすると 大規模な設計変更できない FW の宿命なのだが。 ・中〜大規模開発なら、あの程度のものを無理に使うより要件 & システム & 企業文化を 熟知した部隊が 1 から設計しなおした方が後々まで楽。その中で使えるものだけ使えば良い。 ・後付け的に MVC と主張。あれでは 「Bean+JSP+サーブレットで MVC だ」 という主張と同レベル。 ・クラスの命名センス。
MIDPは小規模開発でも定型処理をラップするフレームワーク作っとくと楽だぞ。
論点がずれてるような気がするぜ >236 独自FWは車輪の再発明になる上に、新規に参加したPGが覚えなおさなければならないという最大のデメリットを持つ。 ヘルプに行ってみたら独自実装の糞FWでどうにもならないってのは最悪のパターン。 逆に規模が小さくて俺流の設計でずっと面倒を見られるならば、無理に使わなくてもいい。 5つ6つならいいが、500も600もコツコツ作るのか? 脳みそが拒否するのは解る。 MVCも、デザインパターンも、そもそもオブジェクト指向もそうだったはずだ。 だが、これだけ普及しているという結果を信じて「使えるもの」と思って習得する方が幸せになれると思う。 個人的な見解を言わせて貰えば、StrutsもWebアプリのパターンとして習得しておくと、色々な開発や新しいFWを覚える時に楽。 「StrutsでいうところのActionクラスに相当して・・・」という説明を受けて、Java技術者を名乗るならば解らないのは勉強不足と言える。 「ここの設計はMediatorパターンで・・・」というように説明されるのと同様。
>236 なにと比較して欲しいんだ? Strutsを使った場合と使わなかった場合での比較ならば、メリットを見れば明らかだろ。
Javaに限った話しじゃないけど、 実引数名と仮引数名って、別にした方がいいの?
>>239 Struts みたいなもの使ってたとしても、ウンコまたは何層ものドメインフレームワークのせいで
同じ状況になってるケースが多いけどな。素 Struts で開発してる規模なんて新参でも全設計
すぐ理解できる程度じゃね?
javaプログラミング認定試験を受けようとおもっています お勧め参考書などありましたらお願いします 当方大学3年なのですが、とっといたほうがいいかなと思って受けます。 過去問集が公式見たら売り切れとかどうすれば・・・ 基本情報の時は情報がいっぱいあったけど、これは少ない アドバイスなんかいただけたらと思います
学坊は資格のお勉強なんかより遊べよ
資格もってても意味ない気がする。
246 :
236 :2007/12/22(土) 07:05:15
>>237 > 均質化で効果を出すもの。
> 一人がフリーダムな設計でモノ作るのに直接的な恩恵はないに等しい。
なるほど。「均質化」が効果の1つになるのですか。
>>240 > Strutsを使った場合と使わなかった場合での比較ならば、メリットを見れば明らかだろ。
そのメリットがわからないんです。
自己レスになりますが、「電話」というモノの使い道は理解しているので
携帯電話が便利とわかるのですが、
「Webアプリケーション」がわかっていないのでFWの便利さがわからない自分がいます。
>>239 > これだけ普及しているという結果を信じて
> 「使えるもの」と思って習得する方が幸せになれると思う。
> 「StrutsでいうところのActionクラスに相当して・・・」という説明を受けて、
> Java技術者を名乗るならば解らないのは勉強不足と言える。
・・・ですよね。
> 脳みそが拒否するのは解る。
ありがとうございます。
まずこのアレルギーをなんとかしてJava技術者を名乗っていきたいと思います。
>>246 メリットが解りたいならば、Strutsと同じようなフレームワークを作ってみればいい。
全部とは言わないが、ActionクラスとDispachサーブレット、それらの設定方法くらいまで。
1日もあればテスト込で簡単に作れるとかならばメリットにはならんだろうな。
ちなみに習得には1日もかからない。
>246 あと、どんなメリットが解らないのか具体的にあげてくれ。 単語や背景でかかえる問題を理解していないから、メリットが理解できないんだろうと思う。
249 :
デフォルトの名無しさん :2007/12/22(土) 14:52:31
カットアンドペーストとかドラッグアンドドロップなどの良く使う機能のフリーライブラリってありますか
250 :
デフォルトの名無しさん :2007/12/22(土) 15:18:08
251 :
246 :2007/12/22(土) 16:01:07
>>248 遅レスすいません。
sessionでいろいろ情報が保持出来るのに
何故、ActionFormとかを用いるのでしょうか?
これはひどいw
253 :
246 :2007/12/22(土) 16:25:05
自分でもそう思います。かなりヒドい事を言ってるな、と。 10日でおぼえるJakarta入門教室買ってきました。 あとEclipseもさっぱりなのでビジュアルラーニングEclipse入門も。
>>249 java.awt.dnd
java.awt.datatransfer
>>251 ActionFormの存在とsessionは無関係とは言わないが、従兄弟の友達のおじいちゃんくらいの関係しかないんだが・・・
ActionFormは一言で言えば、リクエストの情報をオブジェクトにラップして使いやすくする為にある。
Validatorと合わせて使えば、Servletで処理をする場合に最初にやる典型処理「リクエストの妥当性チェック」を定型化できる。
で、これがどのようにしてSessionに関連するんだ?w
いつまでもここで続けても仕方ない気がするんだが。 自分で勉強して出直してくれば良いんじゃない?
必要に迫られてフレームワークのような物を作ってみる。 ↓ Struts の機能と比較しながら自分の作ったものを反省する。 同時に Struts だけじゃ機能不足だったなとも思う。 こういう過程が多いんじゃね? あの程度のもん マンセー しながら使ってる奴なんていたらマジでスキル疑う。
258 :
264 :2007/12/22(土) 18:45:58
sessionにsetAttributeで値突っ込んでってのは
オマケ程度の機能なんでしょうか?
これはsessionで。
これはActonFormで。
これはhiddenで。
これはDBからで。
って。
流石にDBとhiddenはかなり志向が違うとは理解できるのですが、
クライアントからの何某を保存する、という意味では
sessionもActionFormも同じに見えるんです。
>>255 その「妥当性のチェック」が出来るってのがActionFormの強みなのでしょうか?
>258 は? sessionはステートレスなリクエストの情報の一部または全部ををサーバー側で保存しておく為の機能でServletの機能(仕様)。 ActionFormはクライアントからのリクエストをラップして使いやすくする為のStrutsの機能。 >256も書いているが、CGIとServletの違いと共通点から学んで来いや
260 :
デフォルトの名無しさん :2007/12/22(土) 19:37:16
socketServerを使用してポートを公開しているプログラムってJava以外の プログラムからでもポートを指定させすれば接続できますか?
当然できる。 プロトコルって単語でぐぐってこい。
262 :
236 :2007/12/22(土) 19:47:19
>>259 ありがとございます。
なるほど、サーブレットの機能とStrutsの機能と
提供するモノの違いなんですね。
何故、リクエスト全てをsessionで活用しないのかというのは
妥当性のチェック・編集/利便性・リソースの消費という点において
ActionFormのが勝っていると考えていいのでしょうか?
>>256 >>259 もちろん自分でも学んでます。
要領と理解力がイマイチですが・・・
>>262 ネットワークの基礎からやった方が良い気がする。
javaプログラミング認定試験を受けようとおもっています お勧め参考書などありましたらお願いします 当方大学3年なのですが、とっといたほうがいいかなと思って受けます。 過去問集が公式見たら売り切れとかどうすれば・・・ 基本情報の時は情報がいっぱいあったけど、これは少ない アドバイスなんかいただけたらと思います
267 :
デフォルトの名無しさん :2007/12/22(土) 22:25:42
MPEG形式の動画やDIVX形式の動画をjavaで扱うにはどうしたらいいでしょうか
JMF Divxはむり。
269 :
デフォルトの名無しさん :2007/12/22(土) 23:04:06
MPEGの画素データも扱えるでしょうか
あるポートが使わているかどうか調べるために ServerSocketをつくってみてもいいですか?
>>270 作るのに許可がいるんですか?
作ってみればいいんじゃないでしょうか。
接続してみれば良いんじゃね。
>>266 正直、履歴書埋めるために取ります
あと、自己AP材料として
専門的なのは仕事内容決まってからのほうがいいと思いまして
>>271 ,272
わかりました。この方法でいきます
JMF の MPEG はネイティブのラッパーだから (Win) 画素は取れないんじゃね? 多分真っ黒になると思う。
バッファからイメージに変換してラスターからhogehogeしてやれば良い。
すいません。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
>>278 つ
http://struts.apache.org/ っつーか何でいつまでもこんなところで聞くの?
本屋に行けばいくらでも本が売ってるんだから、買って自分で試してみればいいじゃん。
手を動かさずにこういう質問する人、すごく嫌い。
同じ初心者でも、まだ「○○の本を買いました。○ページのサンプルを動かしてみましたが、ここがわかりません」
という質問のほうが、相手してあげようという気になる。
>>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さんのいう「手を動かさない」がプログラムを組む事を指すのでしたら
確かにあまり動かしていません。すいません。
半日モニタと本をずっと見ていたので今日はもう環境作れそうにないです。
明日またがんばります。
javaに手を出そうと思ってるんだけど、統合開発環境ってどれがお勧めですか?
>>241 メソッドっていろいろなところから呼ばれると思うんだけど、
呼び元で指定する引数名全部同じにするの?
>278 たぶん、そんな感じだと思うが、考え方は変えたほうがいいと思う。 いつまでも順次処理で処理を考えているとオブジェクト指向的な思考パターンにならないから。
>>281 EclipseかNetBeans
書籍とかネットで解説が多いのはEclipse、スタンダードはこっち
今後普及していく可能性があるのがNetBeans、新しいモノ好きだったりしたらこっち
ただ、プログラミング自体が初めてならば、1〜2ヶ月くらいはエディタ+SDKでやる方がいいと思う。
IDEは機能が多すぎてよく解らなくなるぞ
>>284 PascalとCを習得しているのでEclipseと言うのを使おうと思います
ありがとうございました。。
286 :
279 :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関係だったらそっちで聞けばここよりいろいろ教えてくれるかも
>>283 ありがとうございます。
番号をつけてみたのは指摘する時に指摘しやすいかなと思いつけてみました。
>>286 今まで運よく(?)ロジックのレイヤーだけで生きてこれて
Java(オブジェクト指向)自体は
それなりにゴニョゴニョ出来るんですが、
結局、FWがわかっていないとプログラム言語まで知らないと思われるのが悔しくて。
「Sunに負けたんじゃない、Jakartaに負けたんだ。」って強がってみても何もならず。
まずは会社と同じ環境作成目指します。
> あとstrutsスレがあるので
△△もっとStrutsの良さを教えてくださいSession5
http://pc11.2ch.net/test/read.cgi/tech/1167469508/ なのでしょうか?
結構轟沈していて閲覧者がいるのかどうか怪しくてこちらに書き込みしてみました。
コーディングスタイルについての質問です。 配列を扱う反復子を実装していたのですが、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のパターンが主流ということも・・・?
>288 パターン2 パターン1のようなtry-catchの使い方は原則として行うべきではありません。 可能性があるのであれば、条件判定を行い適切な例外をthrowするのが筋です。 もし、今回のケースではないと思いますが、想定外の状況でIndexOutOfBoundsException が発生した場合、あなたの投げたNoSuchElementExceptionは嘘になります。 これはNullPoなどで例外をcachして・・・という最悪のコードパターンです。 また、try-catchはパフォーマンス上、if-throwよりも重いです。 数回呼ばれるならば大きな問題にはなりませんが、next()のように大量に呼び出されるメソッドであればボトルネックになるかもしれません。
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(); } }
スペースキーとTabを同じ挙動ってなんか考え方がおかしくねーか? それに整合性が取れないって意味が解らないんだが、なんの整合性が取れなくなるんだよ
>>291 他の方法だと、x や y の値が変わらずに想定外なんじゃ…とエスパー。
x, y を現フォーカスから取得するか、その挙動にしたいキーをor条件でつなげば…
294 :
291 :2007/12/23(日) 22:06:57
>>292 具体的には、フォーカスがanswerField[0]にありタブを3回押して[3]に移動した時に
スペースを押すと[4]ではなく[1]に飛んでしまうという事です。
>>293 >他の方法だと、x や y の値が変わらずに想定外なんじゃ…とエスパー。
まさにそういうことです。
>x, y を現フォーカスから取得するか
フォーカス元はTextFieldなのでクラスを拡張すれば出来そうです。
or条件で繋ぐというのはどういうことでしょう?
>>291 の方法は実現するために無理やり実装したものなのであまり上手い方法ではないと思います。
スペース(もしくはエンンター)を押した場合の挙動をタブと同じにする方法があれば良いのですが、
簡単にはいかなそうですか。
最初にユーザーに時間とサウンドファイルを指定させて、 その後は時間が来るまでシステムトレイあたりで待機して、 時間が来たらユーザーの明示的な停止操作があるまでサウンドをループで鳴らす ・・・という目覚し時計みたいなプログラムをつくる場合、 どんな具合にパッケージ、クラスを分けるべきでしょうか
>294 単純にキーイベントを得たら状態チェックしてフォーカスを移動させるんじゃダメなのか? あまり汎用的にやろうとするとハマルんじゃないかと予想 >295 ご自由にどうぞ。 ぶっちゃけ1個のクラスでもいいんじゃね?
>>291 スペースキーのイベントを受け取って
タブキーのイベントを投げるとかw
if (keyChar == KeyEvent.VK_SPACE) Robot#keyPress(KeyEvent.VK_TAB);
>>289 お返事が遅れました。
ありがとうございます。そちらの方法で実装を進めます。
300 :
デフォルトの名無しさん :2007/12/24(月) 03:55:30
linuxのfedoracore4を使っています。 fedora core4 java mysql インストール でぐぐったのですが、でてこなかったので質問します。 phpであったんですが、phpとmysqlをつなぐパッケージ があるように、たぶんjavaもあると思うのですが、 それはなんでしょうか? 教えてください。 板違いの場合はどこで聞けばいいでしょうか? よろしくお願いします。
MySQL JDBC ドライバ でググレば良いんじゃね。
XML 読み込んで DOM 作ったりその逆の処理がボトルネックなんだけどさ。 解析済みの DOM をシリアライズして保存とかそういう事ってできないの?
なんでできないと思うの?
org.w3.dom.Document が java.io.Serializable を extends していないから。
シリアル化ストリームを読み込んでオブジェクトグラフ作る処理はボトルネックにならんのか?
てか、ボトルネックになるほど頻繁にXMLで読み書きする方が問題だろ、常考
SOAP みたいに基盤が XML になってるとどうしようもないけどな。
SOAPとかは通信の為に使うわけで、通信自体の方がボトルネックだろ。 >302は保存したいと書いてあり、全部XMLでローカルファイルに保存しているようなアホ実装かと思われ おまけにボトルネックになるほど頻繁にな
どこにファイルになんて書いてあるんだ? DB に CLOB で突っ込むとかだったら SOAP の構成とあんま変わらんだろ。
シリアライズしてDBに詰めるくらいなら最初からDB使うべ
それはファイルも同じじゃ。 てか永続性のあるデータは普通シリアライズでやらんだろ。
312 :
300です。 :2007/12/24(月) 11:27:47
>312 JDBCでググれ classpathとか解らないならばJavaの基礎から勉強汁 あと、背伸びしてLinux使うな
>>312 MySQL 用の *.jar ファイルを (Javaディレクトリ)/jre/lib/ext の下に放り込む。
むちゃくちゃ教えてんなぁ
巷に幾らでもあるJDBCの入門系サイトの説明で理解できないのは300の問題。
318 :
300です。 :2007/12/24(月) 17:49:45
javaですが、winではパスを通すことはできます。 コマンドプロンプトからも、本見てですが、 で、いろんなサイトでもWindowsはかいてあるけど、 linuxは書いてあるのがすくないんですよ。 linuxでjavaするのは始めてですし、詳しく乗っているサイト しりませんか? または本でもいいです。 お願いします
Linuxスレ池
linuxで開発しなくてもOK
322 :
300です。 :2007/12/24(月) 18:56:04
知っています。
>>318 rm -rf /
と実行して Linux をユーザモードにしろ。
そうしたら Windows でパスを通すときと同じコマンドが使えるようになる。
JDK付属の、classes.zipの中のソースのライセンスは何ですか? VMやコンパイラのライセンスはGPLだった記憶がありますが、classes.zipの中のソースは // Copyright 2006 Sun Microsystems, Inc. All rights reserved. // SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. としか書いていないので詳しい制約が分りません。
>324 基本API関連はSunのものだから勝手に変えるとNG Java7からは知っての通り完全にオープンソース化される(予定)
二次元配列を作ってその中にint型データ格納しようと思っているんですが 最上行と最左列はString型のデータを入れたい(データのラベルをつけたい)と思っています こういうのってどうやって宣言すればいいんですかね?
>326 無理だからクラスを作れ class Data { String[] headers; int[][] values; } ちなみに、配列よりList使った方がいいとは思うけど。
要素の追加・削除が簡単。 配列でも可能だけど、サイズが変ると面倒だし、挿入とか特に面倒。 イメージしてんのはCSVだと思うが正しいか? 読み込むコードを書くと考えてくれ。 配列だと先にCSVが何レコードあるかチェックしないと初期化できない。 横は固定だから配列でもいい。 となると、 class Data { String headers[]; List<int[]> lines[]; } こいつを初期化して、後は1行づつ追加していけば、いいだろ? 要素数がほぼ固定ならば配列、可変ならばListと使い分けるといいが、Listならば配列の機能はまかなうから、全部ListでもOK あわせてMapも勉強するとベター
訂正 class Data { String headers[]; List<int[]> lines;; }
>>325 なんと。そうですか。J2MEのために足りないクラスをコピペしようと思っていたのですが、だめだとは。
諦めて自作します。ありがとうございました。
>331 改変しないで使う分にはいいんじゃね? classファイルを抜いて使う分には問題ないと思うが・・・
>>332 運悪く、java.lang.reflectなど、J2MEにないクラスをimportされているクラスで、
使うにはその部分を削らないと駄目なんです。
オープンソースになっても、CPLのソフトなので、GPLじゃ矛盾するので使えません。参った。
>>329 どーもです
CSVってのも初めて聞きました…(やろうとしていることは近いですが)
336 :
デフォルトの名無しさん :2007/12/25(火) 00:46:42
Javaに組み込めるXMLデータベースってありますか?
Apache Xindice
つローカルファイル それ以外だとOracleとかDB2あたりでないとサポートしてないんじゃね? そもそもDB使えるならばDB使う方が楽だから無理にDBに保存しなくてもいい気がする
むかーし、パフォーマンスチューニングネタで 「System.currentTimeMillis() はなるべく使うな、 new Date() でやれ」 とどこかで見たことがあるのだが、クロックから 64 ビット値参照するより ヒープからオブジェクト確保する方が (& GC 対象のもの作るほうが) 遅ぇよなぁと思ったの ですが、ふと思い出したんでおまいらの意見でも聞かせてください。
実行性能は単なる動く標的ではなく、高速で動く標的
341 :
300 :2007/12/25(火) 03:36:23
323さんやみなさんありがとう。 323さんの言っていることが意味不明です。 この辺のことが書いてある本ありませんか? javaとデータベースとstrutsとデータベースに関する本がほしい またはサイトをお願いします。 linux板でも聞けという意見もあったので、聞いています。 ほんとにがんばってやりたいと思いますので、よろしくお願いします。
>>341 お前らの無自覚な図々しさにはときどき感動する。
343 :
デフォルトの名無しさん :2007/12/25(火) 07:18:40
JSPで作成した変数をJavaで使用することはできないのでしょうか? もしできるのなら、その記述方法を教えてください。
日本語でおk
>>339 System.currentTImeMillis()は予想外に遅かった記憶がある。ループ中
で激しく呼んで問題になったことがあるよ。
なんにしても、どっちが良いかは実測するしかないです。
347 :
300 :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板の人もなんかわからないみたいです。 よろしくです。
>>350 スレタイ嫁。
>>300 Javaの世界だと、PHPみたいな「わかんないけど動いちゃったからOK」という
流儀は好まれないんだよ。実際、それで済まない場合が多いしね。
ご苦労だけど、まず一通り勉強してください。
>351 初心者は歓迎するかもしれないが、放置すべきアホはいるだろ
質問させてください。 実行環境: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の時にも待ち状態になるようにしたいのですが、どの点を修正すれば良いのでしょう。 ご存知の方、ご教授の程お願いします。
>>353 たぶん、処理が早すぎて@で待ち状態になった後にAまで反応してるんだろう。
@とAの間にThread.sleep(100)とかで取りあえずは動くはず。
>>353 Unix系OSなら、期待通りに動くと思うよ。
とりあえず、System.in.read()の結果を出力してみよう。
>>353 Windowsだったら改行コードは \r \n なので、Enterを1回押すだけで2文字分になる
readできれば何の文字でも良い、をやめて、\n が読めるまでループする、に変えてみるといいんじゃない
入力はバッファリングされてるから 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"); 一行で良い。
358 :
353 :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
結城のプログラミングレッスンは初心者のマストアイテムだと思う。
結城さんの本はいいよね。ちょっとゆるすぎて刺激が足りないけど、あの文章は癒される。
361 :
300 :2007/12/26(水) 08:39:22
勉強します。 ありがとうございました。
すいません初歩的すぎるけど c=a/bってやって、0<c<1だったらc=0って帰ってきますよね c=0,0〜みたいに割合を求めたい場合ってどうするんでしたっけ?
double使えばいいじゃん
0.0になっちゃうんですよ 要素を別に表示してみたらちゃんと出る(例えば394/7266)んですけど
c = (double)a/b; じゃなくて c = ((double)a)/b; もしくは c = a/(double)b;
できました、こんなことにお付き合いありがとう
367 :
デフォルトの名無しさん :2007/12/26(水) 18:28:44
Servletでの質問なのですが、 現在、PrintWriterのout.println()を使ってHTMLタグを行ごとに吐いている箇所があり バッファにため込んで、一気にHTMLを吐く処理に変えようと思っています。 ですが、Stringが途中で切れる可能性があるんじゃないかなと思いました。 ご教授願いたいのですが、Stringの最大値って何バイトまでOKなんでしょうか。 Tomcatでの設定に依存するものなのでしょうか。
>>367 理論的にはStringは2G文字までできるんじゃないかと思うが、
なんでバッファにため込む必要があるの?
BufferedWriterを挟むだけではダメなの?
369 :
367 :2007/12/26(水) 19:04:50
なるほど。確認致しました。 プログラミングのブランク空きすぎると駄目ですね。 BufferedWriterを試してみます。ありがとうございます。
もうひとつ初歩的な事教えてください テキストデータからreadLineで読み込んだデータが文字か数字か判定したいと思ったらどうやるんでしょうか?
>>367 >>65 を書いたものです。
ServletResponse#getWriter() をやると PrintWriter が取得できますよね。
Serlvet コンテナが Tomcat の場合、PrintWriter に書き込んでも Tomcat の内部で
バッファリングされているように見えます。
なので BufferedWriter をはさむと、二重にバッファリングされることになるので、
はさむ必要はないのではと思います。
ただし、どうしても自分で「1MB分の String を溜め込んでから吐き出したいんだ」とやりたい場合は
はさむ必要があるかもしれませんが、仮にそうしたとしても、Tomcat 内部で逆に分割されたりするような気がする。
(Tomcat のソースを見て、それっぽく思ったのですが、本当にそうかといわれると自信ない)
間違ってたらすみません。
>>370 つ Integer.parseInt, Double.parseDouble and NumberFormatException
373 :
367 :2007/12/26(水) 21:03:39
>>371 なるほど。少し調査が必要のようですね。
貴重なご意見ありがとうございます。参考にさせていただきます。
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を超えてしまったときの判断がうまくいってないと思ってるんですが。
どなたかスマートにしてもらえますか
学習中ですが環境が無くて、大変恐縮な質問ですが、 class testClass { private int pVal; public static void main (String[] argv) { testClass tc = new testClass(); pVal=1;/*normal*/ tc.pVal=2;/*できないと思うが・・・?*/ } } のtc.pVal=2;は出来るでしょうか? カプセル化の考えに反するから出来ないように 想像しますが、どなたかお答えいただける方お願いいたします。
差の絶対値がiより小さかったら x = ikisakiX; ってすれば終わりだろ。
>>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);
検証してないから符号間違ってるかも
>>375 できるよ。っつーか、pVal=1;/*normal*/ の方がコンパイルエラー。
1. ikisakiX-Xの符号(1, 0, -1)を変数signに持つ。 2. sign==0なら終了 3. ikisakiX-Xの符号がsignと等しい間、Xにi*signを加える 4. ikisakiX-Xの符号がsignと等しくなくなったら、XにikisakiXを代入する あとは、Yについても同じ処理を行う。
380 :
375 :2007/12/27(木) 01:48:58
すいません。pVal=1;/*normal*/は無しでお願いします(*^_^*)
381 :
375 :2007/12/27(木) 01:52:37
>>378 できますか。なるほど。
ほんと浅い質問ですいません。
ありがとうございます。
>>374 int i = 5;
if (Math.abs(X-ikisakiX) < i) X = ikisakiX;
else if (X < ikisakiX) X += i;
else X -= i;
どうもありがとうございました。 大変参考になりました。
384 :
374 :2007/12/27(木) 02:07:06
↑374です
超初心者なのでエラーが出ても対処方法がわかりません・・・ 画像を表示するプログラムなんですが、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ファイルにすると表示されません。下のほうにするといいとは思うのですが そうすると先ほどのエラーが出てきます。 解決方法を教えていただけないでしょうか?
>>385 getClass()は呼んだインスタンスのClassクラスのオブジェクトを返すメソッドだから。
staticなメソッドではインスタンスを特定されないから呼べない。
そのコードが書かれているクラスがHogeクラスなら
JLabel animelb = new JLabel(new ImageIcon(Hoge.class.getResource("animation.gif")));
クラス名.classでそのクラス名のClassクラスのオブジェクトを返す。
>>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なんですが何故そうなるのか全く意味不明です。 初心者の私に説明してほしいです。 お願いします。
A. A と B との関係がない場合もある じゃなくて A. A は B との関係がない場合もある だろ
>>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); ↑では巧くいかずでして…、ご教授お願い致しますっ!
392 :
291 :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();
}
}
}
セキュリティマネージャに怒られたらアウトか。 ロボット使うよりディスパッチし直した方が良いんじゃない?
文字を特定のエンコードでバイナリ化した時のバイト数って getBytes() の長さ見るしかないの?
>>394 正確なバイト数知りたくて、かつ特定のエンコードに依存しない方法となると
いったんエンコードして出力されたバイトデータの長さを見るしかない。
大雑把にバイト数知りたい場合は CharsetEncoder#averageBytesPerChar() * 文字数 とか、
CharsetEncoder#maxBytesPerChar() * 文字数とかって方法もあるけど。
UTF-8とかSJISとかエンコードが固定なら、自分で1文字ずつ長さを数えることはできる でもそんな面倒いこと俺はやらない getBytesの何がイヤなの?
UTF-8は単純には数えられんだろ。 それこそgetBytesとか使わないと。
1byte2byteを節約する時代でもあるまいし、文字の正確なバイト数が必要なケースってどういう状況なんだ?
プロトコルに乗せるのさ
UTF-8は単純に数えられるだろ。サロゲートペアが無ければ。
HTTP で Content-Length 付けたり PreparedStatement#setBinaryStream(in, length) とか やるためだけに getBytes() してたらアホだな。まぁこれらは両方とも振り替え手段がなくは ないが、通信のエンドポイントで事前に送信サイズが必要なのはよくある話。 あとフィルタかましてサイト内の JSP の送信バイト数調べたいとか思っても Writer しか 使えないから char からバイト数調べる方法が必要だし (結構前の Tomcat の話だが)。
402 :
291 :2007/12/28(金) 20:57:33
>>393 出来ました。
これでロボット作れなくても大丈夫ですね。
ありがとうございました。
public void keyTyped(KeyEvent e) {
char keyChar = e.getKeyChar();
if (keyChar == KeyEvent.VK_ENTER) {
keyboardFocusManager.focusNextComponent();
}
}
eclipce3.2にて、プログラムにエラーがなくちゃんと動く状態であれば、shit+ctrl+oで整列ができると思うのですが、 しっかりエラーがないプログラムなのに整列してくれません。 どうすれば自動整列できるのでしょうか?
エスパーさん、ご指名です。 >403 他のソースは出来るのか? 出来るならば、対象のソースがどんな自動整列ができないのか示せよ。
というかスレチ。 eclipseスレで該当ソース出して聞いて来い。
getKeyChar()でVK_ENTERって取得できるのですか?
>>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);
}
>>408 そっすか。まぁ作れりゃ作れますが、ファイル間の参照のログ出力が冗長だなと思っただけなんで放置しますわ。
使い方間違えてるとかじゃなくてよござんした。
JSP 2.0 のタグファイルの body-content 属性に JSP が指定できない (<%= %> 等の スクリプト系処理が内部で使えない) 理由をご存知の方おられてたら何でか教えていただけませんか?
あ、フラグメントに対応できないせいか。サーセンw
Java というか、プログラミング初心者ですが、よろしく願いします。 他のソフトで書き込まれた、整数などを含むファイルを Java で作ったプログラムで読みたいんですが、 方法がイマイチわかりません。 やりたいのは、ファイルをbyte配列に読み込んで、 特定の位置から始まる4バイトをint型変数に代入したいんです。 一つ分かったのは、言語によって、整数のバイト配列が逆になる ことがあるということで、今回の場合、他のソフトで書かれた整数は 下位バイト順に並んでいます。確かJavaは上位バイト順に 並んでいるんですよね。 どうか、よろしくご教授ください。
Java で何か問題でもあるのか?
同意. バイナリ処理とかはJavaでも可能だけど面倒 プログラミング言語には得意な分野と不得意な分野がある事は覚えておいた方がいい。
>414 ならば、お前が教えてやれ。 俺はJavaで教える気にはならん
つ ビット演算
>>412 java.io.DataInput#readInt() とか使ってビッグエンディアンで読み込んでおいて
後で Integer#reverseBytes(int) するとか、
java.nio.ByteOrder セットした java.nio.ByteBuffer 使うとかすれば?
オイオイ… ByteBuffer#order() すりゃ済む程度の処理が面倒だから言語変えろって? C ならビット演算意識しなくて良いわけ? せいぜい unsigned が使える程度だろ。 言語選定にまで飛躍するような話じゃねぇな。
javaで低レベルな演算は面倒。
数行のコード書くのが面倒って・・・。
C を勧めた人は C を知らないと見た。 多分、ビット演算 → よくわかんないから C の方が得意そう、って発想だけで言っている。 普通に C 使える人間なら書かなきゃいけないコードが別段変わらないという事くらいすぐ分かる。
423 :
421 :2007/12/29(土) 14:21:33
ttp://www.02.246.ne.jp/~torutk/javahow2/integer.html 上のサイトに方法が出てたんですが、実は、Javaっていっても、
iアプリのJavaでして、ByteBufferの実装が違うみたいで
応用できませんでした。
わざわざ、こんなことをするのは、携帯のCPUが非力で
前処理をPC上で行い、中間データを渡した上で、携帯上で
残りの処理をしたかったからです。
一応、ビット演算などを使ってやってみたんですが、一部の値で
間違って変換されてしまって...たぶんbyte型が符号付ってことが
影響してるんだと思うんですが、なにしろ初心者でよく分からないんです。
int num = 0x12345678; num = ((num >> 24) & 0xFF) | ((num >> 8) & 0xFF00) | ((num << 8) & 0xFF0000) | ((num << 24) & 0xFF000000); System.out.printf("%x%n", num); → 78563412 ※最初のが >>> でないと気になる人が居るかもしれない
Javaスレだしな、Cを知らない奴は多いんじゃねーか? 自分もCは学生時代に触ったきりだからビット演算なんて10年近く使ってない 遺伝アルゴリズムで少し触った程度だわ
Cならhtons() や htonl() がある
Cもjavaもできないアホなのに
どうして
>>415-416 みたいな自信満々なレスを書けるんだろ
428 :
421 :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); }
>>428 ビット演算するために byte から int へ昇格するときに、byte の最上位ビットが立ってると
負値と見なされるから (例: 0x80 → 0xFFFFFF80)。だから byte をバイナリとして扱う時は
必ず 0xFF でマスクしなきゃだめ。
>>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のオブジェクトって何・・・
>>430 自レス
自分で書いたのをよく見ると、buf[Start+3]とbuf[Start+2]が
逆ですね。
元データがWORDだったんで、影響もなく気づきませんでした(冷や汗)。
立体のひし形に色を付ける所までは出来たのですが 陰影を付けると下の3面と上の2面の色が変わってしまいます。 何故でしょうか?
そういうコード書いたから。
436 :
デフォルトの名無しさん :2007/12/29(土) 16:04:55
前にも少し出てたようなんですけど javaで動画の画素情報を操作する方法はないんでしょうか
Tomcat 6 の特定の Web アプリケーションだけをシェルから再起動さすことって出来る?
438 :
デフォルトの名無しさん :2007/12/29(土) 16:46:21
あるひとつのクラス内で、同じシグネチャのstaticメソッドとインスタンスメソッドとの共存はできないんですか?
Javaにできないことってあんの?
できたら紛らわしすぎ
>>439 風俗で捨てた童貞を取り戻す事はできないよ
>>436 BufferToImageで取得できるImage型をBufferedImage型にキャスト出来ない?
445 :
デフォルトの名無しさん :2007/12/29(土) 18:29:19
知りません><
ブラウザからURLをデスクトップにドラッグアンドドロップすると デスクトップにURLのショートカットファイルできるじゃないですか。 ブラウザからJavaで作ったGUIアプリにドラッグアンドドロップしたら そのURLを認識させたいのですがどうしたら良いのでしょうか。 お願いしますm(__)m
>>447 java.awt.dnd
java.awt.datatransfer
でURLリストをフレーバーとしてjavaに渡す。
URLリストの仕様はRFC嫁。
449 :
デフォルトの名無しさん :2007/12/29(土) 22:24:41
システムクリップボード
DnDだろ
451 :
447 :2007/12/30(日) 00:39:56
r"⌒⌒⌒⌒\ /((""" ヾヾ ゝ `/ (从(井ハハハヘ)丶丶 ((从-== ̄ ==-〈 ii| 丶|/・〉 <・\ 丶リ V" ̄/  ゙̄ |ヘ) | `ー^ _ノ 丶(`ー―→))/|リ <ブハハハ そこは否定しろよ \ / ハ ハ ̄ ̄ / /\
SuSE Linux 10 で Xvfb 立ち上げてなくても AWT で画像処理するプログラムが 普通に動いたんだけど、これって JDK (5, 6) が X11 必要としなくなったのか、それとも SuSE のディストリ構成がデフォルトで Xvfb に代わる仮想フレームバッファ使えるのか どっち?
SE 5.0からXAWTの実装が変わってMotif および Xt ライブラリへの依存の排除ってのが加わった。
母親は殴ると金が出てくる打ち出の小槌 俺の専門書が増えるたびに母親のアザも増えていく
>>454 そうか、じゃ JDK が必要としなくなったわけか。ありがとう。
<foo:bar xmlns:foo="
http://... ">
…
</foo:bar>
の要素に対して Element#getNamespaceURI() を呼んだら "
http://... " が返るかと予想していたのですが
実際は null しか返ってきません。何か誤解してますか?
ん、よく調べたら DocumentBuilderFactory#isNamespaceAware() が false を返しているな。 Java 6 標準のパーサじゃ名前空間関係のメソッドは全部使えないって事?
すんません、DocumentBuilderFactory#setNamespaceAware(true) でイケました orz
というかjava関係ないなDOMなら。
Swing、awtを使ったアプリの設計について 良い参考書、サイト、サンプルソース等がありましたら教えてください。 APIの使い方等は調べればすぐ解決できるのですが、綺麗な実装が出来なくて悩んでます。 GridBugLayout等や、イベント処理するメソッド等を実装していくとソースが ぐちゃぐちゃになってきてしまって。。 デザインパターンの本は1,2冊読んだことあるのですが、 こういった仕組みで、このようなメリットがありますよって解説されても swingアプリ等にはどう活用していけばいいのか分かりません。 最近人のソースコードを眺めたりしてるのですが、 ここでSingletonで実装してるのはなぜだろう?とか、 この人は、普通の人はやらないような実装(癖?)をしてるんじゃないだろうか? など、模範としていいのかも正直分かりません。。
r"⌒⌒⌒⌒\ /((""" ヾヾ ゝ `/ (从(井ハハハヘ)丶丶 ((从-== ̄ ==-〈 ii| 丶|/・〉 <・\ 丶リ V" ̄/  ゙̄ |ヘ) | `ー^ _ノ 丶(`ー―→))/|リ <ブハハハ そこは否定しろよ \ / ハ ハ ̄ ̄ / /\
>>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にできるんだから、どこかで 変換している関数を呼んでいると思うんですがよくわかりませんでした。 よろしくお願いします。
その程度で良いなら幾つもあるよ。
>>466 Image.write には OutputStream 受け取るオーバーロードがあるから、
BufferedOutputStream でも渡しとけよ。
r"⌒⌒⌒⌒\ /((""" ヾヾ ゝ `/ (从(井ハハハヘ)丶丶 ((从-== ̄ ==-〈 ii| 丶|/・〉 <・\ 丶リ V" ̄/  ゙̄ |ヘ) | `ー^ _ノ 丶(`ー―→))/|リ <ブハハハ そこは否定しろよ \ / ハ ハ ̄ ̄ / /\
もうそれ面白くねーから
472 :
デフォルトの名無しさん :2007/12/31(月) 15:12:04
JAVA MEDIA FRAMEWORK に関して、質問してよろしいでしょうか。 float型配列にrateを取っておき、それをplayerのsetRate()で、 映像に動的にrateの変化を反映させるプログラムを作りました。 しかし、これがまたカクカクとして、とても見れたもんじゃありません。 というより、ちゃんと時間通りに再生時間バーが動いているものの、 肝心の映像が動いているように見えないことすらあります。 ※待機時間は、Threadのsleep()と、 Timeクラスのオブジェクトを使ったsetMediaTime()の 両方を試しましたが、まだ前者のほうがましでした。 こういう場合に、どのような解決策がありますか? playerを再生する前に、あらかじめrateとそのrateで 開始させる時間を決めてから再生することは可能なのでしょうか。 それとも、playerでなくprocessorを使えば解決できるのでしょうか。 ご存知の方がいらっしゃいましたら、よろしくお願いします。
>>471 r"⌒⌒⌒⌒\
/((""" ヾヾ ゝ
`/ (从(井ハハハヘ)丶丶
((从-== ̄ ==-〈 ii|
丶|/・〉 <・\ 丶リ
V" ̄/  ゙̄ |ヘ)
| `ー^ _ノ
丶(`ー―→))/|リ <ブハハハ そこは否定しろよ
\ / ハ
ハ ̄ ̄ / /\
二つのbyte配列(b1[], b2[])が等しいかどうかを判定する際、以下のような方法に危険な点はありますでしょうか? if (new String(b1).equals(new String(b2)) ....
>>474 1.1以前使ってるとかいうのでなければ、
java.util.Arrays.equals(b1, b2) した方が楽。
printfで、出力桁数調整をするにはどうすればいいんでしょうか? 大きな数、たとえば10000000000をprintfで表示するとそのまま表示されてしまいますが printと同じように1.0E10みたいに表示したいんです。 また、小数点以下何桁まで表示するかを調整したいのですが どうすればいいんでしょうか? 上の例でいくと1.0E10を1.0000E10としたりするやり方です。 説明下手ですいません
>>477 printf("%.4E", (double)10000000000L)
>>475 どういう危険なのでしょうか?
>>476 そんな便利なメソッドがあったのですね。
こちらを使うことにします。ありがとうございます。
>>480 変換できないバイトがあった場合、
それが何であれ同じ文字(典型的にはU+FFFD)に変換される可能性がある。
よって new String(b1).equals(new String(b2) が true を返しても、
b1 と b2 の内容が同じとは限らない。
もうひとつ、エンコーディングを明示的に指定してないから
実際に使われるエンコーディングがプラットフォームやロケール設定で変わる。
放置すると、あるマシンでは動くけど、別のマシンでは動かないといった
原因を特定しにくいバグになる可能性が高い。
Effective Java の最新版が2007年中にでるとかいう話を見た気がするのですが まだ発売されてないですよね? いつ頃発売されるか分かりませんでしょうか?
483 :
466 :2007/12/31(月) 19:08:49
>>469 ありがとうございました。意味がわかってない部分もありますが、
調べて試してみます。
485 :
デフォルトの名無しさん :2007/12/31(月) 19:41:03
>>484 amazonって未来に発売される書籍情報ものってるんだ。
初めて知った。今後はそういう視点でもチェックしなきゃ。
時系列の操作はClockとTimeBase使うんだぞ。ググレ。
489 :
デフォルトの名無しさん :2007/12/31(月) 20:42:48
>>485 式にするとこうだ。
MediaTime = MediaStartTime + Rate(TimeBaseTime - TimeBaseStartTime)
あけましておめでとう! 今年もよろしく!
あんた誰?
テスト
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 ありがとうございます。
構造はいまいち理解できませんが、
無事記事どおりにページが表示されました。
MVCについて理解できるサイトないですか? 今Webアプリ作っているのですがどうしてもVとCがくっついちゃうんですけどorz
MとCがくっつきやすいと言うならまだ分かるけど
解説なんて幾らでもあるっしょ コーディングのコツまで行くとほとんどないと言ってもいいが VとCがくっつくというのはどんな構成にしているのか解らない Cはリクエストを処理してどんな処理(M)を行い、どの表示(V)を行うか、で終了だぜ。
SwingのMVCとWebアプリのMVCじゃ思想は一緒でも実装は随分と違うと思うけどね Webアプリだと、MとCがくっつきやすいのは確か 特に参照系の画面だとCでデータ取得までやってしまうかどうかはよく議論になる (Modelに切り分ける派と、直接DAOなり呼んでいいじゃん派)
MVCで思ったけどMorphicのsmalltalk以外の移植ってないな。
MIDIファイルをJava上で再生する場合と Media Playerなどの再生ソフトで再生する場合とで 音色が違って聞こえます。 音色を一致させるにはどうしたらいいでしょうか。
あったのか。
まあ、考えてみりゃObjective-Cはそりゃあるわな。
>>503 無理、MIDIの勉強して来い。
>>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);
}
>>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 で再生したのと少し違う音がでたなぁ…。
>>503 ごめん、506 はこれが要る。
MidiDevice.Info[] info = MidiSystem.getMidiDeviceInfo();
>>503 あと、
>>507 の info[1] とか device.getReceivers().get(1) の数字は適当に
変えろよ。俺の環境での値だから。
javaのサウンドバンクを一番良いやつにするのが一番早くて、環境固有の問題が発生しなくて良いんだがね。
511 :
503 :2008/01/02(水) 20:57:57
jreの中にあるsoundbank.gmを消したら 同じ音が出るようになりました。
512 :
デフォルトの名無しさん :2008/01/02(水) 21:08:48
あほか?
513 :
506 :2008/01/02(水) 21:58:17
>>511 実験もやってまじめに答えた俺の立場はどうなる。
ただのバカか釣りかはっきりしないと506が報われないなw
というか普通はサウンドバンク消すとサウンドバンクがねーぞって javaに怒られるんだが506のコードでデバイス自力で拾ってるから再現しないってだけか?
J2EE の日本語版 API リファレンスって 1.3 までしかないの?
ない
↑Web で閲覧できる奴ね。 JSTL のリファレンスまとめてんだけどリンクの飛ばし先で迷ってる。
矢印失敗 orz どうもでした。
ほぼ初心者です。卒業制作の一環で、Java3Dを使ったソフトを作っています。
GUI(swing)から画像ファイル名を指定してテクスチャを貼り付けたいのですが、
Java3Dのちょっと変わった構造からどのようにすればいいか分かりません。
現状しょうもない体裁をとったものがありますが、ファイル名をString型で
保持してtextureloaderにつければ、と考えています。他に有力なやり方が
あればご教授下さい。
http://www.dotup.org/uploda/www.dotup.org6709.java
javadoc読んでから聞け
ソフトウェア開発に興味があってJava言語を勉強しはじめた初心者です。 3日前にJavaの絵本という書籍を購入しました。 まだチンプンカンプンです。 慣れてきたらIDEを導入したいと考えてるんですが、どれが良いのか、どれが定番なのか、 さっぱり分かりません。 ・Eclipse ・NetBeans の2つが定番なのでしょうか? また、それ以外にお勧めとかありますか? Java Studio CreatorとかJava Studio Enterpriseとかはサーバーサイドって書いてるから用途が違いますよね?
チンプンカンプンな間はテキストエディタ使っておけ IDEを使うと、IDEの操作を覚えるのと言語を覚えるのが同時になって混乱する どうしてもIDEが使いたいならば、Eclipseで始めるJavaみたいなタイプの本を買うべし NetBeansの奴は今のところないのでEclipseのが情報も多いから良い NBは春くらいにはきしだその本が出るらしいけど
>>523 レスどうもです。
とりあえずTeraPad入れたのでそれでがんばって覚えます。
525 :
520 :2008/01/03(木) 02:11:16
526 :
520 :2008/01/03(木) 02:14:59
>>521 javadocは今まで使った事がなく生成の仕方が
よく分からなくて・・・
(エラーの解消の仕方が分からない)
出来ればその辺も含めて教えていただけないでしょうか?
ググレカス^^
>>522 GUIをもった普通のデスクトップアプリケーション作ることが多いならNetBeansのほうが楽かもね。
NetBeansなら「創るJava」という本がお勧め。
現在実行中のJarのマニフェストの情報を取り出すにはどのようにすればよいでしょうか?
530 :
デフォルトの名無しさん :2008/01/03(木) 11:18:28
今年で33歳、Java言語でプログラミング覚えようと思ってますが 遅いでしょうか? 個人差あると思いますが、普通のレベルまで習得するのにどの程度の期間がかかるでしょう?
すみません。単純に Hoge.class.getResource("/META-INF/MANIFEST.MF"); これでアクセスできますね。 お騒がせしました。
532 :
デフォルトの名無しさん :2008/01/03(木) 12:06:35
>530 他の言語を幾つか習得している上でならば遅くも何とも無いだろ 普通がどんな普通かは知らんが基礎的な文法を学ぶには1ヶ月もかからん まったくプログラミングがはじめてってならば、軽い言語でプログラミングを学んでからの方が楽。
>532 FireFoxならば選択した部分のソースを表示できるぜ 普通にソース出して見られないのは、インラインフレームとかAjaxで埋め込まれているからだと思われ
何度もすみません。 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貼ってもらっていいすか?
>>536 続きはソフトウェア板かどっかでやるのがいいんじゃね?
>536 最初からスレ違い
>>530 思い立ったが吉日
ちょっと違うか
やる気と才能と「普通レベル」の内容によるけど
サンデープログラマで気軽にツールを作りたい程度、なら楽勝
もし仕事として普通に即戦力になる程度、ならかなり修行が必要だと思う
まあ、33歳未経験ではいくら死ぬほどの修行をしてエキスパートになったとしても雇ってくれんと思うが
ブラックなら余裕 とりあえず2年くらいはデスマって経験年数つけなきゃどうにもならん
>>522 じぶんもそれなりの見識を持っていると思っているが、
NetBeansなど思いつかない。eclipseが筆頭候補。
思いつかないってのは見識が低いなw 日本語の情報量さえ増えれば、NetBeansは対抗しえるほどに成長している 最新技術を試したり、Swing使いたかったり、Railsに興味あったりするならばNetBeansの方が上 総合力じゃまだEclipseだろうけど、1年後にはわからんよ
>>542 パソコン初心者にPC購入相談されて、候補に
Macを思いつけないことと同じようなことだが。
別に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を選択)
ダブルバッファリングと画像の読み込みについて質問なのですが、 画像を読み込むとダブルバッファリングできないのでしょうか? 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){} }
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)を実行して終了した場合は残っていません。 これについて何かわかる方いましたら助言お願いします。
APIドキュメントでJFrame#setDefaultCloseOperation(int)を参照するといいですよ。
551 :
549 :2008/01/04(金) 00:01:16
javaw.exeの増える件 JFrameを継承しているクラスのインスタンスを生成しているmain内で インスタンス.setDefaultCloseOperationで設定していたのを、 このインスタンスのコンストラクタ内の処理に変更したところ、 なぜか直りました。なぜだ・・・。super()とかその辺が何か関係してた??
>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); } } 上記を実行してもフレームは表示されますが線が描画されません どなたかご教授ねがいます。
print じゃなくて paint
555 :
553 :2008/01/04(金) 15:20:30
>>554 様
うおおお ありがとうございました。
なんとお恥ずかしい
556 :
デフォルトの名無しさん :2008/01/04(金) 16:12:57
ところでおまいら こんな簡単なコードで何日もかかってるのか?
>>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
>>557 // print の引数も Graphics ですが、どうしましょう
それはそれとして、print と paint の間違いは良くやらかした記憶がある
intの範囲のサイズでおさまりきれない大きなデータをメモリに格納したい場合はどのようにすればよいでしょうか? バイナリエディタを作っているのですが、RandomAccessFileの場合はあくまで読み込むのは一部分であり、全体として編集する場合はやはり一時的にメモリに保存したいので。
>バイナリエディタを作っているのですが それでこんな質問かいw
はい。一番大事な部分だと思うので。 本格的なものを作る能力はまだないのですが、一般的にどのようにしているのかと疑問に思い質問させていただきました。 単純に多次元配列でいいのでしょうか。
564 :
デフォルトの名無しさん :2008/01/04(金) 20:58:46
Javaに関して質問です。 BufferedWriterを使ってファイル書き込みをしてみてるんですが、 最後に改行コードが書き込まれて悩んでます。 writer.write("test"); writer.flush(); writer.close(); で、testの後に改行コードが書き込まれてるんです。 取り除きたいのですが、どうすればよいかご存知の方いらっしゃいませんか?
>>564 そのコードなら改行コードは書き込まれない
今Javaで就職を考えてAWTやSwingのプログラムを中心にやっているのですが CUIを中心に勉強したほうがいいでしょうか?
567 名前:デフォルトの名無しさん[sage] 投稿日:2008/01/05(土) 00:40:00 今Javaで就職を考えてAWTやSwingのプログラムを中心にやっているのですが CUIを中心に勉強したほうがいいでしょうか?
>>567 真面目な話、就職なんて大事なものは2chで聞くべきではない。
自分で考えろ。
>>567 実力にもよるだろ
全くの初心者なら、CUIから入ったほうがいいとは思う
モチベーションを維持できる自信がないなら
VBとかC#でGUIやったほうがいいかもね
というか、何故このご時勢にPGなんてやろうとするんだ もっと上流の勉強しろよ プログラミング技術なんてその布石にすぎん
すいません><教えてください いきなり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)
GUIなんてお飾りは、必要になったらやらないと割りに合わんよ。 飾りなんてとっかえるもんであって、消耗品の度合いが強い。
絵チャットをするためにjavaがいるんで、その質問です。 javaをインストールして絵チャしに行くとできるんですが一旦PCの電源を落として 再度行くと 「Java(TM)Plug-inの致命的エラー Java Runtime Enrgonmentをロードできません。」 と表示され、次からは 「Java(TM)Plug-inの致命的エラー 同じプロセスで実行中のいくつかの Java 仮想マシンによってエラーが発生しました」 と表示されてしまい絵チャが表示できません。 Javaをアンインストールすればいけるのですが、PCの電源を切ると再度上のエラーが起きてまたアンインストール。 これの繰り返しでめんどくさすぎるんです。 どうすればこのエラーにならずにすむんでしょうか?
OSから再インストールすればどうでしょうか? はい次
絵チャットしなきゃいいんじゃね
577 :
デフォルトの名無しさん :2008/01/05(土) 02:59:52
独習Javaの質問もここでおk?
今独習Java手元に無いや でも質問してもいいよ
独習Javaって教える人がいたら最強の本な気がする。 この本を3か月で終わらせた人いる? ニート時代に基本情報技術者試験用にやっていたが、 1日4時間、六か月費やしても終わらなかったぞ。
>>579 6ヶ月って遅くないか?
大学時代、勉強の片手間に1ヶ月で終わったぞ
まぁ大学の課題をこなすのに必要だったからってのもあるけど
やっぱり期限とか目的みたいなものが無いと、エンジンの回転数上がらないのかね、人間って
独習を日本人向けにわかりやすくしたのが結城のプログラミングレッスンなんだけどね。
>>580 初のプログラミング言語・プログラミング本がJavaと独習Javaだったんだ。
それと雑誌付録の用語集だけでやっていっていたら、六ヶ月以上かかった。
基本情報技術者試験用の範囲はとっくに終わっていたけど、後半部分意味不明だった上、
当時は2ちゃんの存在を知らなかったから、誰にも質問できず困っていた。
1日どれくらい独習Javaにあててたの?1時間くらいで1ヶ月終了なら俺からしたら神。地頭レベルが違う希ガス。
うるせーよニート
/ ̄ ̄\ / _ノ \ | ( ●)(●) キリッ ____ . | (__人__) /\ /\ | ` ⌒´ノ ・・・・・・・・ /(ー) (ー) \ . | . } ____ / ⌒(__人__)⌒ \ . ヽ } / / | |r┬-| | ヽ ノ / / \__`ー'´___/ / く / / /:::∨<;;;>∨::::::::::::::::\ | \ / / ∧:::::::ヽ/;ヾ/::::::::::::::::::::::ヘ | |ヽ、二⌒)___/ /::::ヽ:::::::ヽl/:::::::::::::::::::::/::::ヽ ┌──┬─┬───────────────────┐ | 年 U月| 学歴・履歴 | ├──┼―┼───────────────────┤ | U | 学歴 | ├──┼―┼───────────────────┤ | U |なし | ├──┼―┼───────────────────┤ | U | 職歴 | ├──┼―┼───────────────────┤ | U |なし | ├──┼―┼───────────────────┤ | U | 以上 |
585 :
582 :2008/01/05(土) 03:46:20
ぐわぁぁぁぁああぁぁぁぁぁぁぁぁぁっぁ こんちくょおうぁぁぁぁぁつちくわぁぁぁぁあx
>>582 1ヶ月っていっても、毎日やってたわけじゃないからなぁ・・・
あぁ、でも徹夜でやった日もあった気がするな、他の課題も終わらせないといけない、とかいって当時は必死だったな
無責任に言うと、1〜2時間ぐらいかな?昔すぎて覚えてないw
ちなみに初学はC
条件分岐だの変数だのコンピュータアーキテクチャだのってのは予め知ってた状態だからね
それでもプログラミングを勉強してまだ半年の状態だった
学部1年の前期にCをやって、後期の開発演習で先輩に薦められてJavaを使ったんだった
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(); } } }
むしろ、一日四時間6ヶ月が凄すぎだよな…… 人間辞めてるんじゃね? 一ヶ月って言われたほうがまだ人間らしい。 お前、マジでアホ過ぎ
>>586 十分神すぐる…
高校中退→引きこもりという王道をつっぱしってた俺とはバックグラウンドが違いすぎるぜ。
エロゲを作りたい!と思ってなぜか基本情報処理技術者試験の勉強を始めたんだよなあ…
家で勉強するより、実務で無理矢理覚えると早いよ。キツイけど実務が一番早い
実務って下地が無いと辛いだろ 仕事忙しくて、勉強が中途半端にならないか? 文系出身者なんか、言語仕様を理解していないせいで引き起こされるバグが多すぐる 当の本人はそれでも、勉強になった、で済むけど、 プロジェクトにとっては大変な負債ですよ
実務だとミスってフルボッコにされる恐怖感があるから必死でがんばる。 あんまり無理するとウツになるけどね
>>579 俺はC#経験者だったけど2時間くらいで読み終えたよ
問題とかは解いてないけど
>>593 一ヶ月で終わった人も読んだだけなのかな?
俺はそれぞれの課題プログラムを組んでいっていたら六ヶ月以上かかったぜ。
課題プログラムもこなして一ヶ月なら頭があがらない…
>>589 基本情報基本情報ってそればかり拘ってんじゃねぇよゆとりガキ
結局、学坊の溜まり場だなここ
>>594 課題もこなしたよ、全部じゃないけどね
問題みてすぐ答えが頭に浮かぶような奴はやるだけ無駄だから飛ばしていった
だから前半部分は一気に読み進んでしまったと思った
大学で、JAVAでオセロゲームを作れとかいう課題が出た JAVAの知識なんてゼロ。しかも授業時間2コマだぞ。 不可能だろ
マス目を二次元配列で表現してだな 配列の要素に石の状態を表す値を格納して 石を置いた配列の場所から、上方向に、マスの限界かもしくは同じ色の石が見つかるまで走査、同じ色が見つかったら、 さっき石を置いた位置と見つかった位置までの配列を同じ色の値に書き換える 見つからなかったら何もしない これを右、左、下方向にも適用する 石を置くのはユーザがやる CPU対戦は無し ってことだったら90分で余裕だろ
正直何をいってるのかさっぱり分からん でも、サンクス
>598 プログラマ暦5年の俺でも無理。ロジックが頭に浮かばない。 1週間がんばればできるかも
無駄な5年だなw
あ、2コマだから3時間か 超よゆ〜^^
604 :
601 :2008/01/05(土) 08:46:20
オセロ作成で… >>ってことだったら90分で余裕だろ こんな上司だと最悪。なんでも楽観視して「なんでまだできないの?」っていってくる しまいには「俺にやらせてみろ」といって「あれ?うーむ、難しいな」となる 正しい対応は 「弊社の最低価格で頑張らせていただきます、工数1人月です。」 と、思いっきり工数を取るのが優秀な人物。
なんで上司と工数の話になるんだよw 599の仕様なら(GUIの部分はぬきだとして)余裕でしょ
606 :
601 :2008/01/05(土) 09:48:12
すまん、ただ俺が無能なので愚痴をこぼしただけだ。 いや、まじで俺無理、仕事での必要最低限のプログラミングしかヤル気がおこらん オセロっていってもだなぁ GUIもJAVAにはいろいろな選択肢があるし、なぜそれを選んだか上司を説得する論拠も練らないといけない ドキュメントもISOに準拠とか…テスト仕様書とか… どんな小さいプログラムでもいろいろめんどくさい事を想像しちまう癖があってね…トホホ
それSEの仕事w
>580 俺もPGはじめて最初にやったのは独習Cだったけど、全部打ち込んだら半年かかった
>601 最初からオセロと考えんなよ 2x2のマスに交互に石を置くだけのロジックから考えて、拡張していけば簡単だろ?
610 :
デフォルトの名無しさん :2008/01/05(土) 10:45:58
今度会社で一からシステム構築するんですですが、 javaソフト、htmlソフト、DB、OSはフリーかシェアか?それぞれver、価格なんかも含めて調査しないとならないんですが、 正直全然分かりません。 環境的なことって全然分からんのですが誰か分かる人いますか??
>610 自社が金出すんだったら全部タダのモノ使ってやれば? javaソフト:J2EE、イクリプス⇒0円 htmlソフト:IE、アパッチ、トムキャット⇒0円 DB:MySQL、アクセス2000(コピー品)⇒0円 OS:Windows2000(余ってるパソコンのを使う)⇒0円 ちゃんとした調査したかったらSierのIT営業経験者に聞くとよろし
そんな状態で1から作るならば1人派遣会社からでも雇った方がいいと思う システム開発は作るより調べる方が難しい
>>598 それは、対人対戦のみの、単に盤に駒を置いていくだけのモノか?
それとも、COM対戦のあるやつか?
それによって全然違う。
前者なら余裕だが後者ならほぼ不可能。
>>610 >一からシステム構築するんですですが
>誰か分かる人いますか??
いますよ、このスレにはいくらでもw
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 効率よい書き方があれば教えてください。
せめてバッファリングしようぜ
>>613 COM対戦ありでも簡単だろ
ランダムで置けるところに置くだけならw
ちょっとこだわろうと思うなら、すべての置ける場所に置いた場合の自コマの数
若しくはその数手先のコマ数を調べて自コマ数の昇順ソートで決めても良い
※逆順ソートじゃないから注意。終盤を除く
618 :
615 :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();
こうでしょうか。
>>598 昔VB使って1時間半で作ったことある。
通信対戦付きで。
ロジックはめちゃ単純だお
>>611 コピー品とかアウトだろw
せめて OpenOffice.org Base とかにしろよ。
>>611 IDEはNetBeans、
DB接続にはJDBCをつかって、
OSはOpenSolaisを。
Javaでベンチマークプログラムを書きたいのですが、Javaでユーザ時間とシステム時間を計測することはできませんか。
Java のとあるライブラリが LGPL なのですが、このライブラリを使うとソース公開しないといけないのですか? 動的リンクの場合ソースは公開しなくていいはずですが、Java の class は動的・静的どちらの扱いになるのですか?
Javaのclassを動的・静的のどちらで使うつもりですか
どのライブラリをどんな状況で使うんだ?
public interface Foo { Class c = Bar.class; } public interface Bar { Class c = Foo.class; } インターフェースでこんな風に相互に参照するようにしても問題ないですよね? これって循環参照ではないですよね? #循環参照をよく分かってないですが・・・
問題はありあり 原則としてA→B→Cのように相互の「関連」を持たせない方がいい 循環参照も勉強して来い あくまでインスタンス同士の関係だ
628 :
デフォルトの名無しさん :2008/01/05(土) 19:24:01
HTML文章をラッピングしてJSPに提供するようなライブラリってありますか
そのままJSPに書くかHTMLとしてURL指定しろ、アホ
>>627 ありがとうございます。
循環参照は、
class A{
B b=new B();
}
class B{
A a = new A();
}
みたいになってるときですね。これは、実行すると無限にエラーがでました。
>>626 みたいにClassを参照するだけなら実行時にエラーも出ないです。
設計的には、何となくまずいような気がするのですが、言語仕様的にもまずいのでしょうか?
>630 コンパイルが通る → 仕様的にはOK クラスのロードに関連する部分(static initalizerとか)で実行時に問題が起きる可能性があるとか、問題が起きる原因をわざわざ作る必要は無い あくまでコンパイルが通る事は正しく実行できる事の最低条件でしかないんだよ
仕様的には → 言語仕様的には
コンパイルが通っても言語仕様的にマズいこともあるかもしれないけどな。
おれjava実務経験者なのにこのスレの話題についていけねーwwww 難しいってことは言語としてはダメだ 分かりやすいが一番。 全部VBでよい
∩___∩ | | ノ\ ヽ | / ●゛ ● | | | ∪ ( _●_) ミ j 彡、 |∪| | J / ∩ノ ⊃ ヽ ( \ / _ノ | | .\ “ /__| | \ /___ /
>>624-625 例えば、LGPLであるiText(PDF作成ライブラリ)などを利用して、スタンドアロンのソフトを公開する状況などです。
Wikipediaには
・ライブラリAにリンクしたプログラムBを配布する場合、Bのライセンスにリバースエンジニアリングを禁止する条項を含めてはならない。(LGPLv2-6、LGPLv3-4)
・ライブラリAに静的リンクしたプログラムBを配布する場合、Bのソースコードまたはオブジェクトコードの配布を拒否してはならない。(LGPLv2-6a、LGPLv3-4d0)
とありますが、Javaには動的リンクや静的リンクという区別はないので、どのような扱いとなるのかを知りたいです。
>636 ものすごーく簡単に言えば、 GPLは使うならばソース全部晒せYO LGPLはライブラリに変更を加えないならば晒さないでOKだぜ jarを含めて使用するってのは静的リンクにあたると解釈されているはず だが、バグの修正も含めてソースをいじって使用したらアウト 中のクラスを拡張して〜とかなると曖昧
そんなもんだが、適当すぎw
>636 ↓Look! >634 「KY」
Java は基本的に全て動的バインディング。 でも GPL 系でどういう解釈になっているかは知らん。俺も教えて。 以下俺妄想。 ■セーフ ・LGPL の JAR にクラスパス通してアプリ実行 ■アウト ・JAR をバラして中のクラスファイルを自分のJARに入れる ・ソースを自分のプロジェクトに持って来て(修正、無修正問わず)再コンパイルして使う ・ソースを自分のソースにコピペして使う ■グレー? ・JARを配布バンドルに含める まぁ実際作れと言われたら、LGPL のライブラリ使うところだけインターフェース化して 完全に切り離し、アダプタ用意してデフォルトでもとりあえずは動くようにしておく。 んでそのライブラリとそれ用のアダプタを別個にダウンロードさせるような設計に しておけば、最悪公開が必要なのはそのアダプタまでになるんじゃないか。 GPL 汚染モデルがどこまで強力か知らんが。
641 :
デフォルトの名無しさん :2008/01/06(日) 06:23:12
普段Webからの情報のみで、本は読まない人なのですが、 少し上にある独習Javaっていう本は2とか3とか種類ありますよね? もし買うとしたら最新のやつだけ買って勉強すればいいですか? それとも古いほうのもやるべきですか?
第3版は、Javaのバージョンアップに合わせて改訂されたもの。 第3版だけでいい。古いのは要らない。
644 :
デフォルトの名無しさん :2008/01/06(日) 15:29:49
javaで8bitのグレースケール画像を読み込んで1画素ずつ操作したいのですが、いい方法はありますか?
>>644 BufferedImage を TYPE_BYTE_GRAY でイメージを作って、
getData()して直接バイト配列をいじる。
646 :
デフォルトの名無しさん :2008/01/06(日) 16:20:03
import java.awt.*;でFrameクラスを継承してもうまくいかない。 Frameのメソッドを使えない。 import java.awt.Frame;ってやるとできるからいいけど、 なんでなんすか??? Java6Update3です。
携帯からですみません。 JAVAを学びたいのですが、独学にはどの本がオススメでしょうか? PC経験は日常使うくらいです。 よろしくお願いします
648 :
デフォルトの名無しさん :2008/01/06(日) 16:54:56
かなり基本的な質問で申し訳ないのですが… コマンドプロンプトを使ってjavaファイルをコンパイルしようとしても、 javacと打っても内部(外部)コマンド、操作可能なプログラム、バッチファイル として認識されていません。 と出て、 1時間以上YAHOOで検索しても、どうすればよいか乗っておらず、わからないんです。 どうすればこのパソコンでjavaファイルをコンパイルできるようになるんでしょうか??
>>646 自分でFrameという名前のクラスを別に作ってそれをimportしている、とか。
651 :
デフォルトの名無しさん :2008/01/06(日) 17:26:39
>>650 そのとおりでした。ありがとうございます。
いやあ、本末転倒ですな
>647 Javaっていうよりはコンピュータの基礎から学んだ方がいいかと 「プログラムはなぜ動くのか」あたり一読しておくべし 後は適当な入門書を1冊斜め読み その上でどんなことが解らないのかを確認して、何を読んだら良いか聞くといい
今大学の課題でアナログ時計を作ってるんですけど、時計自体は完成したんですけど付加機能で アラームか文字スクロールを付加させたいと思っています。 やはり複数の機能をつけるためには複数のソースを合体させなければいけないのでしょうか?
複数のソースの合体ってなんだ? クラスを分けるって話ならば、アナログ時計の時点でクラスは分かれているべき どんだけ機能を持っていても1つのクラスで出来ない事もないが普通はやらない まあ、アラーム機能だけ追加程度ならばいいかもしれないが、そのうち管理できなくなる
今まで1つのファイルでやってきた、ってことかな Javaでは1ファイル1クラスが基本(ネスト・インナークラスのぞく)だから、 そうなってないんなら複数ファイルに分割したほうがいいよ あと、CUIかGUIかは分からないけど、 GUIならGUI自体のコードとロジック部分は分離しとくべき
>>653 あのさ、こういう質問でいつも思うんだけど、どうして教員に聞かないの?
もちろん、本来はこんな基本的なことは当然習った上で課題をやってるんだと
思うけどね。
独学でやってるならともかく、大学で一体何を習ってるのやら。
私も大学生ですが、初めのうちは「とりあえず使ってみよう」的な感じで、デザインやらなんやらはなかなか教えてもらえませんでしたよ。
>>656 今必要な情報だからここで聞いてるのです。家で制作してて教員に聞ける状況ではないんですよ。講義は明日からだし。
習って言われたこと、やったこと100%覚えれるほど頭良くないのでw
>>654 >>655 エラーがなく、かつ動作も問題なくできたので大丈夫だと思います。指摘ありがとうございました。
あれですか、5分返事が来なかったら友達じゃない世代ですか
今まで互換性最優先で1.1をこねくり回して使ってきたのですが、 さすがに限界を感じて上位バーションに移行しようと思っています。 とりあえず1.6をインストールして、コンパイルで注意された 推奨されなくなっている書き方を直して警告無しにする所までこぎ着けました。 ですが1.6ならではの機能を取り入れると動かなくなっちゃう環境も出てくるんですよね? 互換性でお勧めのバージョンはあるでしょうか。出来れば半透明と音量調節をしたいと思っています。 半透明は1.1でも力業で実装してたのですが、ドット単位で計算していたのでは処理が遅すぎて 隠し味程度にしか使えません。 浦島状態の私にアドバイスを下されば助かります…
そんなリスキーな事するくらいならば1.1のまま使え もしくは、作り直せよ、1.1って10年弱使ってんだろ? Javaは幾ら互換性が高いとはいえ、1.1と1.2以降は別物に近い そもそもGUI系なんて全部AWTだろ、それ
>658 話きいてんの? >654も>655も1つのクラスに書くことはヤメロって言ってんだよ
>658 おなーじ。 数千行程度なら1ファイルにした方が見渡しがきいてイイですよね。 昔と違って分割コンパイルしなくても一瞬でバイナリになるし(^^; >661 アドバイスありがとうございしました。 後もう少しだけ1.1を使ってみることにします。 どうしてもMS-javaの環境の人を捨てきれなくてここまで来ちゃたのですが アクセス解析でその人たちが全滅するまで付き合ってみることにします…
664 :
648 :2008/01/06(日) 22:43:31
>>649 jdk-6u3-windows-i586-p.exeをインストールしたんですが、
やっぱりjavacコマンドが使えません。どうすれば?
1.1でもJavaはJavaで別に変じゃないよ。 Appletとか1.2にするほどでもないし結局1.1だし、とすればjava.awtになる。 javac -soruce 1.2 -target 1.2 a.java とかのオプションでいいじゃないか。 >半透明は1.1でも力業で実装してたのですが、ドット単位で計算していたのでは処理が遅すぎて これはおかしな話じゃないのか?力技で実装しても、ハードの進化によって逆に速くなるし 当時は何とか動いてたんだからそれより遅くなる事はない。 いいかげんな嘘つくなよw
>>664 windowsだから、コンソール(DOS窓)で
set path c:\program files\java...
とかだろうな。典型のFAQだろ。
パスの設定でグぐれ。
もしくはネットビーンズとかエクリプスとかのIDEでやる。
winのJDKインストールするとパス通らなかったっけ?
668 :
デフォルトの名無しさん :2008/01/06(日) 22:54:12
昔の手動で設定したパスが残ってて上書きされなかったとかも考えられる。
669 :
648 :2008/01/06(日) 22:54:18
DOS窓って何ですか、 コマンドプロンプトで打つと環境変数path c:\programが定義されていませんと
670 :
デフォルトの名無しさん :2008/01/06(日) 23:01:06
もうスレ違いw こういうやつが多いから答えたくないんだよなw
>669 心配するな、マ暦5年(そのうちJAVAは2年)の俺でも話しについていけないw なんとかなる!!!たぶん
>>671 何年もやっていて結局なんか作ったの?C++? Java?
673 :
648 :2008/01/06(日) 23:34:33
エクリプスとやらをインストールしても全く使えないんだが、何なんだこれ。
あぁ、もうじれったい このバカチン!
>>673 おまいさんの頭のほうが全く使えないんだと思う。
その調子でNetBeansも入れてやれ。
676 :
648 :2008/01/06(日) 23:41:08
>>675 だって無理だもん。天才だけどやる気がない。どうするか教えて。
>>676 Eclipse入れたらコンパイルは簡単にできるだろう。
とりあえずチュートリアルとか読め。
どーしてもコマンドラインからコンパイルしたいというなら、
PATHとかから勉強せにゃならんから板違い。
つうかやる気がないならやめとけ。
678 :
648 :2008/01/06(日) 23:47:43
やらなならんのだ! どげんかせんといかん!宮崎をどげんかせんと!!
679 :
デフォルトの名無しさん :2008/01/06(日) 23:48:38
冬休みだしスルー
680 :
648 :2008/01/06(日) 23:49:29
英語ばっかで読めない。てかなぜコンパイルができないのかと。 普通初期でできるようになってるべきだろ
>>680 バカにはできないようになってる。
あきらめれ。
682 :
648 :2008/01/06(日) 23:52:27
いや、DLしないとできないってことは 初期でできないってことじゃん。 頼む!オラに力を!! javaを使って宮崎をどげんかせんといかんとです!!
これで無理なら身近な人に聞け
改めて
>>649 のとこ見てみたけど、ちゃんと「インストール手順」まで載ってるじゃないか
パスの設定やらよくあるエラーへの対処法まで…
まあ、Javaや日本語以外の問題もあるかもしれないが…スレ違いってことで。
685 :
デフォルトの名無しさん :2008/01/07(月) 00:01:06
冬休みだしスルー
おまんこ おまんこ おまんこ おまんこ おまんこ おまんこ おまんこ おまんこ おまんこ おまんこ おまんこ おまんこ
>>667 WinXPにインストールしてみましたが、
インストールしただけではパスの設定は行われないみたいですね。
え?この流れまで含めてネタということで遊んでたんじゃないの、みんな? それとも、本当の本当に真性がいるのか、、、
689 :
648 :2008/01/07(月) 01:54:35
パスの設定の仕方がわからない。
691 :
デフォルトの名無しさん :2008/01/07(月) 02:08:37
他人が作成したライブラリ(Commonsとか)がGeneric化されていない場合、 警告:[unchecked] 無検査キャストです みたいな警告を修正することは出来ないんでしょうか。
java って C# の System.Reflection.Emit.ILGenerator みたいなのって無いんですか? Jython とか JRuby とか Pnuts とか見るに、みんな独自に実装してるみたいですが……
693 :
648 :2008/01/07(月) 02:28:25
XPなんだがまず環境設定ってのがコンパネにない
695 :
692 :2008/01/07(月) 02:51:04
>>694 ありがとうございます。
JLR はまだ未完成のようなので、他の実装を参考に自作することにします。
696 :
デフォルトの名無しさん :2008/01/07(月) 02:56:32
>>686 をデバッグするにはどうすればいいでしょうか
>>693 コンパネに環境設定ってのがあるっていう記述も
どこにも無いと思うけど。
>>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)
ArrayのIndexがOutOfBoundsな例外
好きならば好きだと言おう ごまかさず素直になろう
702 :
デフォルトの名無しさん :2008/01/07(月) 17:32:53
class MyFrame extends Frame implements ActionListener { ...... } これをコンパイルするとMyFrame.classとMyFrame$1.classってのができました。 MyFrame$1.classって何ですか?
無名クラス。
内部クラス。
匿名クラス
学校の図書館でJavaプログラミング入門という本を借りてきました。 JavaAppletというのが面白そうですが、 いちいちHTMLを書かないといけないのは面倒です。 直接 command Class.java の形でアプレットを起動する方法はありませんか?
appketviewer
708 :
648 :2008/01/07(月) 20:58:15
>>697 つまりは、コンパネから環境設定を出す術がない。
どすればいいの。
appletviewerでもhtml書かないとダメですよね?
Class.java のファイル内に APPLET タグ書いておけば appletviewer Class.java で起動できたりする
ヴぉけ。<APPLET>タグだけだ。しかもソースファイルに。ぐぐれ。
クラス名を引数に取って、html作成・表示するようにすればいいんじゃね?
714 :
デフォルトの名無しさん :2008/01/07(月) 23:03:07
String型文字列をKEYとして与えて、 複数のインスタンス(クラスは同じ)を得ることができる hashのようなものってありますか? それとも標準的なhashに Collection関係のインスタンスを格納すべきですか?
Map<String, T> で良いんじゃね? それとも質問の趣旨が違う?
あ、なるほど。1つのキーに複数の値を割り当てたいと。 Map<String, List<T>>
>>716 そうです。
やはり、Listなどを使うのがよいんですね。
ありがとうございます。
キーでCollection関係のインスタンス(List)をとってきて
そのListに要素加える(add)処理って少し面倒だと思ったので、
何も考えずに使える、よいクラスがないかなと質問しました。
718 :
デフォルトの名無しさん :2008/01/07(月) 23:20:42
>>713 いや、ここ以外で聞いたらここで聞けと言われる気がする。
google collections library に MultiMaptってのがあったような
>>713 もう釣られてやらなくていいだろう
昨晩だけで辟易した
>>720 ソースの最初にタグを入れたコメントをかけ。
お、出来た。
>>717 アノテーション使えばラクチンよ
map.get(key).add(obj)
アノテーション使えば、サクっとこんなん書けるし
なしだと
((List)map.get(key)).add(obj)
キャストが1つ入るだけだけど気持ち悪い
アノテーションどこに使ってんだよwww
724の国ではこれをアノテーションと呼ぶんです
やっぱりアノテーションじゃなかったか! なんつーんだっけ?思い出せないw
つ ジェネリクス
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.と同様の理由で面倒。 何かいい方法ないですか?
EJBを自作したとは賞賛する
731 :
デフォルトの名無しさん :2008/01/08(火) 00:25:09
【処理概要】 コマンドラインから入力した2つの数の和を求めて、 その計算結果を戻り値で返すメソッドplus()を 作成します。 class Modori2 { しかわかりません(すみません)。取り敢えずInterger.parseIntで 2つの数を入力させると思うのですが、plus()をどういう風に組み込め ばいいのかわからないので、悩んでいます。
>>731 多分学校の課題なんだろうと思うが、
メソッドの作り方なんてのは基本中の基本で、そんなものはどこにでも
載ってるから、まずは教科書を見るなり本を読むなりぐぐるなりする癖を付けるのが
先決だと思うよ、マジで。
問題文がそもそもおかしい気がする。
勝手に問題文を書き換えたんだろ どちらにせよ単位取り直せ
735 :
デフォルトの名無しさん :2008/01/08(火) 02:11:25
この質問スレのレベルが異様に低い件について
Java使いなんてそんなもんだ
コマンドラインツールが使えないなんてのは板違いだしな。
それ以前ってどこよ? コマンドプロンプトやDOS起動するところ?
public class Hello {
public String greet(){ return "Hello World" } public void main(String[] args){ Hello greeter new Hello(); System.out.println(greeter.greet()); } } これくらいのOOPは思い付かんだろうな・・・そこらへんで止まるなら。
ごめん、コンパイルエラーだわw
そもそも授業の課題を丸ごと2chで聞くという神経がマジでわからんわ。 何のためにガッコ通ってて、なんのために教員がいて、なんのために教科書があるんだ? まともに勉強する気がない、もしくはまともに教えてもらえないようなガッコはやめちまえ。
ゆとり坊やだからさ
747 :
デフォルトの名無しさん :2008/01/08(火) 09:06:39
748 :
729 :2008/01/08(火) 09:17:31
>>746 データソースの設定でJNDIは使ってるんですが(*-ds.xml)、
それ以外の使い方がよく分からいので教えてもらえませんか。
deployディレクトリにあるxmlのどれかを編集するんでしょうか?
それとも新たにxmlファイルを作ってdeployディレクトリに置くのでしょうか。
751 :
デフォルトの名無しさん :2008/01/08(火) 12:43:10
質問です。 指定した文字がStringの文字列の中に何個あるか知りたいのです。 例えば「あいうあえお」という文字列があった時、「あ」という文字は何個あるかということが 知りたいのです。 この場合だったら2個という答えが返ってきてほしいわけです。 分かりにくい質問かもしれませんが、どうぞよろしくお願いします。
>>751 String.indexOf(String,int) を、見付からなくなるまで繰り返す。
1.先頭から1文字ずつ「あ」と比較してカウントする 2.「あ」を「""(ヌル文字)」に置換して文字数の差を求める 3.その他好きな方法
なるへそ
java関係なしに単純なアルゴリズムの問題だよな。
windows2000,j2sdk,jbossの環境で既存システム変更で デバッグのために使用しているSystem.out.printlnがコンソールに出力されません。 またlogファイルにも出力されていません。 そういった設定はどこかにあるのでしょうか?
>>756 c:\Program Files\JBoss-version\server\xxx\conf\log4j.xml
とかチェックした?
(前略) <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> のように設定しております。
>>751 なんでそんなロジックぐらい自分で思いつけないのかが分からない。
「頭から見ていって数える」という、別にコンピュータに限らず
日常生活でもやるようなごく当たり前の操作をするだけだと思うんだが。
ゆとりだからさ・・・。
まぁ基本機能すら押えられてない頃はそんなもんだろ。
すいません。スレ違いかもしれないんですが質問があります。 質問は、「カーナビのサーバシステムでJAVAやXML等の技術がが何所で使われているのか?」 です。 この場合のサーバシステムとは、携帯電話などの無線通信によりセンターにあるサーバにアクセスして、 情報を取得し、センターではインターネット上に公開されてる気象情報や、周辺のレストランの情報等を集約し、 カーナビに提供するというものです。 自分で調べていたのですが、なかなかwebでは見つからなかったので、知ってる方がいれば是非教えていただきたいです。
soapとかxml-wsのことか、これくらいググレばすぐに出てくるぞ。 調べ方が悪い。抗議で何聞いてたんだ?
>>763 soapの技術を使ってるのはわかるのですが、例えばカーナビの内部のどの部分にどの技術を使ってるのか、
等がいまいち解らなかったので・・・
ちなみに講義は寝てるかさぼってました。
最近こんな質問ばっか。
ヒント:学年末と卒論
カーナビはハードウェアなわけで・・・。 レイヤーが丸っきし違うだろ。 自分がイミフな質問してること分かってるか? 講義サボった分頭整理して出直して来い。
そもそもアーキテクチャやインフラを知るのに内部実装を調べろって言う講師もおかしい。
770 :
デフォルトの名無しさん :2008/01/08(火) 21:24:16
Derbyに接続するJSPのサンプルってありますか
771 :
デフォルトの名無しさん :2008/01/08(火) 21:25:40
>>769 なるほど。
じゃあ、具体的な話しようか。
組み込み向けでjava使ってハードがカーナビならJava MEのコンフィギュレーションはCDCになる。
カーナビならGUIを持つのでプロファイルは最低でもPBPになる。
んでJAX-WSを使うからJSR-172の実装が必要になる。
あとはクライアントとサーバでJAX-WS使って通信すればいい。
卒論か卒業制作か知らんがこれくらい自分で思い付けよ。
何勉強してんだか・・・。
実際に作るのかは知らんが問題はどうやって実装を持ってくるかだな。
まあ、まだ実用外だがPhoneMEが無いわけでもないけど。
あとここで探すと幸せになるかもしれない↓
ttps://www.dev.java.net/
こんなバカ共が2chで仕入れた知識で卒論書いて卒業して 世に出て行くかと思うと、うんざりするよ。 「初心者」ってことと、自分で考える能力がそもそもないこととは 全く別問題だよな。
レス感謝です。 ちなみに卒論じゃないですよ。 講義のレポートです。
講義サボったり寝てたりした奴が2chで仕入れたネタで講義のレポート書こうってんだから 世も末だ。
>>773 おまいはこの職業に妄想持ちすぎ。
過去問とお情けで期末通ってた連中と同等レベルのお仕事してるって事を自覚しとけ。
>>776 あんたは「同等レベルのお仕事」しかしてないかもしれないけど、
みんながみんなそうだというわけじゃないよ。
778 :
デフォルトの名無しさん :2008/01/08(火) 22:29:34
EJBのインタフェースにVectorって使えないの?
はぁ? マネージメントだろうがアーキテクトだろうが、所詮は世渡り上手な文型に 使われるだけの IT ドカタ業。おまいは神聖な仕事してるつもりかもしれんがw
馬鹿者度共が夢の跡
Java PG の派遣叩き売りしてる時代に Java でコーディングしてます設計できますなんて 何の価値もないしな。JavaHouse 全盛期の連中ももう Java なんて離れてるだろう。
JavaHouseか、懐かしいな。 趣味グラマが一番楽だよな。PGなんてドカタ扱いの日本でなるもんじゃない。
そうだな、適当なところで趣味と割り切って、スキル生かして客側に転職するのが一番。 下手に孤高化してしまった奴は 40 過ぎで給料ガン下げ or リストラ対象 or 一生 泥沼プロジェクトのエスケープゴートくらいしか使い道がない。自力で海外へコネ 作って旅立てる奴なんて一握りもいないし、日本でこの道を極めるには天井が低すぎ。
エスケープゴート w 生贄になる前に逃げ出しそうだな。
吹いたw
エスケープゴート の検索結果 約 15,700 件中 1 - 100 件目 (1.06 秒) 意外とあるな。
それエスケープとゴートで分けられてるから。 "エスケープゴート" の検索結果 約 3,430 件中 1 - 10 件目 (0.14 秒)
ネットエスケープ
789 :
デフォルトの名無しさん :2008/01/08(火) 23:26:37
すまん、質問間違えた。 ArrayListってシリアライズできないの?
中身次第
791 :
デフォルトの名無しさん :2008/01/09(水) 00:00:48
class test implements Serializable{} 上のインスタンスが詰まってる。 で、EJBインタフェースにListをフィールドとして持つbeanを引数にすると 実行時に落ちる。
だからなに?
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 のような文を作るにはどうすればよかったでしょうか? 単純にΣ計算忘れてしまってどうやりゃいいのかわからんのですが数学板行った方が早いのかな・・・
long sum = 0; for(int i=0; i<n; i++){ sum += 2 * i + 3; } double s = 1 / (n * sum)
○double s = 1.0 / (n * sum);
Sがどんどん小さくなるが
799 :
793 :2008/01/09(水) 12:21:03
質問を変えます・・・。 classファイルをexeファイルに変換するのは どうすればいいんでしょうか・・・?
801 :
デフォルトの名無しさん :2008/01/09(水) 13:00:07
基本的には無理です
802 :
デフォルトの名無しさん :2008/01/09(水) 13:37:38
実行可能jarファイルで代用するのがベスト
インターネット上から取得した複数のXMLファイルの一部または全ての値をまとめて 新しい1つのXMLファイルに出力するシステムを考えています。 サーバとのやり取りはSOAPにしようと思っているのですが、取得したXMLファイルの 処理はDOMとSAX どちらを使うべきでしょうか? また全体として取得したXMLの処理 にはJAX-WS(Webサービスからの取得も想定)とJAXP、新しいXMLファイルの出力には JAXBを利用しようと考えているのですが、システムとしておかしくないでしょうか? 実際のシステムではどんな感じなのでしょう?
>>803 メモリが足りるんならDOMでやるのが楽なんじゃないかねえ。
実際のシステムではSOAPやJAX-WSなんて使わない。重すぎるから。
RESTでしょJK
806 :
デフォルトの名無しさん :2008/01/09(水) 15:14:06
>>779 その状態からどのように抜け出すか(今の仕事を生かして)、生きがいを見つけるかが、
賢い人間が考える事なんだよ。
お前みたいにただやられた仕事をこなすことしか思いつかないヤツは、
期末を遊んで通過した連中以下だよ。
質問です。 txtファイル 例) Hello, everyone! My name is 2channel. Thank you. にどの文字が何回ずつ使用されているかを 調べるプログラムを作成中ですが、上手くいきません。 何が悪いのか教えてください。
頭
809 :
デフォルトの名無しさん :2008/01/09(水) 15:35:53
どう上手くいかないんだよ「?
810 :
807 :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; } }
811 :
807 :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]に回数を保存しています。
812 :
807 :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回 となってしまいます。 どうかアドバイスをお願いします。
>>812 a が2箇所に別れているのが期待通りではないということ?
まずは、変数名をわかり易く書き換えるべし。
a ⇒ source, text など
n ⇒ sourceSize, textSize など
A ⇒ counters
i ⇒ sourceIndex, textIndex
ii ⇒ countersIndex
k ⇒ found
814 :
807 :2008/01/09(水) 16:07:49
>>813 はい、そうです。
同一文字が分かれてしまっているのと、
あとは「o」のカウント回数が違うことも
期待通りの結果でない理由です。
プログラム見ずらくて申し訳ないです。
書き直してもう一度載せた方がいいですか?
Java Servlet での質問です。 HttpSession に setAttribute するとき、セットするオブジェクトは implements Serializable しないといけないのでしょうか? ・セッションレプリケーションをしない ・tomcat を再起動したときに、セッションを復元する必要がない こういった場合なら implements Serializable しなくてもいいと思っています。 あと、逆に Serializable する場合は、Session にセットする オブジェクトの属性にプリミティブ型は使えないですよね?
>>814 複数レスにまたがるようならどこかのうpろだにあげたほうがいい
817 :
815 :2008/01/09(水) 16:17:32
>>814 手作業で変数名を変えていけば、途中でバグに気付くと思うよ。
今は何も知りませんが 勉強して将来自分で株のチャートソフトを作りたいと思っています Javaはチャートの描写とかレイヤーみたいに画像を重ねたりすることは可能でしょうか?
可能
821 :
807 :2008/01/09(水) 16:28:35
822 :
807 :2008/01/09(水) 16:29:58
>>818 え、なんてこったい!
もう一度前のプログラムからコツコツ直してみます!
ありがとうございます!!
皆さんは
ソフトウェア工学は勉強したのでしょうか?
>>820 ありがとうございます
OSの垣根を越えていけるみたいなので楽しみです
824 :
デフォルトの名無しさん :2008/01/09(水) 16:44:01
してあせん
したよ
826 :
デフォルトの名無しさん :2008/01/09(水) 17:29:50
javaの型で一番桁数がでかくても表示できる型ってなんなんですかね?
BigDecimal
Runnableを継承したクラスのループ内でソケットから取得した入力ストリームのreadLineを使っています。 入力待ちの状態で外部からこのスレッドを終わらせるにはどうすればいいのでしょうか? readLineの前にreadyでチェックを行えばうまくいくのですが動作が多少重くなります。 もっとよい方法がありましたらよろしくお願いします。
829 :
807 :2008/01/09(水) 17:37:05
たびたびごめんなさい。
>>807 =
>>822 がやはり解決できません。
if文に問題があるのでしょうか?
ステップ実行すりゃいいと思う。
>>829 きみのコードでは、配列aの添字はi以外にはならないはず
>>828 ソケットか入力ストリームを外からクローズして例外を出させる。
833 :
807 :2008/01/09(水) 17:59:15
>>831 配列aに添字iiを入れられないということですか?
>>832 書き忘れていましたが外からクローズするのは避けたいです。
同じプログラム内で入力ストリームに入力できるなら
うまく動かせるんですけどそんなことできませんよね?
>833 だいぶ真相に近づいてるぞ。がんばれ。 aabb みたいな簡単な入力でプログラムがどう動くか追ってみるといいよ。
>>835 じゃあソケットに setSoTimeout() して 1 秒おきにでも終了フラグが立ったかどうか確認するようなコード書け。
すみません。 質問なんですがJSPの文法(BNFやEBNF)ってどこかに置いてありませんか? JSPパーサを作るためにジェネレ−タに食わす材料です。
XSL 使え
840 :
807 :2008/01/09(水) 19:45:52
できましたーーー><!! 本当に本当にありがとうございました!! if文の中の条件を配列と行列のものにすれば解決だったんですね! 本当に長々とありがとうございました!
javaにおいてコンパイルするためにJDK6というものをダウンロードしたいです。
しかし、
ttp://java.sun.com のサイトのJDK 6 Update 4 のダウンロードボタンを
押してもページが表示されませんと出ます。どこでダウンロードできるのでしょうか?
お願いします。
842 :
デフォルトの名無しさん :2008/01/09(水) 20:16:24
下に同じ
上に同じ
Windowsで int i = 1; iをファイルに出力したときにファイルの中身をバイナリエディタでみたときに 01 00 00 00 にしたいのですがどのようにするのでしょうか?
out.write((i & 0x000000FF) << 24); out.write((i & 0x0000FF00) << 8); out.write((i & 0x00FF0000) >> 8); out.write((i & 0xFF000000) >> 24);
Java で何か問題でもあるのか?
>>844 java.io.DataOutputStream out = new java.io.DataOutputStream(new java.io.FileOutputStream("filename"));
out.writeInt(Integer.reverseBytes(i));
out.close();
サイトでのjavaのページを開こうとしたら エラーで「"ow"はNullまたはオブジェクトではありません」 と表示され開けませんでした。 大学のPCからだと普通に開けるのですが… どうすればいいのでしょうか?何も知らない初心者で申し訳ありません。
jdk6u4きてるけど繋がらないな。よくある事だが。
852 :
844 :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));
でいけました。
853 :
849 :2008/01/09(水) 22:01:56
>>850 ブラウザ…?
IEなんですが、なんか設定を変えないといけないのでしょうか?
JavaVM のクラスファイルの仕様書いてある日本語のドキュメントってどこかにあったりします?
855 :
815 :2008/01/09(水) 22:47:14
すみません、
>>815 についてご存知の方がいたら、レスをいただけるとうれしいです。
よろしくお願いします。
今SJC-P対策用の参考書でJavaを勉強してるんですが、 ラッパークラスのオブジェクトの生成について質問があります。 valueOfを使って生成する際、ある参考書には Integer i = Integer.valueOf(10); は("10");にしないとコンパイルエラーになると書いていまして、 ある参考書にはvalueOfメソッドは値からオブジェクトを生成する場合にも利用される (例)Integer i = Integer.valueOf(40); とあり一体どっちが正しいのだろうと困っています。 valueOfでオブジェクトを生成する場合は必ず文字列じゃなければいけないのか、それとも 文字列、数値どちらを引数にしても生成できるのか、どっちなんでしょうか。 Integer i = Integer.valueOf(10); はコンパイルエラーになるんですか??
857 :
856 :2008/01/09(水) 22:51:09
>>856 すみません最後の二行無視して下さい、ミスです。
>>856 実際にやってみりゃ一発でわかるだろうが!!!!
まさか開発環境もなしに「勉強してる」なんて言ってるんじゃあるまいな?
>>855 その条件ならする必要もないが、どちらでも良いならとりあえず付けておけば。
プリミティブ型はそもそも設定できない。設定していると思っているのは autoboxing で
変換されたプリミティブ型の Wrapper インスタンス。これはシリアライズ可能。
Integer.valueOf(int) が導入されたのは JDK 5.0 から。 それより前ならコンパイルエラーになるし、それ以降ならエラーにならない。 同様にそれ以前に記述された本ならエラーになると書いているかもしれない。 実際に試せば分かるという問題じゃないだろ。
861 :
803 :2008/01/09(水) 22:59:12
>>804-805 レスありがとうございます。
実はこれ レポート課題でして授業でSOAPしか習わなかったので 習ってない
RESTを使うのはまずいかなと思いまして。とりあえずXMLの処理はDOMでやるということで色々考えてみます。
ありがとうございました。
>>854 手元に97年発行の本があるなあ。
「The Java 仮想マシン仕様」Addison-Wesley
ISBN4-7952-9671-5
864 :
815 :2008/01/09(水) 23:18:37
>>859 レスどうもありがとうございます。
インフラ担当に、使おうとしているロードバランサがセッションレプリケーション型なのか
Sticky セッション型なのか聞いて、対応を考えます。
理想としては、implements Serializable してないオブジェクトを
すでにみんな使いまくっているので、このまま対応なしにて終わらせたいです。
プリミティブ型は、何もせずともシリアライズされるというのは
>>817 で理解しました。
865 :
856 :2008/01/09(水) 23:30:12
>>860 5.0から数値も可能になったんですか・・・・。
これでもやもやが解けました。
有難うございます。
866 :
854 :2008/01/09(水) 23:38:18
>>862 hm。英語力に自信があるのは羨ましい限りです(´・ω・`)
>>863 いや、それの第2版を手に入れたんだけど、
もしかしたら買わなくても済んだのかなーと思いまして(´・ω・`)
余談だがいまだに new Integer(x) とやってる奴は今後は Integer.valueOf(x) に書き換えろ。 理由はソース嫁。
>>837 readyをしたときにsleepしてごまかそうと思ってたんですが、そっちのほうがよさそうですね。
ありがとうございました。
eclipseをアンインストールしたいのですが、どうすればきれいに消せるのでしょうか。 フォルダ吹っ飛ばしたくらいでは前の環境が残っているみたいなんです。 よろしくお願いします。
インストール方法が悪い、諦めろ
GanttProjectってswing使ってるみたいだけど、なんでネイティブっぽく見えるの?
そういう Look & Feel 作ったんじゃねーの
最近関係ない質問ばっかだな。
ハードディスクを 3 回くらいゼロ埋めすりゃ二度と復元できないくらい激しく消せるよ。
877 :
デフォルトの名無しさん :2008/01/10(木) 07:35:38
Javaに限ったことではないかもしれないんですが、 1つのプログラムでマルチスレッドでなく、2つのプログラムで ファイルの読み書きを制限するにはどうしたらいいですか? 一つのプログラムは本当にかなりの頻度で書き込みします。 もう一つのプログラムはほとんど書き込みしませんが読み込みます。 宜しくお願いします。
排他制御 ファイルでググレカス
>>877 もう一つ識別フラグ用にファイルを作って、それがあるときはビジー、ないときは書き込めるという
約束を二つのプログラムで了解しておくというのがよくいわれるけど、実は完全には保護できず、
運が悪いと壊れる。シビアに連続的にアクセスすると確実に壊れる。
二つめの方法はファイルにアクセスするためのファイル書き込み管理サーバを作って、
ポートを使ってプログラム同士で通信する。
ファイル書き込みサーバは、ポートの要求を待ち行列に入れて順番に処理する。
で、こんなめんどっちいプログラムを書くぐらいなら、DB入れようということになる。
>>879 おまいさんの知識はいつの時代の JDK で止まってるんだ?
やってみ、と言われても createNewFile() を使ってもプロセス間のアトミック性は 保障されないのは API リファレンスにすら載ってたはずだが。 ところで New I/O って知ってる?
二度驚いた。 一度目はファイル存在法なんて古典的で不確実な方法をいまどき引き合いに出す奴が居たこと。 二度目はファイルロックをすっとばしていきなり排他制御用のプロセス立ち上げる方法なんぞを持ち出したこと。
884 :
デフォルトの名無しさん :2008/01/10(木) 08:58:17
ここでいいのか分かりませんが、実行時にjavaVMのバージョンを知ることは出来ますか? バージョンに合わせて実行するアプレットを変更したいのです。 もしくはブラウザにバージョンを表示させてユーザーに選ばせてもいいです。
>>879 dクスです。
DB使えばよかったんだけど最初はDB使わなければ金もかからないし
と思っていたんですがコードの量がかなり大きくになってしまい
どうしたらいいかと思っていたんですが、もう一つのファイルをつかってとなると
それも同時アクセスもありえるから・・・なんですよね。
サーバーで管理するというのは思いつかなかったのですが、環境上少し難しいところも
あるので無理かなぁ・・・
実行のされ方にかなり癖があるのでそれを利用してもう少し考えて見ます。
また投稿させてもらうかも知れませんが宜しくお願いします
>>884 System.getProperty("java.version")
あるいは RuntimeMXBean (とか何とか言うクラス)
>>884 まてよ、君はひょっとして HTML か JavaScript での話をしているのか?
>>885 HSQLDBとか組み込み型DBが便利よ。タダだし。
大きなものには向かないだろうけど。
ファイル管理はなめてかかると後になって後悔しがち。
>886 ありがとうございます。 実行後はそれで試してみます。 >888 書き方が悪かったですね。 アプレットの実行前に知りたいです。 HTMLの実行後に振り分けられる方法が有ればと思っています。
ビット演算は C でやれ、ファイル操作は DB 使え。 回答内容も IT 業界の Java PG 層を順調に反映してますな。
>>890 public class JavaVMApplet extends Applet{
public String getJavaVMVersion(){
return System.getProperty("java.version");
}
}
というダミーアプレットを用意し LiveConnect で JavaScript から Java VM のバージョンを取得。
あとは該当バージョン用の HTML にジャンプするなり document.write() で <applet> や <object>
タグ書くなり好きにすれ。
あるいはランチャーアプレットのようなものの中で JDK のバージョン調べて AppletContext#showDocument() で該当バージョンの HTML へ飛んだり JSObject で JavaScript でジャンプさせたり。
>>887 >>889 ありがとうございます。参考にさせてもらいます。
FileLockは二重起動チェックにしか今のところは使っていませんが、
利用できるかどうか考えて見ます。
DBもタダのものがあるんですね。データベース使って組んでおけば
よかったと少し後悔です。ただもうかなりの人が自分のプログラムを
使ってしまっているので緊急措置的には少し無理そうです。
ファイルの読み書きがこの2つのプログラムで同時に行なわれる確率は非常に
低いのですが次にバージョンをうpさせるときはデータベースの使用を考えて見ます。
>>892 ありがとう! こんな裏技があるなんて思わなかったよ。
以下の問題なんですが、何処を修正、追加すればいいのかまるでわかりません、ご教授お願いします 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の値を表示
ちょっとうpろだにあげてきますorz
898 :
デフォルトの名無しさん :2008/01/10(木) 10:44:16
>>896 だ か ら、その手の質問は宿題スレ逝けと何度言ったらわかるんだ?
>>867 非常に為になったのでお礼を言おう
ちなみにオートボクシングのときもInteger.valueOf(x)に展開されてるのかな
それともコンストラクタ?
>>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
}
>>900 なんだこの上から目線のお礼はw自分脳で神らしいなw
宿題スレいってきますλ....
ところで Java コアライブラリで STRINGPREP 機能ってないよな?
学坊うぜぇ
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); } } 座標系を作りたいのですが、これであってますか?
何言ってるのか意味わからんが、それくらいのコードなら実際に試してみればいいじゃん
JavaからSWFファイル(Flush)を生成するライブラリは見つけたのですが:JavaSWF JavaでSWFファイル(Flush)を再生するライブラリはないのでしょうか。
見た事ないな。 上にも出てるLiveConnectでJavaから制御ならNNで出来たが。
JDICのブラウザコンポーネントでFlashを再生とか。 一応Flash有りのページのブラウズは可能な様子。
912 :
デフォルトの名無しさん :2008/01/10(木) 20:23:16
質問です。 staticメソッドにfinalをつけるのとつけないのとではどのような違いがあるのでしょうか?
同シグネチャのstaticメソッドをサブクラスで定義できるかできないかが変わる
>>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
finalつけても上書きする方法はある こっそりfinalはずすんだ
917 :
デフォルトの名無しさん :2008/01/10(木) 22:42:35
J2SE SDK をインストールしようと思ったのだけど NetBeans IDE と Java EE 5 の2つがあって どちらにすればいいのかがわかりません。 どちらをインストールすればいいのでしょうか?
Eclipse
919 :
デフォルトの名無しさん :2008/01/10(木) 22:51:25
プログラマってみんなLinux使ってるよな?
OS くらい自分で作れよ。
922 :
デフォルトの名無しさん :2008/01/10(木) 23:35:50
私はWindowsです
923 :
デフォルトの名無しさん :2008/01/10(木) 23:57:10
JDKとSDKはどう違うの?
JDK は Java の開発キットの表現。 SDK は Java 以外の開発キットを指す (含む) こともある表現。
質問です。 【開発環境】 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が発生してしまいます。 どなたか、良い知恵は御座いませんでしょうか?
> の関数があり、今回取得したresultSetの文字化けする > コードを一度変換をかけ、 最初から文字化けしないように取得すれば?
DB 上で文字化けしてるレコードを取得ついでに正しく直す設計にしてんでしょ (憶測)。 単一テーブルで SELECT かけるようにすればとしか言いようがない。 てか文字化けレコードをまず作るなと。
929 :
デフォルトの名無しさん :2008/01/11(金) 04:00:58
>>926 >SQLExせpちおn
ツナサンド吹いたwwww
930 :
デフォルトの名無しさん :2008/01/11(金) 04:14:59
こんな時間に綱三度食うなよ
どこで質問すべきか分からないのでここで聞かせていただきます。 数学は専門ではないので言葉が多少間違っていたらすみません。 現在行っている研究で、 三次元空間に点が複数あり、その全ての点を通る曲面の関数を近似したいのですが、 まったく方法が思いつきません。 平面状なら、ラグランジュの補間公式等を用いて算出できるのですが、三次元となるとどこを調べたらよいやら、 見当も付きません。 つまり、f(x)に補間する方法はわかるのですが、f(x,y)に補間する方法が分かりません。 どこかにjavaの補間クラスが公開されてたりしませんでしょうか?
数学板で聞けばいいと思うお(# ^ω^)
Mathematica でも使っとけ。
IPv4アドレスの払い出しみたいな処理がしたいと思います。 こんな感じで。 10.0.0.254 10.0.0.255 10.0.1.0 10.0.1.1 : : 漠然と ロングIP化→10進数で加算→元の形式に戻す とか考えてますが、long2ipとかip2longみたいのってJavaの どっかのクラスのどっかのメソッドにないでしょうか。 もしくは2進数にして桁上がりありのビット演算とか。 桁上がりのビット演算って普通にできましたっけ? ロジック作らないとだめでしょうか。
BigInteger 使えば良いんじゃね? ビット幅指定できるし、加算できるし、バイト配列化もできるし。
何を言ってるのかわからんw
こうか? 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);
こりゃまたトリッキーな条件じゃのう。
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
941 :
939 :2008/01/11(金) 14:26:51
すいません、クラス名とTest3.java がおかしなことになってますが気にしないでください。
>>939 TreeSet<String> set = new TreeSet<String>();
Iterator<String> it = set.iterator();
>>939 TreeSet<String> set = new TreeSet<String>();
Iterator<String> it = set.iterator();
詳細は「Generics」でぐぐってくれ。
>>939 知らないエラーが出たら、とりあえずググレ。
昔はマニュアル嫁だったが、今ならぐぐるほうが楽かと思う。
エラーメッセージは特有の言い回しの場合があるから、割と見つかりやすいはず。
今回は、「未チェックまたは安全ではありません」の辺りかね。
945 :
デフォルトの名無しさん :2008/01/11(金) 16:59:10
String型をint型の配列に変換できますか? いくらググってもみつからない・・・。
どう変換するんだい
947 :
945 :2008/01/11(金) 17:45:11
まんまStringの中身をint型の配列にぶち込みたいんですよ。 Stringの中身が"254"としたらint型の配列の中身は254という形で。
948 :
デフォルトの名無しさん :2008/01/11(金) 17:49:59
配列ならば 2, 5, 4 じゃないのか? toCharArray でばらせばいいだろ
Stringを1文字ずつバラす方法、数字文字列のint型への変換の方法、 それぞれ調べて組み合わせればいいじゃん。
参照型から基本データ型にはキャストを使っても変換できないから int i = Integer.parseInt("254"); でラッパークラスのメソッド使用して、文字列から数値取り出して格納するしかないんじゃない? 的外れだったらごめん。
というかもうちょっと何をやりたいのか具体的に書くべし。 Stringからint配列の変換じゃ複数の解釈がある。
>>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>
>>953 あてずっぽうで悪いけど <Context> を server.xml じゃなくて個別のファイルに記述するってのはどう?
>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)); } } }
正規表現のコスト高くね?
955 じゃないけどこの程度ならどうでもいいレベルでは。
958 :
955 :2008/01/12(土) 10:15:25
コードの見易さと必要とされる速度を量りにかけて。 私は見易いコードがすき。 後々手を加えやすいしな。
まー速度は、実際にプロファイラで計測してからだよね。 もっと他の点を見落としてる事の方が多いしね。
960 :
デフォルトの名無しさん :
2008/01/12(土) 13:37:24 Floatの値を、小数点第2位までで表示するメソッドってないでしょうか? 1 → 1.00 1.2345 → 1.23 のような感じです。 String#formatでできそうな気がするんですが、使い方が分かりません。