【初心者】Java質問・相談スレッド83【大歓迎】
1 :
デフォルトの名無しさん :
2006/03/14(火) 13:19:59
そして2もGET
3 :
デフォルトの名無しさん :2006/03/14(火) 13:43:58
3げっと!
4 :
デフォルトの名無しさん :2006/03/14(火) 13:46:25
前スレ
>>998 とても参考になりました。ありがとうございます。
5 :
デフォルトの名無しさん :2006/03/14(火) 13:57:03
ヒープとスタックに関する質問です。 次のような認識はあってますか? char ch[];//スタックに ch[]分の領域を確保 ch = new char[5];//ヒープに char[5]分の領域を確保
前すれ>968よ。 あの面積を求める式は、円の面積だ。 class Circleで定義されているだろ。
×char ch[];//スタックに ch[]分の領域を確保 ○char ch[];//スタックに ch 配列への参照を確保
ま た 参 照 か
>>8 ○char[] ch;//スタックに ch 配列への参照を確保
11 :
6 :2006/03/14(火) 16:00:47
char[] ch;//スタックに ch 配列への参照分の領域を確保 じゃ変ですかね?
変
推敲するほど蛇足になる日本人気質が出るからここらへんでやめとけ。
なんでNullReferenceExceptionじゃなくてNullPointerExceptionなの?
高木ひろみちゅ大先生が大昔 JH で同じ事を言っていたような… 命名に関しては個人の見方でいろいろ解釈できるのではっきりしたもんは得られんよ。 どの理由で納得するか、それだけの問題だから。「Java NullReferenceException」 で 検索して納得できる理由を探してみ。 ちなみに API リファンレンスに NullReferenceException って表記されてる箇所があります。 暇があったら検索してみそ。
UndefinedObjectException とでもしておけばいいのにね。 ちなみにSmalltalkはUndefinedObjectというエラーになる。
String s = null; System.out.println(s.valueOf(10)); なにこれ?
ぬるりじゃ語呂が良くないからでしょ。ぬるぽ
valueOf() メソッドってクラスメソッド。 だから、変数sはnullかもしれないけどString型だから valueOf()を呼んでもエラーにならない。
24 :
18 :2006/03/14(火) 17:19:52
うう、恥ずかしいこと書いてしまった、UndefinedObjectというエラーじゃないな。 忘れてくれ。 MessageNotUnderstoodだった SmalltalkはnilというUndefinedObjectのインスタンスで初期化されるから nilがMessageNotUnderstoodというエラーを発生させてるんだった。
見た目は比較的どうでもいいから、 バグの少ないLook And Feelありませんか? バグの少なさ >> 速度 > 見た目
JavaアプレットとJavaアプリケーションとで通信するプログラムを作成してます。 アプレットがクライアントで、アプリケーションがサーバです。 クライアント上(windows)からサーバ(Linux)へ、2バイト文字を送ると文字化けして しまいます。 サーバをwindows上で動かしてる時は、2バイト文字でも問題無く表示されているの で、 恐らくLinuxの文字コードの問題だと思うのですが、対処の仕方がわかりません。 どなたかご教示願います。
>>26 InputStreamReaderとOutputStreamWriter生成時にキャラセット指定
例:
new BufferedReader(new InputStreamReader(socket.getInputStream(), "UTF8"));
new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), "UTF8"));
【積年の】旦那にしてる密かな仕返し【恨みじゃー】
http://human5.2ch.net/test/read.cgi/ms/1141694640/ 8 名前:可愛い奥様[] 投稿日:2006/03/07(火) 11:05:23 ID:8dtluKkp
夫の歯ブラシで洗面所の排水溝掃除。
洗面所をビショビショに汚した罰だ。
20 名前:可愛い奥様[age] 投稿日:2006/03/08(水) 00:40:17 ID:pRrk6A21
前に頭きた時あって
1度だけ歯ブラシで肛門カキカキしちゃった
22 名前:可愛い奥様[] 投稿日:2006/03/08(水) 01:27:12 ID:gU5mHc7J
よかった。どこのお宅も同じようなことしてて。
24 名前:可愛い奥様[] 投稿日:2006/03/08(水) 01:36:35 ID:SSSFsTqE
そうそう、ヘンなモノはダンナのお皿へ直行だよね。
41 名前:可愛い奥様[] 投稿日:2006/03/08(水) 11:55:18 ID:sjj+/60Q
見てるだけで気が晴れるな!
皆さん、頑張ってね!
42 名前:可愛い奥様[sage] 投稿日:2006/03/08(水) 20:33:51 ID:Ju2N1s7+
年金分割が楽しみじゃのう
63 名前:可愛い奥様[] 投稿日:2006/03/10(金) 08:55:20 ID:qLfJYpJR
家族で密かにはぶっている。
男性は肉体が汚く、精神が美しい傾向がある。(気に入らない相手に肉体的攻撃を加える⇒精神的攻撃も加える男は猛者)
女は肉体が美しく、精神が汚い傾向がある。(気に入らない相手に精神的攻撃を加える⇒肉体的攻撃も加える女は猛者)
女は隠れて悪事をする。気に入らない女子を便所でボコったり、便器舐めさせたり、男の友人を使ってレイプ、仲間外れにしたり。陰口、嫉妬。
女は対人関係において、この汚い性格を隠そうとするため、外面が非常によくなる。(猫かぶり)
男性諸君は外面に騙されないように気を付けて下さい。
教育に関してなんですが… 商業高校卒の新人を教育することになったんですが 高校ではVBAだけしかおそわってないらしいのですが VBA脳の人にJAVAを教える上で肝になるところって どこらへんでしょうかねぇ。
>>31 オブジェクト指向の概念じゃない?
カプセル化とか隠蔽とか。
まぁ、いわゆる基礎だ。
>>32 やはり、そこらへんになりますかねぇ。ありがとうございます。
便乗して、C++バリバリな香具師に教えるときはどうしたらいいと思う? ほっとくのが一番?
自力でバリバリになったんなら、Javaもどうってことないでしょうね。 口でバリバリって言ってるだけなら、相模灘に沈めましょう。
36 :
26 :2006/03/15(水) 19:55:57
>>27 そのコードで文字化けが直りました
どうもありがとうございました
えと、もう1つ質問なのですが、
アプレット(windows)からサーブレット(Linux)へGET通信を行うプログラムを作成しておりまして、サーブレットでクライアントからのデータを受け取った際に日本語が文字化けしてしまいます
クライアント側ソース(送信)
URL url = new URL( サーバサーブレットURL );
HttpURLConnection httpc;
BufferedReader urlIn;
// 接続と送信
httpc = (HttpURLConnection)url.openConnection();
httpc.setRequestMethod( "GET" );
urlIn = new BufferedReader(new InputStreamReader(httpc.getInputStream(),"EUC_JP") );
サーバ側ソース(受信)
doGet( HttpServletRequest request, HttpServletResponse response )
request.setCharacterEncoding( "EUC_JP" );
response.setContentType( "text/html;charset=EUC_JP" );
// クライアントからのデータをDBに追加
String sql = "insert into testdb values( '" +UserName+ "', '" +UserScore+
"', CURRENT_TIMESTAMP )";
sql = new String( sql.getBytes( "EUC_JP" ), "8859_1" );
db.execute( sql );
37 :
26 :2006/03/15(水) 19:58:57
続きです このようにEUC_JPに変換して追加してるのですが、日本語部分が??となってしまいま す 環境は [クライアント] OS・・windows xp home 開発環境・・java sdk 1.4.2_08 プログラム・・javaアプレット [サーバ] OS・・centOS 4.2 開発環境・・java sdk 1.5.0_04 プログラム・・javaサーブレット DBソフト・・postgreSQL 7.4.5(EUC_JPになるように設定済み) となってます また、poderosa上からリモートアクセスでテーブルに日本語でデータを追加すると文 字化けしません 御教示の程、宜しくお願い致します
>>request.setCharacterEncoding( "EUC_JP" ); 何を根拠にクライアントから送信されているのが EUC-JP であると断定しているのだ? おそらく Windows は Windows-31J で送信しているのに EUC-JP として認識させようとしているから、化けている。
サーバーからダウンロードさせて、XMLを自動作成するアプレットを作っています。 XMLライブラリについて、JRE1.3は外付け、JRE1.4は組み込みとなっていますが、 クライアントのJREのバージョンがどれであっても対応できるようにソースコードを書くことは可能でしょうか?
>>39 アプレットって複数jar並べるとかで、ライブラリ指定できなかったっけ。
できるならxerces-jとかを並べておく。1.3ではそれが使われ、1.4は勝手に内部のを使う。
難点は毎回xerces-jなんぞ落とす負荷かな。
>39 サーバで1.4動かしといてXMLを送るんでは駄目ですか、そうですか。
>>38 クライアントからサーバへ送信する際に
EUC_JPに変換してから送信している為です
>>42 ServletコンテナはTomcatか?
デフォルトではgetのパラメータはsetCharacterEncoding()メソッドでは変換できないぞ。
C言語ライクに関数へのアドレスを引数に指定したいのですが、JAVAではその様な事が出来ますか? もし出来るならばどの様に引数を取ればいいのでしょうか
>>44 関数へのアドレスうんぬんは、目が覚めたら、変な寝言言っちゃったなあと思うこと。
なんのために関数を渡すかによって違うので、その目的を教えてみそ。
コールバックが欲しいなら、Observerパターンとか見ると少し幸せになれます。
>>43 http-bodyに対してだけだからな、できるのは。
new String(str.getBytes("ISO-8859-1"), encoding);
めんどくせ・・・
>>45 例えば複数のボタンがあって
AbstractActionを継承しているクラスをリスナーに設定するとします。
しかしボタンAとボタンBで望まれる動作は違うので上記のクラスはそのボタン専用のクラスを定義するべきです。
それでは冗長なので、コンストラクタに任意のメソッドへのアドレスを渡し、それを保存し
actionPerformed(ActionEvent)メソッドの処理内容をその保存したメソッドを処理させる・・・
としてみたいのです。
Tomcatの文字コード変換ならフィルタ使えよ
>>47 一つのオブジェクトに二つ以上の役割を持たせるのは止めましょう
「それでは冗長なので・・・」とか言う前にオブジェクト指向を学習した方がいいよ
('A`)分からないなら分からないって言えよ
実際冗長だからC#にはデリゲートがある
だがデリゲードの採用をSunは断ったんだがな
53 :
デフォルトの名無しさん :2006/03/15(水) 23:47:37
抽象メソッドを持つ抽象クラスを継承して、 変数の異なる複数のクラスのインスタンスを作成します。 そのインスタンスを一つの配列に格納したいのですが、 どのようにしたらよいのでしょうか?
共通の基底クラス、インタフェイスにnewしちゃえばいいんじゃね?
55 :
53 :2006/03/15(水) 23:51:27
>>54 抽象クラスのさらに上のクラスを作るということでしょうか?
それでも型キャストすれば問題ないだろうけど
てすと
>>53 抽象クラスがAbstractFooならAbstractFoo[] foo でいいんじゃね?
俺勘違いしている?
59 :
53 :2006/03/15(水) 23:59:40
>>56 どのようなタイプの配列に型キャストをすればよいのでしょうか?
60 :
53 :2006/03/16(木) 00:00:34
public abstract AbstractFoo{}とするなら AbstractFoo[] foo = new AbstractFoo[整数]; でいいんじゃね?
public abstract class AbstractFoo{}の間違え
63 :
53 :2006/03/16(木) 00:07:30
皆さんありがとうございました。 無事解決しました。
JSPの中にJSPをインクルード出来る機能があると聞いたのですが、その際にパラメータを渡すことは できないでしょうか。 具体的には下記の様な日付を選択させるセレクトボックスを部品化したいなと 思ってるんですが、この時選択の初期状態をパラメータで渡せれたらなぁと思ってます。 [2006▼][10▼][1▼]
<jsp:param name="year" value="2006" />
>>64 そういうのって、JSPのインクルードでやるもの?
俺はカスタムタグ作っていたけど。
確かにカスタムタグだと、作るのが面倒くさい気もするが、
こういうことをインクルードで実現するのってどうなん?
どうなん? と言われてもこの程度はほぼ趣味の範囲だろ。
もし一箇所しか現れない(予測される再利用もない)なら、カスタムタグよりインクルードのほうがいいかと。
TLD の作成・配置やら web.xml の修正やら考えたら <jsp:include> の方がよくね? JSP に記述するもんはたいして変わんないんだし。 データベース照会して休日取ってくるとかいう処理が必要ならそれこそ拡張タグ ライブラリでも良いけどさ。
次のようなインナークラスを含むクラスを作ったときに staticであるmainメソッドからはインナークラスは呼べないようですが staticからインナークラスを呼べない理屈ってどういうことでしょうか? public class TataiseiTest { public TataiseiTest(){} public static void main(String args[]){ ClassA class_a = new ClassA(); } class ClassA{ ClassA(){}; ClassA(int i){}; public void print(){ System.out.println("ClassA.print()"); } } }
>>71 インナークラスをstatic宣言していないから、オブジェクトから生成しなきゃいけなくなってるの。
static class ClassA { ... }
とするか、
TataiseiTest t = new TataiseiTest();
A a = t.new A();
とするかのどちらか。
>>72 ありがとうございます。
次のコードも、コメントの理由でコンパイルが通らないんですが。
そもそもスタティックなクラスってナニなんでしょうか?
そしてスタティックなクラスをnew するってどういうことでしょうか?
下記のコードでa2.iとb2.iがちゃんと別々の値となっている所に
違和感を感じます
public class StaticTest { public StaticTest() { } public static void main(String args[]){ InnerClass a1; a1.i=10;//a1が初期化されてない可能性があります InnerClass b1; b1.i=10;//b1が初期化されてない可能性があります InnerClass a2 = new InnerClass(); a2.i=10; InnerClass b2 = new InnerClass(); b2.i=100; System.out.println("a1.i="+a1.i); System.out.println("b1.i="+b1.i); System.out.println("a2.i="+a2.i); System.out.println("b2.i="+b2.i); } static class InnerClass{ int i; } }
>>74 static とは関係ない。
普通に、
Object o;
String s = o.toString();
とかやっても同じ結果になる。
76 :
デフォルトの名無しさん :2006/03/16(木) 13:51:05
eclipse wiki 死んでますか?
77 :
デフォルトの名無しさん :2006/03/16(木) 13:52:03
生きてました すまんこ
>>75 理解しましたありがとうございます。
ただ、staticなクラスをnew するっていう感覚については、やっぱりよくわからないです。
staticをつけるとクラスに付属するもの。つけなければオブジェクトに付属するもの。
>>78 もしかしてCのstatic変数みたく、固定のメモリ領域を静的に占めるとか考えてない?
81 :
76 :2006/03/16(木) 14:18:07
なんかeclipsewiki真っ白なんですが、私だけでしょうか?
君だけ
www.eclipse.netだと真っ白でeclipse.netだとちゃんと出ますた。 問題は個々のリンクがwww.eclipse.netなところ。一ページずつeclipse.netにすれば見えますが。
84 :
76 :2006/03/16(木) 14:39:45
今直してる真っ最中なんじゃないか? 見えたり見えなかったりするぞw
複数のクラスでそれぞれ大きさが違うフォントで描画したいのですが、 この場合、それぞれのクラスで独自のフォントを作って持つのが 一般的なのでしょうか?それとも、ひとつのフォントを使いまわして 描画するときだけ大きさを変えたりするのでしょうか?
修正 クラス→オブジェクト
>>86 www.junit.orgに書いてあるsourceforge.netのほうを見てないでしょう。
3.8.2とかもあるよ。どうしてもアーカイブがなければCVSからソース落としなさいな。
90 :
デフォルトの名無しさん :2006/03/16(木) 15:47:34
最近Javaはじめたんですが、オブジェクト指向って何なの? モノとして扱うとか書いてあるけどどうもいまいち。 Cは今までも触ったことあるんだが、違いが分からん クラスや継承があるから・・・ってわけでもないよな Cでもmain関数だけで書くことはないし 入門書レベルじゃ違いはないってだけかな
91 :
67 :2006/03/16(木) 15:47:45
>>70 でも<jsp:include>って、HTTPリクエスト投げているんでしょ?
だとしたら、カスタムタグに比べて、負荷が大きいと思った。
「部品化したい」ということも
>>65 に書いてあるのだから、
あちこちで使ったら、1ページのリクエストを処理するのに、
内部的に何度もリクエストを送信することになるんでは?
>>89 ありがとうございました。
おかげさまで、サンプルのテストクラスとテストケースの実行に成功しました。
でもJDeveloperだとSwing風のテストが実行できないくさいですね。 かなり しょぼ〜んです。
>>90 クラスの中のメソッドの中身について言えばCの関数とほぼ同じだよ。
違うのはその外側。
>>70 実際にHTTPプロトコルの送受信が行われるわけじゃない
>>96 そうだ。C言語でもオブジェクト指向的に作られている標準関数がある。
それは FILE * 使って読み書きする関数群だ。
>>91 > でも<jsp:include>って、HTTPリクエスト投げているんでしょ?
投げません。RequestDispatcher#include() と同じ。
strutsをはじめようと思っているのですが、 作るwebアプリケーションに向き不向きはあるのでしょうか? たとえばECサイトは向いてる気がするのですが、 単純なレンタル掲示板などは不向きな気がします。 どうなんでしょうか?
>>99 なぜそう思うのか、根拠を書かないと何とも言えないな
掲示板程度ならPHPでいいよ
>>99 向き・不向きはある。特性的にも規模的にもパフォーマンス的にも。
>>100 なぜかといいますと、ECサイトは入力フォーム処理が多く、
ログイン処理やセッショントレースなどを必要としますが、
レンタル掲示板は、入力フォームは書き込みのときのみで、
セッション管理も、例えば掲示板のデザイン変更などかな。
と思ったからです。
>>101 パフォーマンスは普通に考えて落ちますよね。
103 :
67 :2006/03/16(木) 18:30:53
>>98 なるほど。私の勘違いが分かりました。ありがとう。
>>43 そうです、Tomcatです
>>46 ふむふむ、そうだったんですか
とりあえず、
クライアントから送る時は文字コードを指定せずに
サーバで受け取った際に
UserName = new String( UserName.getBytes("8859_1"), "Shift_JIS" );
db.execute( "insert into "+DBName+" values( '" +UserName+ "', '" +UserScore+ "', CURRENT_TIMESTAMP )" );
という風に、変換してDBに追加したら文字化けせずに追加出来ました
どうもありがとうございました
>>104 tomcatのバージョンにもよるが
useBodyEncodingForURI でググってみ。
>>105 へぇ、こんな設定があったんですね
初めて知りました
サーバ内のserver.xmlを見てみた所、この記述はどこにも見当たりませんでした
情報どうもありがとうございました
107 :
39 :2006/03/16(木) 21:18:16
>>40 >>41 レスありがとうございます。
クライアントに手間をかけさせないようにしたいのですが、
やはりそれは不可能なのでしょうか。
例えば、if文でJREのバージョンごとに別のXMLライブラリを呼びだすようにするとか。。。
やはりJRE1.3で読み込むとJRE1.5用のコードが仇になってエラーが発生してしまうのでしょうか?
108 :
デフォルトの名無しさん :2006/03/16(木) 23:10:03
マルチスレッド環境で、staticメソッドが危険なのって インスタンス変数を書き変えるケースの他 何が考えられるんでしょうか。 例えばソケットのクライアント部品なんかがstaticメソッド だったりしても問題はないですか
>>108 複数の接続開くならstaticメソッドじゃだめだろ。
むしろ、staticメソッドでそんなことやろうと思ったこともない
110 :
デフォルトの名無しさん :2006/03/17(金) 00:34:59
staticメソッドからクラスのstatic変数にアクセスするのはセーフじゃないけど
staticメソッド内のローカルな変数はスレッドセーフですよね。
と、いう事はメソッド内でnew Socket()することで作られるオブジェクトから成るセッションも
セーフなんじゃないかと思ったのです。で、頻繁に使うのでUtility的にstaticで、と。
>>109 さん
だめな理由が今いちピンと来ないのでもう少し具体的に、
もしくはソースが有ったら教えて下さい。
接続をマルチスレッドにしたいんじゃないの? それならどっちにしろ new しなきゃだめじゃん
112 :
デフォルトの名無しさん :2006/03/17(金) 01:51:22
>111 違います。 マルチスレッド環境でSocketクラスをnewするためのメソッドが staticメソッドで大丈夫か、という話です。 先ほど本件に関して以下の様な文章を見つけました。 「staticメソッド内でnewして、その参照をローカル変数に代入しているのならば、 他のスレッドにその参照を渡さない限り(自分からしかアクセスできないのだから)大丈夫です。」 109さんの回答とはまったく逆ですよね。 多分staticメソッドについてぼんやりとした理解の方が多いのでしょう。 web上にも様々な相反する見識が散らばっていて、驚きました。 と、いう訳で誰か理路整然とした説明をガツンとかましてくれる方、待っています。
>>112 よくわからんけど、Socketをnewするだけのメソッドを作って、
それをスレッドに渡して、そのスレッドをどんどんstartしていくの?
>>112 こういうこと?
public static Socket createSocket(){
Socket socket = new Socket(SERVER, DEFAULT_PORT);
socket.setSoTimeout(3000);
// 以下、ソケットのデフォルト設定が続く
return socket;
}
定数の一部が未定義なのは雰囲気読んでくれ。
これはスレッドセーフだ。こういうのなら普通にするよなあぁ。
スレッドセーフかどうかは、スタックとヒープのメモリ管理の仕方を理解していれば
混乱することはないけどな。
依存するクラスのメソッドがスレッドセーフでない、とかだとちょいと面倒だけど。
116 :
デフォルトの名無しさん :2006/03/17(金) 08:17:09
staticなユーティリティなんてやめてしまえ よほど普遍的出ないかぎり後悔するよ
ローカルなオブジェクトで、直接的にも間接的にも参照を外に漏らさなければ static であろうがなかろうが、他のスレッドからアクセスできないのでスレッドセーフ。 ただし、Socket みたいな外部に繋ぐようなものは、 間接的に参照をさらしている可能性があるだろう。要熟読ドキュメント new もオブジェクトが無くても実行できる点から見れば ある意味 static メソッド new でなく static メソッドがインスタンスを返すファクトリーメソッドは、 メソッドに任意の名前を付けられるなどnew に比べ利点が多い。 欠点は、それが一目ではファクトリーメソッドであることが分からないこと。
String.sprit : String[]の結果の要素数だけを取得するようなメソッドはありますか?
>>118 普通に split やって length だけ求めて結果を捨てちゃえばいいのでは?
int n = str.split(regex).length; とか。まあ、無駄と言えば無駄なんだが。
個数に応じて内容を使ったり使わなかったりする場合は普通に String[] に
入れて length 求めればいいんじゃないだろうか。で、使う場合はその配列を
使うと。
>>118 >>119 に同意。
仮にメモリ使用量や速度を気にしてるとしても、問題ないレベル。
このレベルに悩むぐらいなら、他の事に時間を使ったほうが良いかと思います。
>>113 >あと >インスタンス変数を書き変えるケースの他
>この部分なんだけど immutable な変数(Stringとか)ならOKでは?
Java 5.0 以降(言語仕様3版)で、
final 修飾子がフィールドにちゃんと付いているクラスのインスタンス変数なら
OK だけど、それ以外はだめ。
ややこしいので、だめってことにすれば安全w
下記の様な方法で配列を作ることがあると思うんですが、この場合でも配列の要素 ってヒープに作られてるんでしょうか? int[] test = { 10, 75, 24, 32, 98, 72, 88, 43, 60, 35, 54, 62, 2, 12, 82, };
うn
BigOって何
マルチスレッドの同期のとこさっぱり意味が分からないorz 誰かボスケテ
ラスボスは父親 以上FF12のネタバレでした
ヒープとかスタックとか気にするのは良いけど、役立ててるのか?
128 :
デフォルトの名無しさん :2006/03/17(金) 22:12:52
JAVAを勉強しようとおもうのですが、 JREとSDK双方ともインストールが必要なのですか?
>>128 SDKをインストール時にJREも一緒にインストールされる。
SDKだけダウンロードしてインストールすればいいよ。
130 :
デフォルトの名無しさん :2006/03/17(金) 22:24:29
>>126 まさか、悪の皇帝に操られていて機械の体になってるとか
王女は実は血のつながった兄弟だったとか言うんじゃなかろうな
うわーベタな少年漫画みたいだ
133 :
デフォルトの名無しさん :2006/03/18(土) 01:18:19
Java 5.0 で Vectorを拡張して使ってます、 内部のadd_abc関数で警告が出てしまいます、どうしましょう。 「警告: [unchecked] raw 型 java.util.Vector のメンバとしての add(E) への無検査呼び出しです。」 public class abcVector extends Vector { ………(省略) public void add_abc( ABC abc_dat ){ add( abc_dat );←警告された } ………(省略) }
>>133 マルチ乙…ってか、ABCだけを格納するVectorを作りたいだけなら、
Vector<ABC> abcVector = new Vector<ABC>();
でいいじゃん。
>>133 Vectorを拡張したクラスにはABCクラスのオブジェクトしか入れないつもり
にしているのなら、
public class AbcVector extends Vector<ABC> {
のようにしてやればいいと思う。
136 :
デフォルトの名無しさん :2006/03/18(土) 02:27:20
>>134 その方法は知ってました。でもありがとう。
>>135 この方法を探していたんです。感謝!感謝!
(133本人←初心者マーク)
ラスボスは、 悪の皇帝に操られて機械の体になっている血の繋がった王女 の格好をしている父親
いや、王女の血は繋がってない方がいいだろ。 とマジレス
で、>1のウィキのページがなんかおかしいんですけどどうしたらいいでしょうか? お勧めの本とか載ってないかなと思ったのですが。
>>140 >中の人
GJ!
ありがとうございます。
142 :
デフォルトの名無しさん :2006/03/18(土) 12:24:10
>>138 繋がっていると思ってたけど、実は繋がっていなかった!
が最強
writeln("");を使用するときに("")内に21"と入れたい場合、21"の記入方法は変更せずに 記入するにはどうすればよいですか?
class Player{ private double playerHand = 3 * Math.random(); public int showHand(int playerHand){ this.playerHand = playerHand; } } これはもうだめだ。見捨てよう
if(result = true)
149 :
デフォルトの名無しさん :2006/03/18(土) 16:34:30
なぜオブジェクト指向で開発できないか垣間見ることができた気がする つーか、その本読んでもダメってことがわかった
やらなきゃ単位取れんからこっちだって必死なんです
>>150 単位なんてとれなくたって別に死ぬわけじゃない。
ゆっくり覚えなよ。
勉強嫌いになっちゃうよ。
できることを1つ1つ積み上げていけばいい。
わからないことは正直にわからないと、調べていないことは調べていないと正直に言える人間になればいい。
もうそんな悠長なこと言ってられる状況じゃないから焦ってるんですよ 今月中にJavaの基礎全部叩き込まなきゃ学校辞めることになるんだから まぁ他人からすりゃ俺の都合なんぞどうでもいいことですがね…
その通り。個人の都合を持ち出すな。 学生なのにそこをわきまえているとは、なかなか見どころある。 社会人にもなってわかってない奴も多いからな・・・
まあそんなこと関係なしに
>>146 が何故駄目なのかが分からない
>>154 俺も初心者だからわからんが、とりあえず
main関数がないから動かないんじゃないか?
プログラムがこれで全部じゃない気がする。
こんな低脳クズ野郎がJavaを勉強しないで欲しい これだからPGの地位が下がるから困る
157 :
155 :2006/03/18(土) 17:47:57
>>156 低脳クズ野郎は認めるが、PG以外雇ってくれるところが無いのよ。
そろそろクビなりそうな予感はあるけど。
そのときその場の状況がどうであろうがなるようにしかならんでしょう。 焦ってようがどうだろうが入門書を一冊じっくり読むことができんと話にならんでしょ? わからない箇所を潰して行ってどうにかなりそうな問題なのかどうかはこっちからじゃようわからんし。
Javaの基礎覚えないと、単位がもらえないか知れんけど 学校辞める必要はないんでないかい?家庭の事情は知らんけど。 今年度単位とれなくても次年度から取っていっても、卒業までに追いつかない ようなカリキュラムになってるのかな、それなら留年確定だが。 残り十日がんばれ。
//最終的な勝者を表示するメソッド Player finalWinner = judgeFinalWinner(player1, player2); //最終的な勝者を判定して返すメソッド private Player judgeFinalWinner(Player player1, Player player2){ Player winner = null; //プレーヤー1,2から勝ち数を聞く int player1wincount = player1.getWinCount(); int player2wincount = player2.getWinCount(); //勝敗を判定する if(player1wincount > player2wincount){ winner = player1; } else if(player1wincount < player2wincount){ winner = player2; } return winner; } とりあえずこれで何でplayer1を解決できません、player2を解決できません ってエラーが出るんだ 文法上どこも間違ってないのに
161 :
http://www.vector.co.jp/soft/win95/util/se072729.html :2006/03/18(土) 18:15:25
TextSSの64bit化ってできない?
何が原因かを追究していくしか。 Player finalWinner = judgeFinalWinner(player1, player2);をコメントアウトして コンパイルしてみるとか。player1、player2に関係するところをコメントにしたり しなかったりしてコンパイルしてみては?
>>160 > 〜を解決できません
Player というクラスをコンパイルできていない可能性。
>>147 みたいな箇所が動作不良の原因。
まあ、どうしても出来ないなら宿題スレに丸投げするか、ね。
お奨めしないけど。
コピペしたらPlayerクラスはコンパイルできるから、他っぽい。
>>148 <致命的な点>
戻り値の宣言が int なのに return が無い。もしくは、
戻り値の宣言を void にする。
>>160 ソースはどう分けてますか?
クラスごとにファイルを分けておいて。
あと書き込むとき、
名前欄に同一者を示す言葉を入れてね。
>>145 のソースでまず挙げられるのが
Player クラスに getName() メソッドが定義されていない。
気になるところ幾つもあるけど一つずつね。
- Player.getWinCount メソッド定義に引き数が要らない可能性。 - Judge に finalWinner 変数が定義されていない。 (winner が finalWinner になってしまっている。) - Judge.judgeJanken メソッド内での player.showHand メソッド呼び出しに 引き数が付いていない。 - Judge クラスに player1WinCount と player2WinCount の変数定義がない。 …
169 :
デフォルトの名無しさん :2006/03/18(土) 19:46:36
all in one eclipse3.1とTomcat5.5を使用しています。
eclipseからtomcatを登録して、スタートさせました。
そして、
http://localhost:8080/ をブラウザで立ち上げたのですが、
404がかえってきます。
server.xmlのdocBaseなどもきちんと設定してるのですが、
どんな原因が考えられますか?
170 :
デフォルトの名無しさん :2006/03/18(土) 19:59:33
>>169 実はTomcatがスタートしていないとか。
対応OS、ファイアウォールの設定はどうかな?
>>170 おっしゃるとおり、eclipseからうまくTomcatがスタートしていないです。
all in one eclipseの設定ミスっぽいので、もう少し調べてみます。
ありがとうございます。
172 :
デフォルトの名無しさん :2006/03/18(土) 22:52:58
eclipseでクラスファイルができなくて泣いています。 設定方法を教えてください。お願いします。
専用スレ池
[CTRL]+[B] ?
>>172 パースペクティブがJavaに成っていない予感
>>160 >とりあえずこれで何でplayer1を解決できません、player2を解決できません ってエラーが出るんだ
ふつうに
>//最終的な勝者を表示するメソッド
>Player finalWinner = judgeFinalWinner(player1, player2);
この player1, player2 がどこにも定義されていない予感
入門書読んで一応理解はできる、 30行程度のプログラムなら書けるけど 100行以上とかになると全然書けなくなる… どうしたらいいんだ
必要に迫られれば書けるようになる
180 :
デフォルトの名無しさん :2006/03/19(日) 07:03:23
実装が目的じゃない あくまで実現手段だ 何を実現させたいか、 それ次第 そういうことに気付 かない奴は、向かない
>>178 行数はとくに重要じゃないんじゃないの?
>>178 GUIプログラムに挑戦してみると行数は稼げそうな気がする。
簡易ファイル名変更ソフトとか。便利さを追求してくと結構色んな
機能が考えられそう。ファイル複数選択、連続入力、一括変換、連番サポート、
ドラッグアンドドロップ、出来るだけマウスを使わないでとか。
簡単なものでいいからソフト一本作ってみるのが、早いんじゃない?
こんなフォーマットで書けば行数が稼げる public void f(boolean a, int b, int c) { if(a) { ... } }
初めて投稿します。 自分で作成したクラスの hashCode() 実装って、何か指標みたいなのはあるのでしょうか? developer works でそれの記事はあるのですが、この方法だと hash が衝突しそうな気がします。 equals() の条件を満たすため、ある程度の妥協有りきで実装するんでしょうか?
ありがとうございます。 自分の過ちに気がつきました。 hashCode() は vm のメモリ管理として使われると勘違いしていました。 vm の instance 管理は System.identityHashCode(Object) なのですね。
>>185 を見る限り、
return 0;
でも間違いではないってこと?
>>187 hashCode と equals の一般的なルールに従うなら。
189 :
デフォルトの名無しさん :2006/03/19(日) 12:24:07
64bitVMではintよりlongのほうが計算がはやかったりするのでしょうか?
>>190 64bitのintって64なの?
unsigned long long intとかいう奴ちゃう?
それがintなの?つか、longって何?
193 :
デフォルトの名無しさん :2006/03/19(日) 13:02:37
eclipse3.1.1でstrutsの開発をしているのですが、 コンパイルをしてもアクションのクラスファイルだけ作成されません。 その他も、作成されるクラスと作成されないクラスファイルがあります。 何が原因でしょうか?
なんでJAVAの本って簡単なサンプル解説するだけで問題ではいきなり難しいプログラム書かせようとするの? しかもまだやってない範囲の部分混ぜようとするし 著者は読者をバカにしたいだけか?
>>194 それのほうが自分で調べたりするからいいじゃん。
教えられた枠から出ようとする好奇心がないと勉強なんてむりだろ
ゆとり教育か。
文字一つでも間違えりゃダメになるプログラミングを他の勉強と一緒にするなよ
>>197 じゃあしょうがないな、javaはあきらめてくれ
SEとかPGになるとこんなに性格腐るんだよね
そう。だからお前には向いてない。 はやく割り箸を袋に入れる作業に戻るんだ。
>>200 奴隷のような環境も多いから・・・
中途半端に仕事できる人が一番割りに合わない気がする。
ドカタがドカタに向かって何言ってんだと思った
>>194 Javaの問題というか、あなたが選んだ本が糞本だっただけではないでしょうか。
数は少ないですが、まともな入門書は一応あります。
よろしければ、本のタイトルを教えてもらえませんか?
独習Java
>>206 +=演算子の実行中に他のスレッドが動くことはなかったような希ガス。
deposit()を、
int newBalance = balance + amount;
balance = newBalance;
としたら結果が変わるかも。
>>206 run() 内の for のループカウント数をうんと増やすと、結果が変わってくるのがわかるよ。
ループ数が少ないから、スレッドの切り替えの必要がないと、
VMが判断しているためかな。
210 :
ジン :2006/03/19(日) 21:56:11
すいません。Java経験の浅いビギナです。 本とか、HPとか、もちろんAPIもクラスをたどったりしたのですが、 なかなか解決が出来ないので質問させてくださいm(__)m Imageクラスで出来た画像(オブジェクト)から Fileクラスのオブジェクトを作りたいのですが、なかなかつながりません。 Fileクラスを作るには ImageIO.write(RenderedImage ,String,File)クラスを使うと良いと思いますが、 Image→RenderedImageとかできますか? 他の方法が良いのでしょうか? どなたかご教授を!!
>>210 BufferedImage 使え。 RenderedImage 実装してるから。
>>210 他のいい方法があるかも知れないが
RenderedImage の具象クラスを作り(たぶん BufferedImage)、
そこから Graphics オブジェクトを取得して Image をカキカキ
213 :
ジン :2006/03/19(日) 22:03:22
>>210 即答ありがとうございます。
やってみます。m(__)m
>>206 main スレッドと子スレッドとの競合はないが、子スレッド間の競合がある
StringBuilderなどのバッファから Stringをコピーをせずに生成する方法はありませんか? 元のバッファはそれに伴いReadOnlyになって構いません いい方法があれば教えてください。
String str = new String( StringBuilder::toString() ); は?
>>216 それはStringBuilder#toStringがおもっくそコピーしとります。
new Stringしている時点であぼーん
>>215 たぶん無理。そもそも StringBuffer を readonly にする方法が無いし。
この場合、いい方法とは本当にコピーを生成してはいけないのかを考える事だな。
220 :
215 :2006/03/19(日) 22:38:49
巨大なログファイルを読み込むのでコピーしたら凄いことになってしまいます。
>>220 それは、String でなく Stream をベースにする話だと思う今日この頃
String にしないで CharSequence 使ってもいーんじゃねーかと思う今日この頃。
>>184 Jakarta commons を使っていいなら、
Lang の HashCodeBuilder が便利。
ていうか、自前でやるとすごい面倒そうだ。
ハッシュは任意の小さな数字にプリミティブな 全ての数値を掛けていくのがシンプルでパフォーマンスのバランスが良い 不変クラスだったりハッシュ値計算対象が多い場合は 最初のhashCode呼び出しのみ計算対象としてキャッシュさせるべき setterがあるならそこでalready=falseみたいにして 再度ハッシュ値を計算するようフラグを立て直すべし
>>224 >不変クラスだったりハッシュ値計算対象が多い場合は
>最初のhashCode呼び出しのみ計算対象としてキャッシュさせるべき
スレッドセーフ性に注意
スレッドセーフでない不変クラスは情けないような希ガス
int のアトミック性を利用すれば、
多重計算の可能性がある代わりに同期の必要性を避けることができるかもしれん。
String クラスがそれっぽいことやってたような。
226 :
デフォルトの名無しさん :2006/03/19(日) 23:13:20
当たり前のようにアトミック性とかのコトバ使うのはどうかな
class ThdC extends Thread { AppMain appmain; public ThdC(AppMain am){ appmain = am; } public void run(){ for(int i=0;i<=1000;i++){ 処理略 try{ ThdC.sleep(appmain.intSpeed*appmain.stopTimeC); } catch(InterruptedException e){ //処理なし System.out.println("Err"); } } } } このスレッドがスリープしている間にイベントで一時停止させて、イベントで続きから再開したいのですが、いいメソッドがありませんか?
スレッドが全く理解できないんだけど 飛ばして先に他のとこ勉強しても問題ない?
だーめ。そんな覚え方、お兄さん納得できないな。 例え配点的にどうでもよかったとしてもスレッド使えないJava認定者は存在に困るよ
230 :
227 :2006/03/19(日) 23:35:05
スレッド一時停止的なメソッドがないかと・・・・ スレッドは普通のスリープ入りスレッドだと思います、わざわざ乗せるほどでもなかったんですけどすいません。 Threadクラス見たんですけど stop yield isInterrupted いいものがなくて・・・・相談しました
>>227 普通はフラグかなんかで停止と再開を制御する。
普通でないやり方としては、推奨されていないのを承知で Thread.suspend() と Thread.resume() 使うとか。
232 :
デフォルトの名無しさん :2006/03/19(日) 23:39:00
>>227 ゴリゴリ実装するしかなさげ?
処理側:
try {
while(! finished) {
synchronized(this) {
while(! stopRequired) {
wait();
}
}
finished = doSomthingALittle();
}
} catch(InterruptedException e) {
// 中断処理
}
制御側:
void synchronized 一時中断() { stopRequired = true; notifyAll(); }
void synchornized 一時中断を再開() { stopRequired = false; notifyAll(); }
233 :
デフォルトの名無しさん :2006/03/19(日) 23:39:36
>>215 String str = new String(StringBuilder)
のToString()を除いたほうではどう?
ソースを見る限りでは String と StringBuilder 間で char配列が共有されるみたいだけど…
234 :
227 :2006/03/19(日) 23:39:47
>>231 フラグ・・・なるほど、
でもできたら単純にメソッドで一時停止みたいのがいかったのですが、
ちょっと調べてみます、ありがとうございます。
スレッドは大事。
>>206 へのレスが伸びないところを見ても、
ここの住人はスレッド理解していない人が多い。
>>227 の場合sleepじゃなくて、waitしてnotifyかな。
>>229 じゃあスレッドを分かりやすく解説してくれる本とかサイトとかないですか?
ググっても詳しい解説とか無しにいきなり長文サンプルとか載ってけるだけのとこしかない…
238 :
227 :2006/03/19(日) 23:42:47
241 :
227 :2006/03/19(日) 23:43:58
↑あごめんなさい ありました。wait
>>233 されない、されない。
StringBuilder#toString()の戻り値を代入してるだけ。
中身はString(char value[], int offset, int count)だよ。
>>236 Java のマルチスレッド関係では 100% リファーされるダグリーの本が古典っぽいが、
英文むず。日本語訳が絶版で、でも友達が持ってたの貸してもらったが、ひど。
244 :
215 :2006/03/19(日) 23:48:39
CharSequenceで何とかするようにします。 幸いにもMatcherを作る場合の引数はCharSequenceですしね。 これにてクローズ、ありがとう。
245 :
233 :2006/03/19(日) 23:51:14
>>242 StringBufferクラスのToString()は return new String(this);を行っていて、
StringクラスのStringBufferを引数にとるコンストラクタは、
public String (StringBuffer buffer) {
synchronized(buffer) {
buffer.setShared();
this.value = buffer.getValue();
this.offset = 0;
this.count = buffer.length();
}
}
となってるんだけどやっぱり間違ってる?
ソースはj2sdk1.4.2_08のを見てます。
246 :
227 :2006/03/19(日) 23:55:43
スレッドでwaitを使ってみました Exception in thread "AWT-EventQueue-1" java.lang.NullPointerException at yoshimune.MouseListenerAppMain.mousePressed(AppMain.java:350) at java.awt.Component.processMouseEvent(Component.java:5485) at java.awt.Component.processEvent(Component.java:5253) at java.awt.Container.processEvent(Container.java:1966) at java.awt.Component.dispatchEventImpl(Component.java:3955) at java.awt.Container.dispatchEventImpl(Container.java:2024) at java.awt.Component.dispatchEvent(Component.java:3803) at java.awt.EventQueue.dispatchEvent(EventQueue.java:463) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149) at java.awt.EventDispatchThread.run(EventDispatchThread.java:110) スレッドが止まってくれません なぜでしょうか・・・モニターの所有権?? フラグでやってみます
>>245 5.0だとこうだな
public synchronized String toString() {
return new String(value, 0, count);
}
248 :
233 :2006/03/20(月) 00:02:30
>>246 これじゃ、だれもエスパーできんだろう。
と、あさはかな凡人は思うのであった。
>>246 とりあえず、エラーメッセージをよくよめ。
そして、こう叫ぶのだ。
ぬ る ぽ !
251 :
デフォルトの名無しさん :2006/03/20(月) 00:11:42
ArrayListの10行目に値を挿入する書き方ってどうするのでしょうか?
252 :
227 :2006/03/20(月) 00:14:44
たびたびすいません。ぬるぽです フラグでもだめでした原因をまとめてみます。 やりたいこと、アプレットのクラスから三つの独立したスレッド実行させます。それぞれのスレッドにはsleep文が入っております。 イベントを発生するとひとつのスレッドがとまる、そしてイベントでまた動き出す。 それを三つ作りたいだけなんです。 sleep時間をイベントで変化させてとめてみたんですけど、入るとそのsleep終わるまで待ってなきゃいけない。 フラグでどうすればいいのですか?
254 :
227 :2006/03/20(月) 00:19:30
NullPointer=ぬるぽ?
>>251 俺たちは辞書じゃないということをまず念頭に入れて考え直して欲しい。
>>256 あれダメなの?
ってか2chで聞くと必ず否定的な答えしか返ってこないんだよな…
>>259 俺もその本参考になったと思うけど・・・・
これから自作する外部の機器と通信したいんだけど Javaからとなるとどんなのが手軽? USB?RS-232C?
TCP/IP でソケット通信
>>262 Javaとしては通信しやすいんだけど
TCP/IPに対応した機器作るのってめんどくさくない?
>>263 CSとかプロトコルコンバータとか知らない?
>>264 おお、こんなものがあったのか。
サンクス
だが高いなorz
268 :
デフォルトの名無しさん :2006/03/20(月) 10:59:39
本「独習Java」ジョセフ・オニール著を買って今日からJavaをはじめましが、11ページで いきなり、躓いてしまいました。コンパイルをすると 「エラー:File.javaを読み込めません」となってしまいます。 ファイルは存在しますし、パスの設定もしております。 どんな、原因が考えられるでしょうか?
最近本ネタ多いが春休み?
>>268 ファイルが存在しない。
272 :
268 :2006/03/20(月) 11:24:27
>>269-
>>271 さん
解決しました。拡張子が.java.javaになっていました。
お騒がせして申し訳ありません。
274 :
268=272 :2006/03/20(月) 13:14:01
コンパイルは通りましたが、実行時に下記のようなエラーが出ます。
Exception in thread "main" java.lang.NoClassDeFoundEroor: file
>>271 さんの指摘してくれたサイトには、
>実行時エラーがでていることから、javaインタープリターは動いています。
>HelloWorld という名前のクラスがみつからないというエラーです。
>
>プロンプト> java -classpath . File
>
>でどうでしょう? これでうまくいくならば CLASSPATH環境変数の
>設定に . (ドット、ピリオド)がないのが原因です。
>CLASSPATH環境変数は、間違い易いことが多い機能ですので完全に理解するまでは使わず、
>-classpath 実行時オプションでクラスパス(java VM がクラスファイルを探すパス)を
>教えてあげることをお勧めします。
とありまして上記のようにすれば実行できました。
CLASSPATH環境変数の設定に . (ドット、ピリオド)がないとは、どういう意味ですか?
また、CLASSPATH環境変数はどうやって設定するのでしょうか?
初歩的な質問ばかりですみません。
java.net.URLConnection#getContentType()って、 charsetを含まないものを返すの? ためしに、www.yahoo.co.jpにつないでgetContentType()してみて。 同じインスタンスにgetHeaderField("Content-Type")したときと違う値を返す。
>>274 . は、カレントディレクトリ。
この場合は、実行したときのディレクトリ
CLASSPATH の設定はシェルによる。OSと環境がわからないと。
277 :
268=272=274 :2006/03/20(月) 14:08:14
>>276 さん
レスありがとうございます。
動作環境は、Windows XP HOME SP2、Javaは、JDK5.0です。
ならcmd.exe? SET コマンドで、 SET CLASSPATH=.:%CLASSPATH% とかやってみるとか。 恒久的には、マイコンピューターのプロパティの詳細の環境変数のとこに。 ここにいれるのは、SET CLASSPATH で出てきた文字全部であって、%CLASSPATH%ではない
って区切りは ; だな。 .;%CLASSPATH% で。
web.xml で /hoge 以下の URL だけデフォルトの動作 (JSP プロセッサやファイルサーブレット) で、 それ以外は自作のサーブレットへ渡したいんだけど、url-pattern はどう書けばええんじゃ? url-pattern のワイルドカードは正規表現みたいに 「/hoge/* 以外」 って記述できる?
>>280 コンテナ依存だけど、
Tomcatなら default と jsp というservlet-nameを持つサーブレットへのマッピングを書くことで、
「/hoge/*はデフォルト」という指定ができそうな予感。
LineBreakMeasurer.nextLayout(float wrappingWidth, int offsetLimit, boolean requireNextWord) の三つ目の引数の意味が、ドキュメントを見てもぐぐってみても試してみても さっぱりわかりません。知ってる方がいたら教えてください。
>>281 そうか、互換性のある記述はできなさそうね。default サーブレットの簡易版くらいなら自作サーブレットに
組み込めるんだけど、JSP プロセッサはさすがに無理だしなぁ。
ふと思ったんだが、/hoge 以下のリクエストは FilterChain#doFilter()、それ以外は自作サーブレットと
同じ処理をする Filter クラス作って /* にマップすれば良いのかな? お、何か出来そうなふいんき
>>282 java.awt.font.LineBreakMeasurer のサンプル見たけど、英文の改行処理用の引数だと思われ。
英文は基本的に単語の途中では改行できないって奴ね。ハイフンつけられるなら話は別だけど。
行頭だと false、行頭以外では true に設定してるし。
285 :
277 :2006/03/20(月) 16:06:38
>>278 ,279さん
レスありがとうございます。試してみます。
>>284 なるほど。そういわれればそんなふうに意味が取れますね。ありがとう。
ドキュメント分かりにくすぎ
public class HelloWorld{ //色々 } なんて書くと思うんですけど。 private なクラスってありえるんでしょうか?
>>287 メンバ型なら private なクラスもあるよ。
トップレベルには public か無指定(パッケージプライベート)にしかできないけど。
スレッドがムズいんですけど
290 :
デフォルトの名無しさん :2006/03/20(月) 18:33:55
下らない質問かもしれませんが Socket で通信してるとき 一方が close() したのを、もう一方はどうやって調べるんですか? isConnected() を見てもずっと true のまんまですし
socket.getInputStream().read() が負の値を返すかどうか。 プロトコルはちゃんと設計しないと簡単に破綻する。
292 :
290 :2006/03/20(月) 18:48:44
>>291 ありがとうございます。
read() で調べようとすると、
まだ接続されていた場合はブロックされませんか?
293 :
デフォルトの名無しさん :2006/03/20(月) 18:55:19
>>292 available()を使えと思ったが、接続されてないとブロックって何だ?
サーバならServerSocketでacceptするわけだし、クライアントだとconnectするんだから接続しないとStreamが手に入らないと思うぞ
294 :
290 :2006/03/20(月) 18:59:24
>>292 いや、逆に接続がまだ切れてない場合にブロックされませんかね?
read() のとき
>>292 ブロックされる。だから 「接続されているかどうか確かめる」 なんてのはそもそも無理。
どうしてもと言うなら Socket に setSoTimeout(5000) とか設定して read() しる。
SocketTimeoutException が発生したらソケットは生きてる。負の値が返ったら閉じてる。
ハンドシェイクの遅延で正しい結果にならないこともあるし、そもそも閉じてないと判定
されても次の瞬間に閉じられることだってある。だから、そもそもそんな判定なんて
しなくても良いようにプロトコルの設計が大切。
296 :
290 :2006/03/20(月) 19:16:24
>>295 なるほど、そんなもんなんですね。
勉強になりました
俺はマンドクサいのでとりあえずHTTPを使ってしまうわけだが
今後のJavaの文字列操作はCharSequesnceが中心になるのかな? でもinterfaceとしてはcharAt乱用だろうし、遅そうだな・・・
299 :
デフォルトの名無しさん :2006/03/21(火) 02:29:39
CGIサーバー上から取得したHTMLファイルから、CGIのPOSTをJAVAで任意に送信内容操作・送信するにはどのようにすればよいでしょうか? HTMLファイルはコンボボックスと送信ボタンがあります。送信内容はコンボボックスの値で、送信は送信ボタンが押されたときの処理をJAVA上で実現したいんですが・・ どうか、よろしくお願いします。
301 :
デフォルトの名無しさん :2006/03/21(火) 08:11:55
JSPやServlet使う これらを勉強しなさい
302 :
デフォルトの名無しさん :2006/03/21(火) 08:17:30
クライアント、サーバーどちらで処理したいか整理したほうがいい ⇒要求をもう少し掘り下げて整理したほうがいい 5W1Hって知ってるでしょ?
the Worst Web Worker Waits Waist Holder. ま、ダイエットしろってことで。
304 :
デフォルトの名無しさん :2006/03/21(火) 11:45:39
FileChannel#close() を呼び出したときって、その FileChannel 生成元の 入出力ストリームまでちゃんとクローズしてくれる?
>>107 でレスがなかったのでもう一度、、、
クライアントのJREバージョンを見分けて、
それ毎に別々に読み込むXMLライブラリを変えることは可能でしょうか。
たとえば、↓みたいに書くとか、、
String javaVersion = System.getProperty("java.vm.version");
if(javaVersion.startsWith("1.0") || javaVersion.startsWith("1.1")
|| javaVersion.startsWith("1.2") || javaVersion.startsWith("1.3")){
//apacheの外付けjarの処理を記入
}else if(javaVersion.startsWith("1.4")){
//crimsonを使用した処理を記入
}else{
//組み込みxercesなどを使用した処理を記入
}
>>305 XercesJいっしょにくばっちゃえばいいじゃん。あと、
java.vm.versionを見るのは駄目。たとえばうちの処理系だとこうなる。
java.vm.info=J2RE 1.4.2 IBM J9 2.2 Windows XP x86-32 j9n142-20040917 (JIT enabled)
J9VM - 20040916_0908_lHdSMR
JIT - r7_level20040915_1801
java.vm.name=IBM J9SE VM
java.vm.specification.name=Java Virtual Machine Specification
java.vm.specification.vendor=Sun Microsystems Inc.
java.vm.specification.version=1.0
java.vm.vendor=IBM Corporation
java.vm.version=2.2
APIリファレンスにちゃんと説明があるから読むように。
>>305 あと、ユーザに手間をかけさせたくないというならJava Pluginを適切に
使って所望のバージョンのJREがクライアント側に自動インストールされるようにすること。
そのためにHtmlConverter.exeがJDKに同梱されている。
"static"使うときってどんなとき? 今まで"static"って複数ユーザで 使いまわすモノだと思ってた... こーゆー時は"static"使うと便利だよとか、 ここは使うしかないっしょ!!ってのある? 今はsingletonパターン使うときくらいしか使ってない こーゆーの private static Class singleton; if (singleton == null) { singleton = new Class(); return singleton; } return singleton;
それsingletonにならんでしょ
private static Class singleton = new Class(); で return singleton; とするのが普通だよな
311 :
デフォルトの名無しさん :2006/03/21(火) 17:47:39
strutsのアクションであるjarに含まれているメソッドを実行するとエラーに なります。 そのアクションにmainを追加して、Javaアプリケーションとして実行すると うまくいけます。 エラー内容はjava.lang.NoClassDefFoundErrorです。 どういった原因が考えられますか?
実行時に参照可能なクラスパスに含まれていないから
314 :
デフォルトの名無しさん :2006/03/21(火) 18:00:37
あなたにはその価値があるから
315 :
デフォルトの名無しさん :2006/03/21(火) 18:13:39
SQL で LIKE 使ってワイルドカードで検索する場合: SELECT FOO FROM BAR WHERE NAME LIKE 'a%' PreparedStatement のプレースホルダってどう書けば良いの? stmt = con.prepareStatement("SELECT FOO FROM BAR WHERE NAME LIKE [ここどう書くの?]"); stmt.setString(1, "a");
316 :
313 :2006/03/21(火) 18:28:11
317 :
デフォルトの名無しさん :2006/03/21(火) 18:30:30
>>312 お返事ありがとうございます。
その回避方法はどうすればいいのですか?
eclipseで外部JARの追加でそのJarファイルを追加しているのですが。
>>316 あれ? PreparedStatement のプレースホルダーって埋め込み値の % や _ をエスケープするんじゃなかったの?
フリー入力値を LIKE で検索するとき注意が必要ってこと?
PreparedStatement のtoString()使うと実際に使われるSQL文が見られるから、 試してみるとか。 あとは、ソース見るとか。
320 :
デフォルトの名無しさん :2006/03/21(火) 22:12:46
Java 5.0 で… また、Generics にひっかかってしまいました。(^_^; Vectorに繋がっているものを移動させています。 Vectorはどんなクラスが格納されているかわかりません。 警告が出てしまいます。どうすればいいでしょう? ↓ 「警告: [unchecked] raw 型 java.util.Vector のメンバとしての insertElementAt(E,int) への無検査呼び出しです。」 ‥ ‥ ‥ public void moveElement( Vector VecObje ,int index ,int newIndex ) throws ‥省略 { Object ObjeTemp1 = VecObje.get(index); ‥省略 VecObje.remove(index); VecObje.insertElementAt( ObjeTemp1 , newIndex );←ここで警告 }
>>320 Generics 使ってるなら
public <T> void moveElement( Vector<T> VecObje ,int index ,int newIndex )
とか?
322 :
デフォルトの名無しさん :2006/03/21(火) 22:20:17
1.4のソースとしてコンパイル
>>320-322 @SupressWarnings("unchecked")
public void moveElement( Vector VecObje ,int index ,int newIndex )
はどう?だめかな。
どうでもいいが、変数名を大文字で始めるな
325 :
デフォルトの名無しさん :2006/03/21(火) 23:25:12
strutsで文字化けを回避するには、 new String(str.getBytes("ISO8859_1"), "Shift_JIS"); で、文字コードの変換をしてやらないと駄目なんですか? 何かもっと効率のいい方法はありませんか? 環境は、struts1.2、Tomcat5.5です。
326 :
デフォルトの名無しさん :2006/03/21(火) 23:32:27
>>321-324 みなさんどうもありがとう。(320)( ^∇^)
321さんの方法で警告静めました。
Vectorの後の<T>はなんとなくわかりますが、public <T> void の<T>
はどうしてこうなるのかさっぱり理解していません。
>>323 @SupressWarnings("unchecked")
これはすご過ぎて意味が全然わかりません。
328 :
デフォルトの名無しさん :2006/03/21(火) 23:41:27
コレクション・フレームワークって ArrayListとHashMapしか使ったことがありません。 他のものを使うことってありますか?
>>320 ,321
型は何でもいいっていってるんだから T じゃなくて ? では。
>>325 request.setCharacterEncoding("MS932");
>>328 LinkedListはinsertやremoveに強い
はずが要素数が膨大にならないとArrayListより効率が悪い
LinkedHashMapは挿入された順番を保持する
keySet#iteratorと一緒に使えば何かに使える
TreeMapはキーが整列される
等幅StringやIntegerをキーとして使えば
keySet#iteratorで何かに使える
Javaってコーヒーなの?紅茶なの?
334 :
328 :2006/03/22(水) 00:45:21
>>332 ありがとうございます。
挿入された順番を保持したい、キーを整列したい、
という場面は今までありませんでした。
そういう時には便利そうですね。
Setは、iteratorのkeyset取得以外の
用途ってありますか?
335 :
デフォルトの名無しさん :2006/03/22(水) 00:47:55
>>329 T じゃなくて ? では。
?でやると内部はどう書き換えるのでしょうか?
>>334 Setは重複を許さないという点が何よりの特徴
Java5.0から登場したタイプセーフenumと相性がよく
整数定数によるビットフラグなどを利用した経験があるなら
5.0から登場したEnumSetを見てみる価値はある
338 :
デフォルトの名無しさん :2006/03/22(水) 07:37:53
っJavaBeans
339 :
287 :2006/03/22(水) 09:01:52
>>288 メンバ型のクラスって何ですか?インナークラスのことですか?
>>333 コーヒーですな。
で、Java は本当は発音が「じゃわ」なんだけど、
英語読みでは「じゃば」。
>>339 クラスのメンバになってる型。
inner class はメンバ型のなかでなら、static が付いてないものだけを指す。
String型のデータが空の場合null int型が空の場合って何でしたっけ?
プリミティブ型に空もへったくれもないと思うが
ひょっとしてデフォルト値のことか?
345 :
デフォルトの名無しさん :2006/03/22(水) 16:10:55
すみません,質問させてください. FileInputStreamを使っていて,read()を呼び出すこと無くEOFを検出する方法はありますか? ファイルの読み込み位置を変えること無くEOFを検出したいのですが. # available()は使うべきではなく, # b=new byte[0]; int i=read(b); ではi==0にないそうなのですが…わかりません. .
># b=new byte[0]; int i=read(b); ではi==0にないそうなのですが…わかりません. 「b=new byte[0]; int i=read(b); ではEOFに関わらずi==0になってしまうそうなのですが」 の間違いです.何度もすみません.
・読み出したバイト数を保存しておいて File#length() と比較 ・RandomAccessFile を使用して getPosition() と length() を比較 ・FileChannel を使用して position() と size() を比較
ありがとうございます.FileInputStreamより他の方法を使えということですね. 勉強になりました.
どうにもわからないので質問させてください。 目的はgifと図形を印刷したいです。 drawimageのthisが悪いようなのですがどう悪いのかわかりません。 すみませんが教えていただけないでしょうか class PrObject implements Printable{ public int print(Graphics g,PageFormat fmt,int pageIndex){ if (pageIndex > 0){ return Printable.NO_SUCH_PAGE; }else{ Graphics2D g2d = (Graphics2D)g; Image img01 = Toolkit.getDefaultToolkit().getImage("test.jpg"); g2d.drawimage(img01,100,100,this); g2d.drawRect(100,100,100,100); return Printable.PAGE_EXISTS; } } }
>>350 eclipseのエラーメッセージでは
「メソッドdrawimage(Image,int,int,PrObject)は型Graphics2Dで未定義です。」
と出ます。
drawImage ~
>>352 ありがとうございます。
正直死にたいです、申し訳ありませんでした。
これからはよく見直します。
XML + XSL で HTML を出力しようとしてるんだけど JDK 1.4 標準の Transformer って XML を完成させてからでないと使えないの? FilteredWriter 版みたいなのってないの?
355 :
デフォルトの名無しさん :2006/03/22(水) 20:06:51
フリーのJava開発環境で、小さくて軽いものを探しています。 EclipseやJBuilderのような大掛かりなものでなくて、 プロジェクト管理機能を持ったエディタ程度のものでかまいません。
>>355 案1) Emacs(WinならMeadow)とJDEE。最近の動向は知らんけど。
案2) JEdit
358 :
デフォルトの名無しさん :2006/03/22(水) 21:57:57
Emacsはあまり好きくないです。 ファイル一覧がパッケージの構成と同じツリー状になって表示されるタイプのがほしいです。
>>345 ちょっと待て。なんで available() は使うべきではないんだ? 何か問題でも?
オイオイ available() は残りの長さを調べる目的のものじゃないだろ。
パッケージ javax.printを使って、JPanel内に描画させた文字や図形を、A4用紙に印刷する事を試みています。 しかしながら、JAVAのAPIドキュメントを見ても訳が分かりません 分かりやすいHP、参考書を教えてくれませんか。 ソースコードの記述例があれば、大変ありがたいです。 よろしくお願いします。
>>359 それ実装依存だから。
ドキュメント見ても、「ファイルの残りバイト数が返る」とは書いてない。
仕様にないものに依存しておいて「問題ない」と考える、その考え方そのものが問題。
ZIP ファイルの中に日本語のファイル名やディレクトリ名があると ZipInputStream#getNextEntry() で IllegalArgumentException が発生しますが 何か対処法ないですか? 多分 Shift_JIS のファイル名を UTF-8 で戻そうとして 文字化けして ? の文字で失敗してると思うんだけど。 java.lang.IllegalArgumentException at java.util.zip.ZipInputStream.getUTF8String(ZipInputStream.java:298) at java.util.zip.ZipInputStream.readLOC(ZipInputStream.java:237) at java.util.zip.ZipInputStream.getNextEntry(ZipInputStream.java:73) …
VisualStudio2003でプログラムを組んでいるのですが printf関数が使えません。 サンプルどおりに組んでいるのですが、 'java.io.PrintStream' にメソッド 'printf(String, int)' が見つかりません。 と表示されます。どうすれば使えるようになるのでしょうか?
それって J++? JDK 1.5 を使ってください。
ん、J++ じゃなくて J 何とか.NET だったかな。
>>364 org.apache.tools.zip.*
>>364 それ俺もハマった。で、ソース追いかけて行って解明。
もうね、バイナリを何も考えずにutf8としてビット演算とかして
Stringにしてたよ。しかも protected のメソッドで。ふざけんなSun。
継承して置き換えられねえだろうが。ヴォケ。
あ、間違えた。protected じゃない。それならできるんだが、そうじゃない。 private のメソッドだ。
>>368 どうも、org.apache.tools.zip って Ant の方か。必死に Commons を探してしまった。
これって ZipInputStream の代わりになるものが無いからいちいちファイルにしてやらんと
いかんわけね…
>>369 FilteredInputStream のサブクラス作ってファイル名部分のバイナリだけ UTF-8 に
置き換えて読み返すような方法が既存のクラスそのまま使えるし良いかと思って
るんだが、ZIP のフォーマットに精通してるわけでもないのでなかなかなぁ。
372 :
デフォルトの名無しさん :2006/03/23(木) 09:50:08
クライアントとサーバーの間に配置して、 クライアントから受け取ってサーバー側にリレーするだけのプログラムってどうやって書いたら良いですか。 単にリレーするだけなら、ソケットとかは使う必要ないですよね?
テレパシーで通信してるならソケット使う必要は無いだろうね。
テレパシーのUDPのポート573720568273番でよろしく
375 :
デフォルトの名無しさん :2006/03/23(木) 10:28:46
>>372 つまりルーターと同じようにPCを使うってこと?
何のためにそんなコードを書きたいのか分からないが、
別にプログラムを書かなくても単にケーブルをつないでルーティングテーブルに
エントリーを入れたら、中継ノードになるのでは?
プログラミングコードとしては単なる中継ノードとしてでもソケットクラスは使うのでは。
EARファイルとWARファイルの違いって何ですか?
単に右から来たパケットを左に流すだけなら、ソケットクラスなんか使わないでも記述できるんじゃ?
>>376 拡張子。jarもwarも同じツールで作れる。
379 :
376 :2006/03/23(木) 11:16:30
>>378 中身の構成について、EARファイルはこういう構成でなければならない。とかってありますか?
たとえば、WARだと中にWEB-INFがあってweb.xmlが書いてあって。ってのが一般的な構成ですよね?
EARは、JARやWARを含めることができる。 ルートにMETA-INFがあって、その中にapplication.xmlがある。
381 :
376 :2006/03/23(木) 11:23:59
>>380 ありがとうございます。それを手がかりに調べて見ます。
parは何なのん?
プロアクションリプレイ
384 :
382 :2006/03/23(木) 11:36:14
>>383 ありがとうございます。それを手がかりに調べてみます。
イベントのハンドリングを自分のすきなタイミングで行いたいのですが、 できますか?
>>385 普通のリスナとかでイベント受け取って、
遅延イベントプールな List に突っ込んでおくとかすれば擬似的にできるかも。
普通はやらん。手間かかって、複雑性やらバグの可能性とか増えるだけだし。
387 :
デフォルトの名無しさん :2006/03/23(木) 15:19:43
球体を表示するプログラムってどんな風に書けばいいんですか?
Graphics#drawOval()
389 :
I need you :2006/03/23(木) 15:28:40
スレ汚しすいません。 <html> <head> <title>ヤードをメートルに換算。</title> <script language="JavaScript"> <!-- function yard 2meter(){ yard = document.form1.meter.value; meter = yerd * 0.9144; document.form1.meter.value = meter; } // --> </script> </head> <body> <font size="5">メートルに換算!</font> <hr> <form name="form1"> <input type="text" value="0" name="yard">ヤードは<br> <input type="button" value="換算"oncrick="yard 2metre()"><br> <input type="text" value="0" name="metre">メートルです </form> </body> </html> が動かないのですが。 ドコがおかしいのでしょうか?何方かお願いします。
392 :
I need you :2006/03/23(木) 16:22:44
>>390 さん
>>391 さん
レスありがとうございます。
スレの皆さん、誤爆してしまい本当にすみませんでした。
>>391 さん
Googleに飛ばせとはどういうことですか?
お手数をかけますがご指導のほどよろしくお願いします。
>>362 俺が聞きたかったのはファイルの EOF の判定をするのに available() を
使うべきではないというのはなぜなのかなのだが。普通のファイルなら
全部ブロックせずに読めるんじゃないの? (UNIXのFIFOや/dev以下の特殊な
ファイルだと0が返ることはあるかも知れないが)。
> 普通のファイルなら全部ブロックせずに読めるんじゃないの? だから仕様に無い前提を勝手に脳内生成してるのがおかしいんだって。
>>394 なるほど。じゃあ available() の存在価値は無に等しいね。
available() のまともな用途なんて思いつかないな。select() みたいに ブロッキング無しでデータが到達してるかどうか判定するくらい。 でも非ブロッキングのデータ持ってても 0 を返せるから意味が無いか。 Socket でやるなら setSoTimeout() でタイムアウト仕掛けた方が確実で ポータビリティも高い。
public class Thread1 extends Thread{ public static void main(String[] args) { Thread1 countten = new Thread1(); countten.start(); for(int i = 0; i < 10; i++){ System.out.println("main: " + i); } } public void run(){ for(int i = 0; i < 10; i++){ System.out.println("run: " + i); } } } これを実行すると main: 0 run: 0 main: 1 run: 1 …となると例題に載ってるんだけど、mainの0〜9が表示されて次にrunの0〜9が表示されてしまいます… なんででしょうか
>>397 抜けが無いなら、例題が間違ってる。
同期処理してないので、交互になる保証は全く無い。
実行環境の Thread の実装によっては、交互になるのかもしれんが……
>>397 i < 10 を i < 100にしてどうなるか
>>397 せっかくなのでどこに載ってた例題なのか晒してちょ
>>400 何が起きてるか分かりやすいな
>>401 Java言語プログラミングレッスンのスレッドの章ですた
>>402 > Java言語プログラミングレッスン
って結城浩さんの?
web においてあるプログラムリスト見たけど、
ぱっと見たところ、
>>297 みたいのはないぞ。
>>402 >>403 とりあえず配布してるzipの16章の中に
それらしきコードはあったね。
本文読んだこと無いから分からんけど、もしかすると、
>>397 > これを実行すると
> main: 0
> run: 0
> main: 1
> run: 1
> …となると例題に載ってるんだけど、
ってのは、厳密にその通りの順番になるって説明してるんじゃなくて、
両方が平行して実行されてることを示そうとしてるだけなんじゃないのかな?
日本語の読解力の問題じゃねぇかと思えてきた。
>>404 あった、src2/chap16/CountTenA.java か。
Amazonの「なかみ」で検索したけど、たぶん
>>404 の解釈であってるっぽい。
new String( xxx , "UTF-8"); とやって文字コードの変換をやりたいのですが、 変換後の文字列が???となっちゃいます。 入力文字列がUTF-8Nであるようなのですが、 これはjavaで簡単に変換する方法ないでしょうか
コンパイルオプションでも円コーディングをしてしていないとか
>>406 Javaの"UTF-8"はBOMなし、というかBOM考えてないよ。
(utf8は8ビットだから元から不要)。なのでUTF-8Nが
Javaの"UTF-8"だ。BOM付きutf8の文字列を変換しよう
とするとBOMのコードがそのまま入る(\ufeff)。
'?'になるのはまた別の理由だと思う。
409 :
デフォルトの名無しさん :2006/03/24(金) 20:40:32
あのJAVAというかプログラミングに関して質問なのですが、 else if分とswitch分ってどちらを使ったほうがいいのですか?
適切なほう。
>>409 どちらでもいいとき、というのは1変数に離散的な値が入っているケース。
そういうときはswitchのほうが、case 値: と値を明記するので見やすいことが多いです。
自分はやりませんが、値がいくつもならんでswitchのブロックが長くなるときは、あえてif文に
して、何を比較しているか明示する人もいます。
もちろん値が連続的なものは範囲指定などが必要なので、必然的にifになります。
DOS 時代の C の話なので聞き流して欲しいが、switch 文の方が コンパイルでジャンプテーブル作る分俄然速かったな。Java は どうか知らんし、今時それでたいした差が出るとは思えんが。
ん?普通に考えてswitchのが早いでしょ? default入れないswitchがCでは高速に動作するはずだよな Javaでもおんなじだと思う
そこはコンパイラがうまくやってくれるんじゃないの
if〜elseとswitchはバイトコードまで違うようですね。 static void a(int n) { if (n == 1) { n = 5; } else if (n == 2) { n = 5; } } static void a(int); Code: 0: iload_0 1: iconst_1 2: if_icmpne 10 5: iconst_5 6: istore_0 7: goto 17 10: iload_0 11: iconst_2 12: if_icmpne 17 15: iconst_5 16: istore_0 17: return
static void b(int n) { switch (n) { case 1: n = 5; break; case 2: n = 5; break; // } } static void b(int); Code: 0: iload_0 1: lookupswitch{ 1: 28; 2: 33; defaul 28: iconst_5 29: istore_0 30: goto 35 33: iconst_5 34: istore_0 35: return
ふーん、ちゃんとジャンプテーブル作るんだ。まぁ整数定数の制約設けてるんだから当然か。
tableswitch使うこともあるわな。 static void b(int n) { switch (n) { case 1: n = 5; break; case 2: n = 5; break; case 3: n = 5; break; } } static void b(int); Code: 0: iload_0 1: tableswitch{ //1 to 3 1: 28; 2: 33; 3: 38; default: 40 } 28: iconst_5 29: istore_0 30: goto 40 33: iconst_5 34: istore_0 35: goto 40 38: iconst_5 39: istore_0 40: return
このへんはcaseの数とかによってオプティマイザが使い分けるから、 気になる人は複数の条件で調べた方がいいね。
何で調べてるの? そういや気になったことがひとつ。 KeyEvent.VK_0などの定数でswitchすると 何か生のときより遅くなる気がする。 気のせいだといいんだけど、真実ならうめこんじゃおうかな
public static final int でもコンパイル時に値が決まらないものもあるけど、 ソース見ると KeyEvent.VK_??? は普通の数値リテラルみたいだからコンパイル時に 埋め込まれると思ス
>>419 複数の条件調べるぐらいなら javac とかのソース見た方が早いんじゃ……
lookupswitchとtableswitchってなんですか?
426 :
デフォルトの名無しさん :2006/03/25(土) 00:48:35
Javaの習得目的で、ネトゲの完全自動化というものにチャレンジしようと思うのですが ある一つの画像にしぼり、その画像に反応したらキー入力という流れにしたいのですが アプリを作った経験が無いので文法こそ結城浩のJava言語プログラミングという書籍を片手にやってるのですが この文法を書いてみろと言われたらその一つの文法を書けるのですが それらを組み合わせてプログラムを作り上げていく方法が分かりません Java習得にあたり最初にこんなプログラム作ってみたら?という物があればアドバイスして頂けないでしょうか
>>426 最初じゃないよね。もし本当に最初ならHello Worldになっちゃうけど。
自分が就職してプログラムを作るための教育を受けたときは、
・BigDecimalみたいなのの実装
・各種アルゴリズムを使ったサーチやソート
・FFT実装
・ピクセル画像・ベクトル画像・テキストのコンバータと表示・印刷
くらいを基礎にやりました。C言語だったけど。
目的からして、最後の例なんかをやってみては。
ゲームの入力を自動化したいだけだろ。Robot クラスで遊んでみれば? ただ別ウィンドウの表示画面取り込みは native メソッド使わにゃ出来んな。
別ウィンドウの表示画面もRobotで取り込めますが。
そうだっけ? 失礼
createScreenCapture() か orz JNI でスクリーンキャプチャして Bitmap 画像作ってたのは 1.1 の頃だった…
Java って、バイトコード生成時はほとんど最適化を行わないって昔聞いたが
そりゃあおめぇ JDK 1.1 時代の話じゃねぇ?
いや、1.2 の頃からずっと 「最適化は JIT に任せてコンパイラはいらんことしない」 って方針だよ。
手元のはインライン最適化ぐらいはやる。
そりゃ定数のインライン展開や定数条件文の削除なんかは今でもやってるけど 実行順序を変更したり勝手にジャンプ作ったりするような最適化の話よ。
PostgreSQL 8.1 の BYTEA 型のカラムに PreparedStatement#setBinaryStream() で でかいバイナリ入れようと思ったんだけど、20MB くらいので OutOfMemoryError が 発生します。ひょっとして PostgreSQL のドライバって一回バイナリをメモリに展開して SQL 投げてんの?
不特定の実行環境に対するバイトコードを どうやって最適化したらいいと言うのだ?
SunのJavaコンパイラとgccのJavaコンパイラの選択の基準を教えてください。
Sunはちんこ gccはまんこ
441 :
426 :2006/03/25(土) 17:39:09
>>427 レスありがとうございます、Hello Worldをやった直後です汗
最後の項目覚えておきます、有益な情報をありがとうございました
>>428 そうです、自動化する為に覚えているわけではないですけど
知人から作りたいものが無ければ中々やる気も続かないよと言われたので
今自分が一番欲するものとして自動化ソフトでした、今すごくワクワクしてます
Robotクラスについて調べたのですがUWSCというスクリプトソフトに似てますね
目標を立てられたのでそれを目指して勉強します!本当に感謝!
442 :
デフォルトの名無しさん :2006/03/26(日) 00:11:22
import javax.servlet.*; import javax.servlet.http.*; ここでエラーになっちゃうんですが 何ファイルのある場所をクラスパスに指定すればいいんですか? よろしくお願いします
servlet.jar or j2ee.jar or その開発環境/実行環境の jar を片っ端から
練習を兼ねてアプリケーションを作っています。 drawLineなどで描いた図形が、上に別のウィンドウが重なったりすると 消えてしまいます。ググってもよくわからないのです。 どなたかお願いします。
446 :
デフォルトの名無しさん :2006/03/26(日) 03:31:25
paintをオーバーライドしてそこで書け
447 :
デフォルトの名無しさん :2006/03/26(日) 07:06:42
448 :
デフォルトの名無しさん :2006/03/26(日) 09:46:46
サーブレットとjspで作られたサイトがあるのですが、 サーブレットでログイン処理や検索をして結果をjspで表示しています。 普通は、ログインのとき index.jsp(ログイン画面) -> サーブレット -> 成功ならwelcome.jsp という手順でページを移動するのですが、 いきなりwelcome.jspに来られるとログインしていないのに ページが表示されてしまいます。 そこで、welcome.jspでsession.getAttribute("userid")などがセットされているかをチェックし、 nullであればindex.jspに戻るようにしようと思ったのですが それでは不正なユーザがわざわざuseridをセットされたかのようなリクエストを送った場合、 welcome.jspが表示されてしまうのですがどのような対策があるか教えてください。
welcome.jsp を WEB-INF/ の下のどっか (例えば WEB-INF/jsp/) に置く。
450 :
448 :2006/03/26(日) 09:53:57
>>449 そこに置いたら誰もアクセスできなくね?
サーブレットから読み込むとか?
ブラウザ直は NG だが RequestDispatcher の forward でちゃんと機能する。 一応定石技だからどのコンテナでも出来ると思うが。 ってひょっとしてログイン成功したらリダイレクトで welcome.jsp 表示してるとかか?
>>451 リダイレクトでやってました。
最初はforwardだったんだけどリロードとかでいちいち
メッセージが表示されるのは嫌かなと。
なら、クライアントがどうリクエストを偽造しても勝手に HttpSession に変な値を入れるのは不可能なので JSP の頭にそんなコードを記述すれば良い。 <% if(session.getAttribute("userid") == null){ response.sendRedirect(request.getContextPath() + "/index.jsp"); return; } %> まぁ他に JSP がたくさんあるなら /* のリクエストにログイン確認用の Filter 仕掛けた方が楽だと思うが。
JavaでWindowsのウインドウハンドルを取得したり 他アプリのキー入力をフックしたりすることは可能ですか?
>>453 >>クライアントがどうリクエストを偽造しても勝手に HttpSession に変な値を入れるのは不可能
ま じ で す か !
サンクス!
456 :
454 :2006/03/26(日) 10:28:04
あ、ウインドウハンドルというのは 別アプリの画面のやつです。 たとえば画像ビューワのタイトルバーに表示されている 画像ファイル名文字列を取得する、みたいな処理を したいのですが。
JNI
無理です。Robot クラスを調べればあるいは君がやりたいことが出来るかもしれません。 昔の MS JVM は非公開クラスたどって何とか HWND 取れたけどね。
マジですがローカル変数ならスコープ抜ければ GC の対象になります。
>>459 「nullを代入することが推奨されています。」は嘘だな。
Javaわかってない奴が作った俺コーディング規則で縛られたプロジェクトとかは除くが。
null代入については既にこのスレでは結論が出ている。
FA 厨キタコレ
>>453 >これマジですか?
この文がどの文章にかかっているかわからないけど、
破棄されるかどうかは GCのルーツから参照されているかによる。
>>463 その結論を良かったら教えてください。
466 :
デフォルトの名無しさん :2006/03/26(日) 13:14:02
Javaのソースを実行形式ファイル(exeファイル)にするには、 どうすれば良いのでしょうか?
>>466 そういうコンパイラ使うか、
jarファイルをexewrapなどでラッピングする(この場合実行にJREが必要)
exe作りたいやつは.netでもつかえ exeってことはWindows限定なんだろ?
限定もクソもないだろ
どういうこと?
彼女欲しいってこと
>>459 それはもう昔の話ともいえる部分が含まれている。
というか都市伝説が含まれている。
詳しくは「Javaの落とし穴」の「SoftReference」について
説明があるページを読め。他のページはほとんどが
古いから鵜呑みにするな。
それから 「dw 都市伝説」でぐぐれ。
null代入するとかえって遅くなることもあることがわかる。
>>473 >説明があるページを読め。他のページはほとんどが
>古いから鵜呑みにするな。
そんな本紹介するな馬鹿
Javaが主に使われている分野ってのはケータイアプリ以外ではJSPですか?
>>456 SWT の org.eclipse.swt.internal.win32.OS#FindWindow 使えば?
将来のバージョンでは消えてるかも知らんけど。
>>475 せっかちで短絡的な奴だな。
古い本でもあてになるところはあてになる。
すべてを否定するのは盲目。
>>477 なんか安直な解釈だな。
いったいどんな目的でJavaの何が知りたいのか
まず話せ。それが解れば回答者は無駄な遠回りを
せずに済みエネルギーの無駄遣いにならず
お前の質問に答えやすい。
>>479 一節しか参考にならないと書いておいて
それを読めと勧める奴は頭がおかしいだけだろw
その章だけ立ち読みすればいいだろ
「この本のこの章だけ読め」 なんて薦め方は普通の人はしないなw
漫画雑誌の特定の漫画だけ読むヤツもいるだろ
486 :
デフォルトの名無しさん :2006/03/27(月) 08:20:43
なに、必死になってるの?
「○○ってマンガあんじゃん、△△に連載されてる奴で。今週の×コマ目
すごくいい台詞出てるから見たほうが良いよ。他は見る価値無いけどw」
なんて言われて本当に見るのは正直者の
>>485 くらいのもんだろう。
どうした?顔が真っ赤だぞ?
お前ら面白いな。 とりあえずSoftReferenceについてググれ。 あの本は、Listやvectorの説明は確かに古臭いが、 GUIについては参考になるものはあった。
Tomcat でクラスファイルが入れ替わったりすると自動的にアプリの中だけ再起動させてるじゃん。 あの有効/無効や時間ってどこで設定するの?
> Tomcat でクラスファイルが入れ替わったりすると自動的にアプリの中だけ再起動させてるじゃん。 デフォルトではそんなことしてません。あなたの使う開発ツールか何かがそうしているのでしょう。 > あの有効/無効や時間ってどこで設定するの? server.xmlまたはコンテキスト設定ファイルです。
Javaでeps画像を表示することは可能でしょうか? ご存知の方がいらっしゃいましたらヒントでもいいので教えていただけないでしょうか よろしくお願いします。
Swingで、コンボボックス3つ(A, B, C)を連動させたいと考えてます。 Aが変化すればBの中身を、Bが変化すればCの中身をそれぞれDBから取得したいです。 それぞれItemListenerを設定し、getStateChangeがItemEvent.SELECTEDだったら DBへアクセスするようにしました。 ただし、Bの中身を消してDBの中身を入れている間は フラグでイベントを走らせないようにしています。 #走らせるとstackOverflowでエラーが発生してしまいます。 Aを変えてBは変更されますが、Bがひとつしかなかったりすると 変更されたタイミングでCが動きません。 どうにかしてここでB→Cと動かすにいい方法はありませんか?
すいません、自己解決できそうです。 力技だけど、イベントを制御しているフラグを解除する前に リスト(-1)をセット→フラグ解除→最初を選択で なんとか動かせそうな予感がしてます。 すいません。
>>495 ありがとうございます
壁が高そうですが調べてみます
499 :
デフォルトの名無しさん :2006/03/27(月) 18:53:24
JDK1.4を使用しています。 以下のコードを実行しました。 BigDecimal bd = new BigDecimal("99999999999999.99"); DecimalFormat df = new DecimalFormat("#############0.00;-############0.00"); System.out.println(df.format(bd)); 実行結果が99999999999999.99となることを予想したのですが、なぜか 99999999999999.98 と表示されてしまいます。 ググってみたのですがなかなか原因が見つからず、もし原因をご存知の方がいらっしゃいましたら、 教えていただけないでしょうか。
ならんけど
>>499 Linux の JDK 1.5.0_05 で試したが、そうはならないなあ。
99999999999999.99 って出る。
>>499 JDK のソースを読んだけど、NumberFormat 内で BigDecimal を
double にしてから表示してるっぽいんだよね。そのせいで精度が落ちてる。
JDK5.0 では、DecimalFormat 内で format が上書きされてて、
BigDecimal を BigDecimal のまま処理してて、精度が落ちてない。
1.4 で扱うなら、DecimalFormat を拡張して、BigDecimal 扱えるようにするとかしないとダメっぽい。
503 :
トリマ :2006/03/27(月) 20:09:41
こんばんわお初でつ☆いきなりなんですが、メールボム(爆弾メール)の作り方知ってる方どなたか居ますか?作り方を伝授して欲しいのですが…
| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| | 次でボケて!!! | | | |__________| ∧∧ || ( ゚д゚)|| / づΦ
JDK 1.4 のコアライブラリって XPath 入ってないんだっけ? XSLT 使えてるから どっかに入ってると思うんだけど。
そもそもメールボムってなんなのよ
正規表現に合致する文字列をランダムに 効率よく生成するにはどうしたらよいでしょうか?
java1.3のswingのクラスを直列化したバイナリデータfileがあり これを5.0で動かしたいのですが、なにか良い方法はないでしょうか? どうも1.4以降データの形式が変わったみたいで 単純にObjectInputStream(file)としただけではserialVersionUIDが違うとおこられました。
509 :
トリマ :2006/03/27(月) 22:45:52
>>506 メールボム:一通送っただけで、その受信者100〜1000通のメールを受信させる。早い話が嫌がらせメール。
>>508 1.3 じゃ XML でシリアライズも出来ないから無理そうな希ガス
>>503 1. Linux を入れる
2. bash で mail コマンドを無限ループで回す
正指令電磁的記録等作成罪ではウイルス作成しただけでも罪になるが メールボムやスパムは対象外だったか忘れた
不正指令電磁的記録等作成等だたコピペミス
初歩的な質問ですみません。 HashMapにputできる数って決まっているのでしょうか? 調べてみたのですがどこにも制限値が載ってなくて困っています Java1.4.1を使っています。
書き忘れましたが、putした数が90000件を越えたあたりで プログラムが終了してしまいます。(正確でなくてすいません。) Exceptionが何故かひろえない状態です。
メモリが許す限り
OutOfMemoryErrorなんじゃない? ErrorはExceptionでキャッチできない
>>510 そうですか…。
ObjectInputStream#resolveClass()とかも調べてみましたが無理っぽいです。
どうも力業で行くことになりそうです。
ありがとうございました。
>>515 DB使え。HSQLDBならスタンドアローンのプログラムに組み込みやすい。
>>518 シリアライズはJavaかSUN JVMどちらの仕様か知らないけど
SUNのJavaDocでは同一バージョンでのシリアライズしかサポートしないと明言してるよ
たまに persistent なデータをシリアライズで DB にぶち込んでる設計とか 見かけるんだけど、偶然耳にして指摘してももう遅いフェーズとかになってんだよなぁ。
>>521 何故persistentデータをシリアライズでDBに格納するのがいけないのですか?
523 :
デフォルトの名無しさん :2006/03/28(火) 09:06:50
独学でJavaの勉強を開始しました。 以下のようなサンプルのソースで分からないことがあります。 public void paint(Graphics g) { //クリア g.setColor((255<<16)+(255<<8)+255); g.drawString("フォント中:"+ fontM.stringWidth("あ")+"x"+ fontM.getHeight(),0,20,g.LEFT|g.TOP); } 「<<」とか「|」ってなんでしょうか?調べてもよく分かりません。 ご存知の方、かご教授願います。 よろしくお願いします。
ビット演算子 2進数 でぐぐれ
いままでネトゲにハマってJAVAの勉強とまってたけど・・・ 今日から復活するよ><
>>503 分かりました。じゃあ図や絵を沢山使って分かり易く作り方を書いた
300MバイトのPDFファイルの解説書を、そのままでは受け取れないかも
知れないので10kバイトづつに分割して3万通のメールとしてお送り
しますのであなたのメールアドレスを教えて下さい。
>>499 System.out.printf()
とFormatter使えよ
>>514-15 HashMap.javaのソースコード
読んでみたらこうかいてあった。
/**
* The maximum capacity, used if a higher value is implicitly specified
* by either of the constructors with arguments.
* MUST be a power of two <= 1<<30.
*/
static final int MAXIMUM_CAPACITY = 1 << 30;
531 :
494 :2006/03/28(火) 11:51:22
iTextのライブラリではイラストレータ等で使われているepsファイルは無理のようです。 できそうな感じなのに惜しい。 すみませんが引き続き情報等あればお願いします。
eps2やeps2cと間違えてたりしてないよな?
533 :
499 :2006/03/28(火) 14:36:39
>>502 早速のご回答ありがとうございました。
内部で勝手にdoubleに変換されていたとは。。
JDK1.5にするか、それが無理でJDK1.4のままで行かざるを得ないなら、独自でDecimalFormatの独自拡張も考慮します。
Java5 だとこんなことも出来て楽だ。 BigDecimal bd = new BigDecimal("99999999999999.99"); System.out.printf("%17.2f%n", bd); printf() の中で同じことをしているのかも知れないが。
>>515 -Xmx オプションで最大ヒープサイズを変更したらどうなる?
putするときの一件のオブジェクトのサイズが いくつくらいになるかによってかわってくるもんだね。 HashMapのソースを見る限りでは 90000件のデータがあると 少なくとも90000ものサイズの配列まで生成しようとする。
>>529 いい案が思い浮かばないからって片手間で済ませるなよ
わかりませんって書いてるようなもんだぞ
>>507 が何したいかわからないから
しょうがないでしょう
教えて君に教える必要はなし。 そこいらの本屋やサイト検索すればわかることだし
このスレって自分の能力以上の質問が出るとすぐにこうなるよな 初級者が初心者の質問を待つだけのスレだから無理も無いが
>>540 いやいや、そりゃそうだろ。
自分のわかるところのだけ教えてあげればいいんじゃね?
でも正規表現の質問は中身は簡単だけど、
あいまいすぎて無理な例。
>でも正規表現の質問は中身は簡単だけど、 難しすぎて死にそうだが・・・
難しすぎて誰も答えられない質問のはず
日本語でおk
545 :
デフォルトの名無しさん :2006/03/29(水) 01:59:49
どこで質問すればよいのかわからない中、ここが一番適当と思ったのでここで質問します。 Webページ上のJavaランタイムがどれもうまく動作しなかったので、 なぜか入っていた(以前間違えて入れたんだと思います) J2SE Development Kit 5.0 Update6 J2SE Runtime Enviroment 5.0 Update 4 J2SE Runtime Enviroment 5.0 Update 6 をアンインストールして、最新のJREをインストールしました。 それでもだめだったのでMicrosoft VMをアンインストールしてみたところ、 @ITにSunの方も再インストールしなければならないと書いてあるのを見つけました。 そこでプログラムの追加と削除を見たらなぜかアンインストールしたはずの上記3種が残っており、 削除を試みると上二つでは「このバージョンの〜」というエラーと「インストール中に致命的なエラーが発生しました」 というエラーが表示されてしまいうまくアンインストールできません。 一番したのでは「変換するときにエラーが発生しました。指定された変換のパスが有効であることを確認してください」 と表示されこちらもうまくアンインストールできませんでした。 どうしたら正常にJAVAが動く環境になるでしょうか? OSはXPのSP2です。
>>540 質問書の意図するところがわからず
曖昧模糊としていては
質問に答えてもほとんどが推測に過ぎず
見当が外れる可能性が高まり
それは質問者にとっても回答者にとっても
良いことではない。
よって質問者はもっと具体的に何がしたいのか
何が目的なのかもっと明確にすべきだ。
それを文句垂れるあたなは一体何が言いたいのか
>>545 > どこで質問すればよいのかわからない中、ここが一番適当と思ったのでここで質問します。
> Webページ上のJavaランタイムがどれもうまく動作しなかったので、
〜〜〜〜〜〜〜〜〜〜〜〜〜
この意味がわかりませんが。何がいいたいのでしょうか?
Appletを表示させたいだけですか? それともJavaWebStartを使いたいだけですか?
それともServletの話ですか? もしAppletの話だったら使用しているブラウザは何ですか?
それをはっきりさせて下さい。
そんなこともわからずに適当なことを言う人はこのスレで質問する資格はありません。
いちいちスルーできない奴が心当たりのある初心者
回答者にエスパーを求めて 誰も回答してくれなかったら 愚痴を零して偉そうなことをいう質問厨 は確かにウザイがな。 最近の10代後半、20代前半に見られる若い餓鬼に そういうのが増えてきているみたいだが。 やる気が無いくせにウザイだけだな
550 :
545 :2006/03/29(水) 12:22:02
>>550 JavaSE 5 Update5 SDKで
Mozilla Firefoxを使ってみているがとくに問題なかったぞ。
Appletなら、ブラウザの設定がどうなってるか確認してみ。
それからコントロールパネルのJava plkuginの設定がどうなっているかも。
そこでjava.exe,javaw.exeのパスが設定されているはず。
それにしてもこのAppletのソースコードみてみたな。
このシミュレーションにかなり興味ある。
流体力学か何か使って計算しているのか?
552 :
デフォルトの名無しさん :2006/03/29(水) 14:47:07
IEがJavaアプレットを利用しないセキュリティ設定になってるという事は?
553 :
デフォルトの名無しさん :2006/03/29(水) 15:25:28
yieldって何て読むんですかね?
はじめまして。 Javaアプリケーションのサービス化をしてくれるソフトで、 Windows2003に対応していて、かつフリーなものって何かありますか? JMidoriServiceは更新ストップしてるようですし。
Javaアプリケーションのサービス化って何ですか?
Windowsのサービスマネージャで起動・停止できるようにってことかと かくいう自分は知りません
557 :
デフォルトの名無しさん :2006/03/29(水) 16:27:49
既に完成している自サイトにサーチエンジン選択可能な外部サーチエンジンによる 検索機能のみを自作、若しくは加工して付けたいのですが、参考になるサイトや そういった物を解説しているサイトを教えて下さい。
560 :
554 :2006/03/29(水) 18:01:39
おおっ ありがとうございます!
javaのプログラムで内部的に作成したオブジェクトをSQLデータベース(mysql)に入れ 後で読み出すということをしたいのですが javaのコードだけでこれを完結させるにはどうやればできるでしょうか? シリアライズなどではなく、どうしても データベースでなければいけないのです
562 :
545 :2006/03/29(水) 18:34:57
>>551-552 詳細設定を見ると、
Java (Sun)
<applet>にJRE 1.5.0_06を使用(再起動が必要)
のところにチェックが入っていました。
「コントロールパネルのJava plkuginの設定」というのはコントロールパネルにある、
「Java(開くとタイトルにはJava コントロールパネル)」というのでよろしいでしょうか?
Javaアプレットのランタイム設定というのがあったので開いてみたところ、
製品名 バージョン 場所 Javaランタイムパラメーター
JRE 1.5.0_04 C:\Program Files\Java\jre1.5.0_04 (空)
JRE 1.5.0_06 C:\Program Files\Java\jre1.5.0_06 (空)
となっていました。
jre1.5.0_04のフォルダにはlib\ext\QTJava.zipというファイルしかありませんでした。
詳細の<APPLET>タグのサポートでもちゃんとInternet Explorerにチェックが入っていました。
FireFoxで
>>550 のページをみるとやはり×マークでしたが、
今度は右クリックでコンソールが呼び出せたので見てみたらNullPointerExceptionなどのエラーが出ていました。
こちらが全文です。
http://www.uploda.org/uporg350101.txt.html
>>561 シリアライズして BLOB 型のカラムにぶちkめ
先端は空気を抜く
567 :
デフォルトの名無しさん :2006/03/29(水) 19:51:31
ピンホールに注意
備え付けのは使わない
>>549 エスパるレベルの質問じゃないと思うが
長文で愚痴らなきゃいけないほど傷ついたん?
>>545 1,IEで見たいのかFireFoxでみたいのかどっちなの?
2,そのPCにQuickTimeが入ってませんか?
QuickTimeはJavaのClassPathを勝手に書き換えるためそれが原因かもしれません。
詳しくは「QuickTime java ClassPath」で検索してみてください。
572 :
545 :2006/03/30(木) 00:24:49
>>571 IEです。FireFoxでの報告もしたのはFireFoxで見れたという報告をいただけたからです。
たしかにiTunes関係でQuickTimeが入っています。
しかし、ウェブサイトを参考にしてCLASSPATHを
".;C:\Program Files\Java\jre1.5.0_04\lib\ext\QTJava.zip"
と書き換えて再起動してみましたが、やはり×マークのままでした。
573 :
デフォルトの名無しさん :2006/03/30(木) 01:28:56
で、このスレと何の関係があんの?
toStringメソッドに関して質問です。 自分でクラスHogeを作ってtoStringメソッドを実装せずに。toStringを呼び出すと ObjectクラスのtoStringが呼び出されると思うのですが、このときObject型のAPIリファレンスの toStringの項目を読むと 〜 Object クラスの toString メソッドは、オブジェクトの派生元のクラス名、アットマーク (@)、および… 〜 と書いてあるのですが、「派生元のクラス名」と書いてあるのに、実際にはHogeクラスのクラス名が 表示されます。これはどういうことでしょうか? 「派生元の」って言われるとObjectクラスのクラス名 が表示されるイメージがあるのですが
>>572 QuickTimeのせいで似たようなめにあったことがあるが
とりあえずQuickTimeをアップグレード白。
新しいマシンでiTunesと一緒に新規にQuickTimeをインストールしたときはQuickTimeのパスなんか
通らない。
>>575 読めないのか
[とか@とか特殊な表示でオブジェクトの状態を表現しているだけだろうが。
Object#toString()の実装方法がわからなければ
Jakarta Commons LangのToStringBuilderクラスを使え。
付帯的にこのクラスの使い方がわからなければ
Eclipseのプラグイン Commons4Eを使え。
自動的に自作クラスにtoString(), hashCode(), equals(), compareTo()
を実装してくれる。
>>570 を見ていると
教えて君の餓鬼が愚痴をこねて甘えているだけに
しか見えないな。答えられるなら替わりに答えてみな。
581 :
デフォルトの名無しさん :2006/03/30(木) 13:05:13
すいません。初心者です。javaってインターネットにつないでないとインストールできないんですか?
>>581 JAVAの入門書とか買えば、ついてくるんじゃないかな。
583 :
577 :2006/03/30(木) 13:17:57
>>576 英語は苦手なんですが…
「the name of the class of which the object is an instance」
↓
X「オブジェクトの派生元のクラス名」
○「インスタンス化されたオブジェクトのクラスの名前」
で理解しておくことにします。少なくとも派生って言葉はでてこないよなぁ…
584 :
デフォルトの名無しさん :2006/03/30(木) 13:18:48
どうもすいません。自己解決できました
何かアホそうな爺さんが愚痴こぼしてるな。
587 :
勉強中 :2006/03/30(木) 14:10:43
「記憶容量をメモリの変数とする」の意味を教えてください。 1バイトメモリと3バイトメモリでは変数の数が違ってくるような木が するのですが。お願いします。
588 :
勉強中 :2006/03/30(木) 14:22:52
587ですが、記憶容量を変数の数で表すということですか。 >583 英語の字面から訳すとオブジェクトがインスタンスであるクラスの 名前。
589 :
545 :2006/03/30(木) 15:14:34
>>573-574 Googleは一番最初に行きました。
1時間ほど検索したり見つかったサイトを調べたりしていましたが、今回の件に関する情報は見つかりませんでした。
なので「Java 質問 site:2ch.net」で一番上に出てきたこのスレで質問をしたのです。
>>578 AppleからダウンロードしてみたらiTunesもついてくるものでしたが、これで問題ないでしょうか?
インストールして見ましたが駄目、再起動しても駄目でした。
ちなみに、
>>550 のサイトの「初期状態」を開くとこういう状態になっています。
http://www.imgup.org/iup184508.jpg.html
590 :
デフォルトの名無しさん :2006/03/30(木) 15:17:28
QuickTime関連はテンプレ入れといた方が良いんじゃない?
>>587 「記憶容量をメモリの変数とする」と言った人か、書いた人に聞くのが一番早いと思う。
592 :
デフォルトの名無しさん :2006/03/30(木) 15:35:43
専門で C、javaかC、C#を習ってこようと思います どちらがいいと思いますか?
>>592 専門はオススメしないってのはあり?
無しなら講師がマトモそうな方だね。
言語の好き嫌いで選ばない方が良いと思う。
>>587 > 「記憶容量をメモリの変数とする」の意味を教えてください。
日本語が不自由な人間に聞いてくれ。
>>589 とりあえずパスからクイックタイム関連を抜き取れ。
おれは抜き取ったら問題なく動いた。
ぬきとってもQuickTimeにはとくに影響を与えない。
596 :
デフォルトの名無しさん :2006/03/30(木) 16:10:55
>>593 講師は皆まともといえばまともだと思います。
javaのほうは設計も勉強して初級SE
C#のほうはプログラマです
598 :
デフォルトの名無しさん :2006/03/30(木) 16:28:26
一つお聞きしたいのですが、BufferedReaderで文字入力を取り込んで、 それら複数をコレクションを使って一旦格納しといて、指定ファイルに出力させる プログラムをやってるところなのですが、 それに加えて、文字入力の際の文字数や入力可能な行数は どのようにして設定できますか? いまのところ使用中のテキストはコレクションで終わっていて、 どういった手法、或いはツール等を使えばよいか分かりません。 すいませんが、ご指南の程宜しくお願い致します。
>>579 のような思いっきり的はずれでえらそうなレスを久しぶりに見た
分析、設計、構築の構築という部分はPGの開発とは違うんですか?
601 :
デフォルトの名無しさん :2006/03/30(木) 16:37:30
>>600 現場や状況によりけり。明確な境界はない。
>>602 つまり構築というのも仕様に沿って
プログラムを書くということなんですか?
604 :
デフォルトの名無しさん :2006/03/30(木) 16:59:27
>>603 構築って言葉であらわされる作業の中にプログラミング作業を含まれる事があるって位に考えると良いよ
PG と SE の役割が明確に分かれてるなら、PG は SE が起こした仕様書通りに コードを書き単体テストをする人。ただまぁ PG が見つけた仕様の矛盾を SE が ちゃんと拾わなくて最後は PG が設計と分析やってたとか、設計も実装もする SE とか、いろいろあるわな。
仕様書通りにコードを書くって言っても それは細かい動きをプログラマが考えるってことで 丸写しできるわけじゃないですよね?
仕様書の細かさや着眼点は客や社内や PM の方針によりけり。大手銀行系だと マジでコードを日本語で書いてるくらい細かい所もある。
608 :
デフォルトの名無しさん :2006/03/30(木) 17:15:36
「Javaの鉄則」の鉄則48に"リテラルクラス"というのが出てくるんですが、 リテラルクラスって何ですか?
public class Literal{ ... }
>>607 そんな仕様書細かく書いてあるって事はPGいらなくないですか?
611 :
デフォルトの名無しさん :2006/03/30(木) 17:24:47
PGはパンチャー
ここはjavaのスレだからSEよりの人が多いのだろうか パンチャーって・・・
PGはぱんちゅ
仕様書書く人がわかるところは細かく、わからないところは1行さらっと。 そして、さらっと書いたところのプログラムが異様に大きくなる罠。
615 :
545 :2006/03/30(木) 18:04:33
616 :
デフォルトの名無しさん :2006/03/30(木) 19:08:27
>>609 特定のクラスの名前というよりは、
何らかの特性を持ったクラスの総称のような感じではないかと思うのですが
"リテラルクラス" の検索結果 約 20 件中 1 - 10 件目 (0.07 秒)
618 :
デフォルトの名無しさん :2006/03/30(木) 21:04:46
16進数の 0x0D0A をテキストファイルに出力したいのですが、 2バイトだと出力できないのでしょうか? char c = 0x0A;として0x0Aは出力できました。 Windowsです。
OutputStream out = new FileOutputStream("hoge"); out.write(0x0D); out.write(0x0A); Writer out = new FileWriter("hoge"); out.write("\r\n");
正直0d0aってダサイよな? もっとましな数字なかったのか
何だとコラ?
PG の仕事は営業から
>>608 読んどらんのでよーわからんが、
たぶんプリミティブ型のラッパークラスどもだと思う
>>608 そんな本は捨ててしまえ。
仮に原書が良くても、そんな訳じゃ他の単語も怖いわ
>>615 解決策のうち、インストールの方もダメでしたか?
627 :
デフォルトの名無しさん :2006/03/30(木) 23:17:32
>>619 thx. ただ単純に連続して出せばいいのか… \r\nってことね。
そういや以前ここだったかで、Javaでも共用体が使いたいって言ったら Effective Jave嫁!ってアホみたいに勧める奴が居たんだよ んで、読んでみたらまるで意味の無いことが書いてあった 上手く説明できないがわざわざサブクラスに置き換えさせるためだけに 腐った共用体の例題書いてとやかく言ってるだけみたいな やっぱ共用体って大事だよな 今はBufferがあるからそれでいいんだけど
>>628 自分で結論出てるのならレスするなよ
文句のレスつけて自分の理解してない事を相手に説明させようとする池沼に見える
>>629 勧めた本人ですか?糞本薦めないでくださいね
630 名前:デフォルトの名無しさん[sage] 投稿日:2006/03/30(木) 23:40:50
>>629 勧めた本人ですか?糞本薦めないでくださいね
632 :
デフォルトの名無しさん :2006/03/31(金) 00:24:24
何だ本読んでも理解できないから説明させようと必死に煽るという 馬鹿が精一杯考えたお決まりの手法か( ´_ゝ`)
説明なんて求めてないから糞本薦めないでくださいね
634 :
545 :2006/03/31(金) 00:37:48
>>626 はい。msiexec.exe〜の一連のをコマンドプロンプトに入力してみたところ、
インストールはできました。
そしてデスクトップのJava Web Startのアプリケーション(Draw 4 App)も動くことを確認しましたが、
依然としてアプレットは×印のままで使えませんでした。
角度を0〜359に変換するうまい方法はないでしょうか? 400→40 -500→220 7000無量大数→160 パソコンて-500/360=-2余り220ってできないんだね
そして635は算数ができない。
>>634 ここは、「プログラム」板のjavaスレだ。
もう二度とレスするな。
そしてみなさん放置してください。
>>635 400度ってそもそも角度といえるの?w
複数周回したという意味なんだろうけど気になった。
/じゃなくて%使えば余りを求めることは出来るよ。
>>634 素直に再インストールしたほうがいいよ
Win98時代はJavaのせいでファイル名がバグりまくったなぁ
そのファイルが消せないとんでもなさで、おかげで当時はJavaが大嫌いだった
>>599 偉そうというより啓蒙している姿が伺える。
啓蒙思想家
>>615 とりあえず、
コマンドプロンプトで
echo %PATH%
echo %CLASSPATH%
と入力したときの結果を見せれ
643 :
デフォルトの名無しさん :2006/03/31(金) 10:04:57
>>625 いや。あの本は使えるぞ。Javaの格言より使える。格言のほうは古いからというのもあるが。
鉄則も今となっては古いが。どちらも一回読んだらイラネ、だな。
リテラル なんたらとかいうのが出てきたことは確かだが。
っていうか何ページにリテラルクラスと書いてあるんだ?
>>608 よ。
ページ番号教えれ。今読んでるところだから。
派遣が煽りに終始するスレにもどったようです
647 :
545 :2006/03/31(金) 10:26:18
>>640 >>615 でインストールされたのはバージョンが古いもののようだったので、
アンインストールして最新版をインストールしなおしてみましたが結果は同じでした。
>>642 はい。
PATH
C:\Perl\bin\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\system32\WBEM;C:\WINDOWS\System32\spool\DRIVERS\W32X86\3;C:\Program Files\ATI Technologies\ATI.ACE\
CLSSPATH
%CLASSPATH%
CLASSPATHが表示されないのはいま空っぽに設定してるせいかと思われます。
>>647 > CLSSPATH
スペル間違えてるぞ。
もう一回確認しろ!!!!!!!!!!!!!
649 :
545 :2006/03/31(金) 12:33:18
あーあのCLSSPATHは後から追加したものですから・・・・・・ やはり「%CLASSPATH%」と出力されました。
>>647 Javaのパスが通ってないんじゃ動かなくて当然じゃないかw
長げぇな。まぁ回答してる奴もいるから良いか。
652 :
643 :2006/03/31(金) 12:45:10
>>608 > 「Javaの鉄則」の鉄則48に"リテラルクラス"というのが出てくるんですが、
> リテラルクラスって何ですか?
よくみたら鉄則48か。
P.187-190だな?
初版第一版発行だが
「リテラルクラス」なんて一つも出て来ないぞ?
確かに「Javaの鉄則 エキスパートプログラミングのテクニック」
ピーター・ハガー著m株式会社ドキュメントシステム=訳
ピアソン・エデュケーション出版
の本だな?
>>625 今リテラルクラスでぐぐってみたが
Sun認定試験のところにも引っかかったぞ。
Smalltalkにもリテラルクラスという用語が使われているわけだが。
Test.class ← これのことじゃねえかと リテラルクラスとは。 バイナリファイルのこと
いや違う、どうやら 値をもったクラスのことなようだ。 結局IntegerやDoubleなどのラッパークラスのことか。 Stringなども含まれる。 単なる、メソッドだけのクラスじゃないっつーことで
>>654 あわてんぼさん、飛んだ先をよく見れ
…
配列の宣言方法(2)
明示的な割り当てをしない配列
リテラル
クラスとは?
メソッドとは?
…
>>655 リテラルクラス smalltalk でぐぐっても引っかかるのは 「Smalltalkイディオム」 って本だけ。
> 第3章 内部(バイトコードとリテラル;クラスとインスタンス ほか)
だからSmalltalkに使われていると何度言ったら
438 名前:仕様書無しさん[] 投稿日:2006/03/31(金) 11:33:12 jarファイルの扱いで日本語ファイル名が化けるというバグが いつまで経っても直らないのだがw
コアライブラリのゼップユーティリティが UTF-8 でしかファイル名扱えないからダメよ。
663 :
608 :2006/03/31(金) 14:40:24
>>652 ごめんなさい
鉄則48ではなく、鉄則47でした。
しゃーらしか そのパラグラフまとめて載せろ。文脈が分からん
665 :
デフォルトの名無しさん :2006/03/31(金) 14:49:43
JAVAアプレットで、マウス右クリックで出すコンテキストメニューを カスタマイズできますか?
666 :
デフォルトの名無しさん :2006/03/31(金) 15:03:20
Smallktalkでリテラルクラス? そんなもんねーよ
スモールチンポは黙ってろ
フルーツポンチに語感が似ている。
>>653 「リテラルクラス」じゃなくて、「クラスリテラル」の誤訳?
class Test {
Class c = Test.class; //「Test.class」の部分がクラスリテラル
}
670 :
608 :2006/03/31(金) 15:44:25
>>664 鉄則47:同期化staticメソッドと同期化インスタンスメッソドをはっきり区別する
synchronizedキーワードは、インスタンスメソッドやオブジェクトと同様に
staticメソッドとリテラルクラスにも適用できます。staticなものにsychronized
キーワードを使った時に取得されるロックは、非staticの場合のロックとは異り
なります。同期化されたstaticメソッドが呼び出されるときに取得されるロックは、
そのメソッドが定義されたクラスのClassオブジェクトに関連付けられたロックと
なります。同期化ブロックがリテラルクラスで呼び出されたときに取得されるロ
ックも同じです。すなわち、そのClassオブジェクトと関連付けられたロックな
のです。
(「Javaの鉄則」鉄則47P182-183)
結論: クラスリテラル
誤訳のせいで粗チン呼ばわりされた 謝罪と賠償を (rya
int i = 2147483647; System.out.println("i="+i); i=i+1; System.out.println("i="+i); こういうプログラム書くとintの最大値がintの最小値に逆転しちゃうじゃないですか。 理屈はわかるんだけども、これってエクセプションとして扱わないの? 扱えないの?
674 :
デフォルトの名無しさん :2006/03/31(金) 17:09:50
言語使用でも読んでこい
扱えますが浮動小数点みたいにコプロがエラー拾ってくれないからそんだけ遅くなります。
676 :
デフォルトの名無しさん :2006/03/31(金) 22:52:13
>>675 オーバーフローって扱えるんだ?知らなかった!
>>676 言語レベルで扱ってはくれない。
事前と事後に自力で変数チェックするとかしてオーバーフローしてるか検査しないとダメ。
Javaらしくないね…
679 :
デフォルトの名無しさん :2006/03/32(土) 00:11:48
680 :
デフォルトの名無しさん :2006/03/32(土) 00:23:36
今日は
4月馬鹿ネタだっつーの、恥ずかしい奴。
mcode\motelar..nis:per:mo/a/ac/aza/ready mcode\motelar..pebla:mo/1240984421/ac/aza/ready mcode\motelar..dsp:dsp:mo/fcp/nec43554n2mr_/ac/aza/ready dplus[mcode_back/110011/]dsp:dsp/a/ac/aza/ready これ何のプログラムで触るかわかりませんか?
>>682 コンサルタントかエスパーを雇ってください。
684 :
デフォルトの名無しさん :2006/03/32(土) 02:44:53
すいません質問です。分かる方教えてくださいませ eclipseでMySQLを実行したいんですが Class.forName("com.mysql.jdbc.Driver"); の文でエラーが出ます。 コマンドプロンプトでは動いたんですがeclipseでは動かなかったです・・・・そもそもこのcom.てどこですか?
がんばれ。
コーディングについての質問なのですが、 コメントを階層化するのにいい書き方ありませんか? クラスの中で /* * フィールド */ /* * メソッド */ /* * メソッド1の説明 */ /* * メソッド2の説明 */ /* * 内部クラス */ /* * 内部クラス1の説明 */ /* * 内部クラス2の説明 */ つづく
>>686 のつづき
とかメソッドの中で
//処理A
//処理A-1
//処理A-2
//処理B
//処理C
//処理C-1
//処理C-2
//処理C-3
こういうコメントを付けるときコメントの入れ子(ネスト)のレベルが分かるような書き方をしたいのですが、
標準的な書き方ってありますか?
>>684 プロジェクトのプロパティ→Javaビルドパスの「ライブラリ」欄に
MySQLのJDBCドライバを追加してやればいいんでないかい?
>>686 実際にJavaAPIのソース覗いてみるとよか。
Apache財団とこのオプソのソースを覗くとかね。
690 :
684 :2006/03/32(土) 03:08:38
691 :
勉強中 :2006/03/32(土) 08:40:04
>591, 594 実は中国語を日本語に訳したのを読んでいるのです。これを 今度は英語に訳すためです。
692 :
デフォルトの名無しさん :2006/03/32(土) 10:10:41
母国語勉強しなさい 私からの命令です
693 :
デフォルトの名無しさん :2006/03/32(土) 14:46:46
mainの中にこんなのが出来るんですけど いったいなにしてるんですか? java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new test().setVisible(true); } });
>>693 イベントキューにRunnable を実装した無名クラスを渡してる。
後で new test().setVisible(true); が実行される。
695 :
デフォルトの名無しさん :2006/03/32(土) 16:47:51
入出力が糞めんどくさいです。 楽チンwrapperクラスください。 自分で考えてみたんですけど駄目でした。 class MyReader extends BufferedReader { MyReader(String path) { super(new FileReader(path)); } } FileReaderのコンストラクタはthrowsあるし、try書くと先頭じゃねーと言われます。
696 :
デフォルトの名無しさん :2006/03/32(土) 17:14:59
なにがしたのか全く理解できない
>>695 class MyReader extends BufferedReader {
MyReader(String filename){ super(getFileReader(filename)); }
static Reader getFileReader(String filename){
try{
return new FileReader(filename);
}catch(IOExeption e){
return null; // throw Error(e); でも良いし、適当にやれ。
}
}
}
>>696 たぶん、MyReader を使う側で try catch とか throws 書きたくないので
FileNotFoundException を握りつぶしたいけど、
>>695 には難しくてできないって事じゃないかと。
699 :
すいません。お助け。。 :2006/03/32(土) 17:31:02
質問なんですが、答えていただけますか? ファイルAの中にファイルBがありその中に メモ帳の絵があるんですが、 それをファイルAの中にファイルBと同じように 表示するには、どうしたらよいでしょうか???? ファイルA>ファイルB>メモ帳の絵 ↓ ファイルA>ファイルB メモ帳の絵 としたいのですが、 私のこの言葉で、伝わりますでしょうか・・・・
700 :
デフォルトの名無しさん :2006/03/32(土) 17:38:51
落ち着いて書き直し
>>697 どうもありがとう。
見てみると普通ですね。コロンブスの玉子というか。
自分頭がちがち。
>>698 そうです。
感謝。
702 :
デフォルトの名無しさん :2006/03/32(土) 18:07:07
プログラムの再起動をさせるにはどうしたらいいでしょう?
>>695 ,697
BufferedReaderを継承してMyReaderにするから
コンストラクタで例外の扱いがめんどくさくなる。
委譲にしとけ。
>>703 委譲にすると、BufferedReader 固有のメソッドを再定義すんのが面倒なんじゃないかね?
個人的には委譲も継承も使わないで BufferedReader を素のまま使って、
try catch とか throws 面倒くさがらずに書く方が良いと思うけど。
705 :
デフォルトの名無しさん :2006/03/32(土) 21:46:00
BufferedImage が使えない環境で、代用になるようなものって ありますでしょうか?どうしても古い環境に持って行かなければ ならないコードがありまして、元のコードは BufferedImage のオブジェクトに次々と描画して最後に g.drawImage(buffered_image, 0, 0, java.awt.Color.WHITE, null); みたいにして一気に描画しています。
>>666 リテラルクラスでぐぐったら何かでてきたような
>>705 > BufferedImage が使えない環境で、代用になるようなものって
> ありますでしょうか?どうしても古い環境に持って行かなければ
まさか法務省のサイトのあのJavaソフトウェアを作っている者か?
709 :
デフォルトの名無しさん :2006/03/32(土) 22:57:32
>>708 違います。天体観測のシステムです。
民間の小さな天文台でスタンドアロンのシステムです。
赤道儀と連動して天球とCCDからの信号の処理結果を表示しています。
赤道儀の制御に使っているPCがどうしても新しくできず、
(GP-IBに似た特殊な制御用ボードを積んでいるため)
新しく交換したCCDの信号処理のためのコードとマージしようとしています。
ターゲットの環境は JDK 1.1.4 です。
java.awt.image.MemoryImageSource でなんとかなるものでしょうか?
(なお、最終的な信号処理は蓄積後観測所外で行います)
エクリプス使えば委譲も簡単
>>709 最近 1.1 で作ってないのでちょっとあやふやだが MemoryImageSource に
Toolkit#createImage() で Image 作ってあとは getGraphics() で描画できた
ような記憶がある。とにかく何かしらで出来はしたはず。
712 :
デフォルトの名無しさん :2006/04/02(日) 01:37:13
Javaでinformaを使ってRSSを作成するときに、discriptionにCDATAを つけたいのですが、どうすればいいのでしょうか?
>>689 見てみましたが、クラスの前とかでコメントアウトのくくり方を変えたのは見受けられますが、
メソッド内のコメントでそういう階層が付いてる様には見えませんでした。
そんなもんなんですかね。
714 :
デフォルトの名無しさん :2006/04/02(日) 06:15:51
配列定義の質問です。 String[] strArray = new String[0]; のところを、 String strArray[] = new String[0]; って書く奴いますよね。 配列はオブジェクトですよね? 後者の書き方で書く奴は殴っていいですか?
イベント処理についてなのですが、 Swingでボタンなどのコンポーネントが複数ある場合、 ボタンを押した場合の挙動は、ボタンごとにActionListenerの匿名クラスに定義してもよいのでしょうか。 それともActionListenerを実装したクラスのインスタンスを一つだけを作ってそれに二つのボタンをAddして actionPerformedメソッド内で振り分けるのがいいのでしょうか。 前者のほうがコーディングしやすそうなのですが、 手元のサンプルコードを見ると前者を採っている例が見当たらないので ボタンの数だけインスタンスを作るので重くなったりして、なにかまずいことでもあるのでしょうか? 前者の例 btn1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { btn1を押したときの処理A } }); btn2.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { btn2を押したときの処理B } });
716 :
デフォルトの名無しさん :2006/04/02(日) 08:59:33
>>714 配列定義の質問じゃなくて、人を殴っていいか聞いてるだけだろ
そのうち殺人まで犯しそうだな
>>709 ソースコードからコンパイルし直せば
最新版Java SE 5でも問題ないだろ。
>>713 Javadocでググレ。
とりあえずEclipseを使えば
コメント自動生成機能があるから
使え。
それからovervew.html, package.html
について調べてみろ
>>714 後者を前者に修正しようともせず
後者で当たり前だと思っているなら直って良い。
>>717 JNI は 1.1 と 1.2 以降でかなり変わっているんだが知ってる?
>>720 そういうときこそ、Eclipseのリファクタリングが吉
へぇ、Eclipse って JNI の中までリファクタリングしてくれるんだ。 ところで JNI って何か知ってるよね?
>>723 Java
Neisann
jIkenndesu
JNI津川名ければいいじゃん
ようは、切り捨て
研究向けのハードはなかなか別環境向けのドライバ出なかったりするから大変だな。 MS-DOS/Win3.1 時代に N88日本語BASIC 用ライブラリしかなかったのをハードウェア リファレンスとコード解読して C とインラインアセンブラで書き直したの思い出した。 たしかフォトマルのボードだったかな?
>>717 コンパイルした後、どのバージョンで実行するのか小一時間(ry
JNI って略してなんて読むの?
730 :
デフォルトの名無しさん :2006/04/02(日) 14:37:15
ジェイニー
簡単に環境の変更を提案する奴の言うことは話半分にとどめておいた方が良い。
732 :
デフォルトの名無しさん :2006/04/02(日) 15:42:18
Socketプログラミングにおいて、回線の帯域を測定するにはどんなクラスを使う方法がありますか。
FileReader で /proc/net/dev の内容を定期的に監視
>>732 byte[] buff = new byte[1024];
とかしてwrite(byte[] buff)やread(byte[] b)で
呼びだし回数カウントして、
掛ければいいんじゃね?
735 :
デフォルトの名無しさん :2006/04/02(日) 16:12:16
配列もオブジェクトだから String[] と書くわけではないよ あくまで「型の配列」を強調するためだ 配列型を表すクラスないし Arrysはユーティリティだし
>>731 そうして構造改革は先送りにされて水に流されてしまうのであった。
後の、一揆まみれの長き鎖国時代の始まりである。
理想を煽って改革を起こそうとする奴はアカ
いえ、白です。
740 :
デフォルトの名無しさん :2006/04/02(日) 17:05:49
IPレイヤでネットワークの通信を行なうアプリケーションをJavaで製作する場合には、 必ずパケットを受信し、送信するために、Socketクラスを使う必要があるのでしょうか?
はい。
ん、IP レイヤー? Java でネットワーク層の処理は行えません。
それはほんとかいな
Java で扱えるのは TCP (Socket/ServerSocket) と UDP (DatagramSocket) 以上。 Pure Java でプロキシやゲートウェイは作れてもルーターやファイアウォールは作れません。
作れないってことはないだろ。向いてないし需要もないから作らないだけで。
746 :
デフォルトの名無しさん :2006/04/02(日) 19:25:48
Java ってすごい?
748 :
デフォルトの名無しさん :2006/04/02(日) 19:29:30
。 。 / / シポーン ( Д )
できないのは彼女くらい
Javaチップって知らないのか?
Javaチップって言ってみたかった 言語なら何でもよかった 今は公開してる
753 :
デフォルトの名無しさん :2006/04/02(日) 19:53:35
Java チップなんて食ったこと無い。 バナナチップは好き バナナチップって言ってみたかった。 果物なら何でも良かった。 今は反省している。
JREに含まれる rt.jar ファイルはどのプラットフォームでも同じものなのでしょうか?
同じ Sun 製でも同じと言う保障は無かったはず。 IBM 製とかになるとまた違うし。
756 :
デフォルトの名無しさん :2006/04/02(日) 21:07:08
そういや、今日Javaカレー食ったよ 昨日も一昨日もだけど・・・
>>735 String[] strArray = new String[0];
とやって strArray.getClass() を表示させてみろ。
>>757 class [Ljava.lang.String;
と表示されるけど、配列を表すクラスがあると思ってるの?
Class.forName("[Ljava.lang.String").newInstance() もできなければ new [Ljava.lang.String() もできないよ。
Class#isArray() が true を返すなら配列型のクラスですが。 まこれは正確にはクラスというより Class のインスタンス。
配列を表すクラスはありません Javaでの配列は言語として実装されており(演算子や制御文と同レベル)、 クラス(オブジェクト)としては実装されていません。 Class#isArray()は変数が指し示すオブジェクトが配列であることを 評価するだけで、配列クラスのインスタンスであることを評価する ものではありません なぜなら、配列クラスはありませんから
>Class#isArray() が true を返すなら配列型のクラスですが。 ではなぜ、isArray()は public native boolean isArray(); nativeメソッドなのでしょうか。 それはCやC++と同じで言語仕様という形で配列をサポートしているからです String hoge[]が許されるのはそういうことです
だから正確には配列を表す Class のインスタンスって書いてんじゃん 揚げ足取りに必死で文盲になったか?
書き込みに主張を必ず盛り込むか、レス番をきっちりつけるかしないと 何が言いたいのか、良く分からんよ
ありゃ、誤読してたのに気づいて今度は書き様にいちゃもんですか。 ところで API リファレンスでは isArray() が true を返す Class のインスタンスって意味で 「配列クラス」 って言葉を使っているのは当然分かってるよね?
>>759 そりゃクラス名を間違って書けばできないのは当たり前だろ。
newInstance はどうかわからないが、Class.forName は問題なくできるだろ。
今のバージョンでは試してないが昔のバージョンではできた。
何が問題で、何を議論にしているのかよくわからん。 普通に、配列はObjectクラスを親にもってるんだから、 クラスでいいんじゃないのか?
配列は単なる連続したメモリブロックだからクラスと呼ぶのは気持ち悪い、 という主張を展開してるみたい。
771 :
デフォルトの名無しさん :2006/04/03(月) 01:49:57
>714 名前:デフォルトの名無しさん [] 投稿日:2006/04/02(日) 06:15:51 > 配列定義の質問です。 > > String[] strArray = new String[0]; > のところを、 > String strArray[] = new String[0]; > > って書く奴いますよね。 > 配列はオブジェクトですよね? > 後者の書き方で書く奴は殴っていいですか? これが原因じゃね?
むしろ俺は、0 という定数が ハードコーディングされていることが気になるので String[] strArray[] = new String[] {}; というような書き方をする。
773 :
722 :2006/04/03(月) 02:19:47
すまん String[] strArray = new String[] {}; だ、もう寝る orz
意味的には0個の要素をハードコーディングしてるだけで同じじゃん。 まぁ個人の気になるレベルの話に突っ込んでもしょうがないけど。 C の頃だが、リテラルのハードコードが気になるあまり #define ZERO 0 #define PARAM01 "PARAM01" … とか、手段と目的取り違えた意味の無いコードが多かったな。
>>774 どちらかというと、
String[] strs = new String[3];
と書くより
String[] strs = new String[] { str0, str1, str2, };
と書くのが、予め str0 等が定義されていないと書きようがない
という安心感の延長上かな
前者だと、つるんと手が滑って 3 の代わりに 4 とか書いても
コンパイルで通ってしまうので。
あと気分的に、「何も無い」とは強い意味を持ったモノで、
他の数字と同列に扱いたくないという思いの表れ
まぁ俺も後で直行コードまたはループして 3 要素入れるの面倒だからという理由で 初期化で配列要素していするようにしてるけど。 「何もない」という事を強調したい場合はブロックコメント使うな。new String[]{/* */} Java だと馴染みない人も居るかもしれんが、コード読む人が居るなら一言言って おけば済む話だし。
>>774 いわゆるひとつのビジネスロジックでは常識かと
>>778 public static final String HOGE_CODE = "HOGE_CODE";
こんなのがよくクラスの先頭で宣言されてたりするもんだw
Java は構文構造が単純だから Eclipse 使ってリファクタリング出来るけど、 C はプリプロセッサ絡んでる分そんな芸当できないからね。結局定数値と定数名と 全使用位置を検索して修正する羽目になる。むしろあるべき論唱えて値だけ変え てる馬鹿が混ざってると後々大変残念なことになるんだけど。
783 :
デフォルトの名無しさん :2006/04/03(月) 11:25:28
FAQ読んでも書いてなかったので質問します。 Eclipseをつかって下のソースを書くと、最後の行の「show」が 横線で消された表示になるのですが、何か間違っているのでしょうか? import java.awt.Frame; public class Sample extends Frame { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Sample s = new Sample(); s.setSize(200,100); s.show(); } }
わかりました。ありがとうございました! こんなに早く・・・スゲー
setVisible(true)をつかえばいいだけだと思う
787 :
デフォルトの名無しさん :2006/04/03(月) 12:50:08
シングルトンって何のためにあるんですか? インスタンスを1つにしたいなら むしろインスタンスなんて作らずにクラスに フィールドとメソッドを持たせれば良いと思うんですが。
>>787 勇気浩のJava言語で学ぶデザインパターン入門を嫁
立ち読みでも理解できる。
>>787 ひんと1: static なメソッドは上書き(オーバライド)することが出来ない。
ひんと2: static なメソッドからはインスタンス変数やメソッドを呼び出すことが出来ない。
790 :
デフォルトの名無しさん :2006/04/03(月) 13:04:39
シングルトンであるかインスタンスプールされているかは使う側は意識したくないから。 まぁ呼び出し側を変更しないで内々に変更できる余地を残しておくためだね。
792 :
デフォルトの名無しさん :2006/04/03(月) 13:10:21
シングルトンってウィンブルドンと似てるよね。
ぜんぜん
ウィンブルドンと やっぱやめた
ダンブルドア
先生!
最近、APIソースを読むのがテレビを観るのより楽しい。 馬鹿ですね。
798 :
デフォルトの名無しさん :2006/04/03(月) 20:05:59
あるログファイルがUTC表記なんですがコレを日本時間に置換したいんです。 java.text.ホニャララを使えばいいんでしょか
>>798 文字列ならフォーマットとロケール、タイムゾーンを指定してこんなふいんき (超俺様記憶; 要確認)
DateFormat df1 = new SimpleDateFormat("EE, MM dd yyy", Locale.UK, TimeZone.getTimeZone("GMT"));
DateFormat df2 = DateFormat.getDateInstance();
Date date = df1.parse(logDate);
System.out.println(df2.format(date));
数値で参照したいなら TimeZone.getDefault().getRawOffset() を加算 (汎用性悪いが)。
>>799 同感。
ついでにゲームもつまらない。
脳の体操がしたいのならゲームよりソース読む方が100倍鍛えられると思う。
プログラミングをしたいわけではないのですが、 javaに関することなので質問させてください javaのサイトに「旧バージョンのアンインスコはしても問題ない」と書かれていたので アンインスコしてしまったのですが、その直後から アプレットが実行されないエラー(ぬるぽ)が発生するようになってしまいました サイトに書いてあるように、インターネットオプションや javaのコントロールパネルを確認・設定変更してみましたが、エラーは改善されません 一切プログラムはいじっていないので、言語間違いやプログラミングミスでは ないと思います プログラミング方面に関しては全くの無知なので、上記に自分が行なったこと 以外の改善策があれば教えていただけないでしょうか?
[スタート]-[設定]-[コントロールパネル]-[Java] → Java アプレットのランタイム設定で前バージョンを選択
804 :
デフォルトの名無しさん :2006/04/03(月) 21:32:59
質問です。javaでメール送信のプログラムで mail.jarとactivation.jarをクラスパスにしたんですが import javax.mail.*; import javax.mail.internet.*; import javax.activation.*; 上記の3つがありませんというエラーが出ました。 どうすればいいでしょうか?
echo %CLASSPATH% して確認
806 :
デフォルトの名無しさん :2006/04/03(月) 22:13:14
確認してみました。ちなみにフォルダ名は任意ですが同一です。 echo %CLASSPATH% %CLASSPATH%;d:\java\javamailx\mail.jar;%CLASSPATH%;d:\java\activationx\activation.jar Okですよね?
>803 レス有難うございます 教わった通りにやってみようと思ったのですが アンインスコしてしまった為前のバージョンは選択できないようです… 何回か再起動してみたところ、ぬるぽは出なくなりましたが 一般例外(load:クラス ○○が見つかりません) ○○ not inited と表示されるようになりました こちらのエラーについても改善策を教えていただければ嬉しいです
>>800 Locale指定した方がはやいだろ
っていうかプロパティファイルを(ry
>>808 変換するんだがデフォルトだけ変更してどうすんの?
>>804 JavaMailのバージョンによっては
古いJREが対応していないときがある。
とりあえずJREとJava Mailを最新版にしてみるのはどうだろう。
Javaアプレットのソースで、 <applet code="Colorbar" width=260 height=260> </applet> こんな感じにアプレットのサイズを決めるコードを書く、と解説書に載ってるんですが これを実行しても一定のサイズのアプレットビューアしか出てきません… Eclipseを使っているからなんでしょうか?
クラス名はちゃんとColorbarになっているのか。 実行方法はブラウザか? それともAppletViewerか? JRE,JDKのバージョンは? ブラウザを使っているならブラウザのバージョンは? まずはそこから確認。
>>811 確か Eclipse の場合、HTML ファイルが無くても Applet を実行できたと思います。
# 考えられる可能性としては、
# 用意したHTMLファイルを使用していない
# appletviewer がサイズ指定を無視してる
814 :
デフォルトの名無しさん :2006/04/04(火) 02:47:23
>>810 とりあえずEclipse以外の環境で、正常動作しました。
お騒がせしました(^^;
815 :
ad :2006/04/04(火) 02:51:50
実は、たったの24時間で、
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
あなたの今後のネット収益を倍増するスキルがあります。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
それを知りたい方は、他にいませんか?
アフィリエイトを使わずにホームページとEメールだけで3,000万以上稼いだ
インターネット・マーケッターの宮川さんが、
巨大な現金の山を作り出す門外不出の一生涯使えるノウハウを
下記のサイトで公開しています。
その内容をお知りになりたい方は、下記をクリックしてください。
【たったの24時間であなたの今後のネット収益を倍増するスキルとは? 】
http://infostore.jp/dp.do?af=moneyclick&ip=successpreneur&pd=01
>>801 ソース読むのは疲れる割に意外と脳を使ってない気がする。
817 :
デフォルトの名無しさん :2006/04/04(火) 06:52:41
画像処理について質問です。 JavaからTIFFやJPEGのイメージを扱いたいのですが、 TIFFやJPEGのフォーマットについて詳しく説明してある サイトとかないでしょうか?書籍でもいいです。
818 :
デフォルトの名無しさん :2006/04/04(火) 07:00:39
>>817 中身なんか分からなくても ImageIO とかで
なんとかならんもんかね?
>>817 1. ぐぐれ。
2. 大きな本屋に行け。
画像を扱ってる人間が、そのフォーマットについてまで詳しく知る必要がないことを
理解した上での発言ならば、このスレッドに質問することは不適切だと思います。
# 一行目からすると、画像処理の質問であってJavaのそれではないよな。
>>815 非道徳的マーケティングで有名な平秀信のパクリサイトか?
test
822 :
デフォルトの名無しさん :2006/04/04(火) 18:45:27
はじめまして。初心者です。javaってどんなプログラムを作ることができるのですか?ゲームとかダウンローダーとか解凍・圧縮ソフトとかも作れるんですか?
823 :
デフォルトの名無しさん :2006/04/04(火) 19:36:27
>>822 あなたの作りたい物そのものと同じになるかどうかは知りませんが作れます。
シェアウェアでうはうはを考えているのでしたら悪い事は言いませんJavaは止めてVisualStudioを購入してC++を憶える方が良いです。
824 :
デフォルトの名無しさん :2006/04/04(火) 19:45:58
J# という手もあるぞ。 おすすめはしないが。
「独習Java」って良書ですか?
あの〜今から独学でプログラミングを始めようとしているのですが、どのプログラミング言語がもっとも初心者向きですかね? プログラミングを始めるならVB6.0かJavaが一番良いと聞いたのもでお聞きしました。 僕はプログラムに関しての知識はゼロです。
827 :
デフォルトの名無しさん :2006/04/04(火) 20:24:49
>>826 しかし VB 6.0 って今から手にはいるのかな。
今はもう VB.NET 2005 (VB 8.0) だもんなぁ。
Java も JDK + Eclipse がタダで手にはいるし、
VB.NET も Express Edition がタダで手にはいるから、
両方やってみればいいんじゃないの?
C# という選択肢もあるし。
漏れは C++ メインだけど、知識ゼロだとどうかなぁ。
>>827 丁寧にありがとうございました!
VB 6.0はVB 6.0の本に体験版が付属されている本があるみたいですよ。
本当はC#を勉強したいのですが、どうなんでしょうか?
VB 6.0とVB.NETとJavaとC#のどれが一番簡単ですかね?
簡単なものはない
>>826 情報処理試験のテキスト使ったりして軽く
コンピュータの動作原理などを勉強しておくと吉かも
>>830 実は兄から誘われているんですよ・・・・手伝ってくれって。
でも困ったことに僕は中卒なんですよね・・・
しかもまったく知らない世界で小中と数学も一番苦手だったんですよね・・・
それで、本当はC#を覚えて兄の会社のHPをC#で2人で作成してソフトウエアの受注をしたいとかなんとか言ってました。
でも、独学だと厳しいです・・・何がなんだかさっぱりなのが正直なところ。
そこで一番簡単なプログラミング言語から勉強して、基礎知識を付けてからのほうがいいかなって思いまして。
((((((;゚Д゚))))))ガクガクブルブル
兄に教えてもらえよ
家内制工業のノリでIT事業を・・・
>>833 自分としては兄に教えてもらう前に独学でやってみたいんですよ!
それに仕事が忙しいと言っていたので、教えてもらう時間が限られますから・・・
しかも、俺は実家なので兄と離れすぎているんですよね・・・・
兄はC/C++を独学で覚えたと言っていました。
836 :
デフォルトの名無しさん :2006/04/04(火) 21:10:34
適当に一冊Java本かって読め
838 :
デフォルトの名無しさん :2006/04/04(火) 22:10:15
携帯電話用JAVAアプリのプログラミングで質問があります アプリ中にバーコードリーダーを起動しようと startApp内でBarcode.captureしているのですが バーコードカメラが起動すると裏でJAVAが落ちてしまい 戻り先が無くてエラーになってしまいます。 ボーダフォンの開発者ガイドにも制限事項は記載されていませんでした。 対応方法をどなたかご存じの方はいらっしゃいませんか?
>>823 難読化ツールでうはうは考えるならJavaでも良いと思うが。
というか昨今シェアウェア自体でうはうはいく時代も時代遅れに
なってきた感があるのだが。
スタンドアロンアプリなんてもう古い
>>827 > VB.NET も Express Edition がタダで手にはいるから、
ただし一年間のみ有効であってプラグイン充実度は駄目駄目。
難読化ツールでうはうはって何?
843 :
842 :2006/04/04(火) 23:09:09
もしかしてパクって難読化ツール掛けてシェア化するってこと?
JavaでC++コンパイラ、リンカなどを作る あとJava→C++コンバータを作る そうすれば大抵のことはできる
>>843 自分では更新できない上に、同様のソフトがフリーで存在するのはどうかと…
>>844 車輪の再発明乙。
そんなこと出来るなら普通に就職するか別のことに使えよ…
売って利益が上がるようなら本腰入れれば良い。 少なくとも開発のリスクは減る。
>>831 >
>>830 > 実は兄から誘われているんですよ・・・・手伝ってくれって。
> でも困ったことに僕は中卒なんですよね・・・
> しかもまったく知らない世界で小中と数学も一番苦手だったんですよね・・・
> それで、本当はC#を覚えて兄の会社のHPをC#で2人で作成してソフトウエアの受注をしたいとかなんとか言ってました。
いまからやるのは無謀。というかウェブサイトをC#で作る理由は?
まずはHTMLくらい覚えろ
>>835 >
>>833 > 自分としては兄に教えてもらう前に独学でやってみたいんですよ!
> それに仕事が忙しいと言っていたので、教えてもらう時間が限られますから・・・
> しかも、俺は実家なので兄と離れすぎているんですよね・・・・
つ[テレビ電話]
>>842 C++だと逆コンパイルしずらいので
コピーされにくいが
Javaだと難読化ツールをつかわないと
コピーされやすいってことでわ。
だから儲からないって思われていた、と。
ひきこもりの弟になんとか社会との関わりを持たせようという兄貴の愛情にナケタ.
なんとなく、かなり以前に自分の仕事をライブカメラで流してるショウエイっておっさんがいたの思い出した。
実際、言語自体その言語で実装ってのはある 車輪の再発見でもなんでもない
JVMは何でできてるの?
でんぷん
仮想マシンの大部分は ANSI C で記述されている。非 ANSI C 部分ってのは もちろん GUI やバークレーソケットやセマフォ扱ってる所。コンパイラや native2ascii なんかの SDK は Java で作られている。
…どこが?
if(obj != null){ .... } ってすればいいのに わざわざメソッド使ったところじゃね? if(isNull(obj){ .... } みたく。
J2SDKでコンパイルできたんですけど実行が出来ません。 コマンドプロンプトで java Sample と入力するとException in thread "main" java.lang.NoClassDefFoundError: Sample と表示されてしまいます。 何がおかしいんでしょうか?
がんばれ。
>>859 toString() や getClass() を null チェック代わりにするならコメントが
必要だと思うし、そこまでやるなら if で処理した方が明示的でオーバー
ヘッドも少ないし。
メソッド内でインスタンスメソッドを呼んでるのならわざわざしないけど。
866 :
デフォルトの名無しさん :2006/04/05(水) 02:50:35
public String[] toArray(List list) { return (String[])list.toArray(new String[list.size()]); } public String[] toArray(List list) { return (String[])list.toArray(new String[0]); } について、どっちがお勧めなんでしょう? 空の配列を使用するほうを実際には使っていますが、 ふと気になりました。 空の配列のほうは、newが余計に行われる 分遅いのは分かっていますが、今の時代に 気にするような重要な劣化でもないと思います。 それよりも、Listの実装がVectorなどの場合、 list.size()でsynchronizedかかるほうが嫌な気がします。 どうなんでしょうか?
てゆうか、下みたいなコードを書くという発想に驚いた。
なんで?
やっと解決したorz 原因はクラスパスというもので、 C:\Program Files\Java\jre1.5.0_05\lib\ext\QTJava.zipを .;C:\Program Files\Java\jre1.5.0_05\lib\ext\QTJava.zip に変更したら実行できた。
>>866 大サービスで解説。
そのList.toArray(Object[]) メソッドは内部で以下のことを行っています。
1. Listのsizeと、Object[]のlengthを比較します。
1.1. sizeよりlengthが大きい、もしくは同じだった場合、2に移ります。
1.2. 1.1では無い場合、リフレクションを用いて新しい配列を生成します。
2. ListからObject[]へ要素を一つずつコピーします。
3. もしsizeよりlengthが大きい場合には、size+1番目の要素にnullを代入します。
4. Object[]を戻り値としてメソッドを終了します。
# リフレクションは動的に生成する方法で、一番時間のかかる方法です。
さて、貴方ならどうしますか?
871 :
デフォルトの名無しさん :2006/04/05(水) 05:41:50
ご説明ありがとうございました。javaとはどんなプログラムを作るのに適しているんですか?C++とはどんなプログラムを作るのに適しているんですか?教えてください
872 :
デフォルトの名無しさん :2006/04/05(水) 08:24:40
Nullオブジェクトが無駄だと思うのなら、
>>860 みたいな考えでいい
メソッド呼び出しのオーバーヘッド気にして手続き型言語的実装するなら…
なんでもない
873 :
デフォルトの名無しさん :2006/04/05(水) 09:55:14
パケットを一定時間プロクシの中に保持して、 その後送信先へ送るようなプロクシを書くにはどのような方法があるでしょうか。
プロクシを実装したいって事? だったら簡単なのはTimerでも使って待てばいいんじゃね
>>872 Nullオブジェクト(nullかどうか)を
>>858 のような方法で判断するのは
どんな意味があるのでしょうか?
876 :
デフォルトの名無しさん :2006/04/05(水) 15:36:43
StringBufferについて質問があります。たとえば、 StringBuffer moji = new StringBuffer(200); とすると200文字分の容量の文字列バッファが取られます。 このmojiに次々とappend()していき、200文字分のバッファ容量を超えてしまうと 内部でどのようなバッファ領域が確保されているのでしょうか?
ソース嫁 うるおぼえだが現在の2倍のバッファが作られたと思う。
ソース見たら(現在+1)*2だったよ。 関係ないけど俺も友達にうる覚えって言ったら うろ覚えじゃね?って直された。 どっちが正しいんだろ?
>>879-880 サンクス!
つまりうろ覚えなのかうる覚えなのかが、うろ覚えだったわけだw
てゆうかそういうネタフレーズをリアル世界で使うなよ
どんなにくるしくても でいし蕎麦たべて うんこしたらなおるよ! ハ_ハ ('(゚∀゚∩ なおるよ! ヽ 〈 ヽヽ_)
イズシ
885 :
皿 :2006/04/05(水) 16:51:00
どんなにくるしくても でいし皿蕎麦たべて うんこしたらなおるよ! ハ_ハ ('(゚∀゚∩ なおるよ! ヽ 〈 ヽヽ_)
887 :
デフォルトの名無しさん :2006/04/05(水) 23:50:52
tomcat環境でjavaxを使うサーブレットを作ったのですが JRUN4に移行するにあたり JRUN4をインストールしてservlet.jarにクラスパスを含めればいいことは わかったのですが JRUN4をインストールして検索してもどこにも見つかりません どうすればコンパイルできますか? よろしくお願いします
888 :
デフォルトの名無しさん :2006/04/05(水) 23:58:50
助詞が変
じょ、女子が変!?
890 :
887 :2006/04/06(木) 00:53:17
別の jar ファイルに入ってるだろ。j2ee.jar とか。
ごめんなさい、と書くのは誰にでもできる で、 適切な表現で質問しないと 適切な回答は得られないよ
ここでは初めて質問するんだが、おまいら答えてくれ。 Javaで、ホストとなっているコンピュータのWindowsのシャットダウンイベントを 拾えるのかどうか。 いっくら探してもそんなもん見当たらねぇ…。 Javaじゃなくても、せめて Windowsのシャットダウン→起動しているIEが終了する→その時点でイベントを拾って True or flase を返して、Windowsのシャットダウンを制御 みたいな事が出来ないかなーと。 質問の仕方が悪いかもしれんが、わかるやつ頼む。オシエテクレ。
894 :
デフォルトの名無しさん :2006/04/06(木) 12:18:15
スレ違うよ 誘導はしない
JavaでWin32API使えんの?
JNIかぁ。確かにこれなら使えそう…かな? 一応Javaに関しての質問のつもりだったんで、スレ違いスマソ。
Javaに関しての質問で Windows固有のAPIが使えるかどうか質問するのが 妥当かどうか判断しなさい。
899 :
デフォルトの名無しさん :2006/04/06(木) 19:31:36
条件式での質問なんですが テキストファイルの操作で while((line=in.readLine())!=null) 上のような条件式がありますが、配列でもできますか? 具体的には配列の中身を順に表示し 要素が無くなったらループから抜けるということをしたいのです。 できるようなら、その方法を教えていただけないでしょうか?
for(int i=0; i<array.length; i++){ System.out.println(array[i]); }
for文使う方法がありましたか !=nullに気を取られてすっかり忘れてました ありがとうございました。
ヽ(・ω・)/ ズコー \(.\ ノ
903 :
デフォルトの名無しさん :2006/04/06(木) 21:30:51
BufferedImageをAffineTransformを使用して斜めに変形させて表示してるんですが、 やたらと斜めがギザギザになってしまいます。 どうしたら綺麗に変換できますか?
Javaでstrutsを使いたいと思い、
struts1.2.9を落としてきて、TOMCAT_HOME/webappsに
struts-examplesを入れ、
ttp://サーバIP:8080/struts-examples とアドレスを入れてstrutsのサンプルを起動しようとした所、
java.lang.NoSuchMethodError: javax.servlet.jsp.tagext.TagAttributeInfo.<init>(Ljava/lang/String;ZLjava/lang/String;ZZ)V
というエラーが出て起動出来ません。
一体何が原因なのでしょうか?
私の環境を書いておきます
サーバ・・centOS 4.12
Apache・・2.0.54
Tomcat・・5.5.16
struts・・1.2.9
御教授の程、宜しくお願い致します。
>>904 JDKのバージョンも書いておくとベターだ。
大方centOS付属のGCJでも使ったんじゃね?
Sunのサイトから、Linux用のJDKをダウンロードしてくるといいよ。
906 :
デフォルトの名無しさん :2006/04/06(木) 22:38:46
ここ観てると世の中パンチャーばかりの原因がわかる
907 :
デフォルトの名無しさん :2006/04/06(木) 22:46:29
908 :
デフォルトの名無しさん :2006/04/07(金) 00:55:19
EclipseでJAVAはじめました 今一,ワークスペースの扱いがわかんないです...... #VisualStudioのワークスペースもよくわからん とりあえず,サンプルコードを弄っています さておき...... アプレットとしてコンパイル済みのclassファイルを同一フォルダに置き htmlファイルから"<applet code="FOOBAR.class" ......>"で呼びだすの医ですが, IEでそのhtmlファイルを開くとEclipse内でコンパイルした最新のものを呼んでくれません 自動ビルドを切りオブジェクトファイルを削除し,し,全てのリコンパイルをしたりしますが結果は同じ どのタイミングで作られたものかはもはや判然としませんが,多少古いものが呼びだされているようなのです IEやJAVAのオプションでキャッシュのクリアをしても変化なしです しかしながら,時折より新しいものに置き変ってくれているようです 無論,デバッグは終り,Eclipse内では問題なく実行できています IEでアプレットとして呼びだされるJAVAのオブジェクトはどこにキャッシュされているのでしょうか? そのキャッシュをクリアし,最新のオブジェクトで実行させるにはどのようにすればよいのでしょうか? 他人に実行可能なプログラムを渡すのにアプレット化してhtmlファイルごと渡す時. 実効方法などを指示せずにすみそうなのでそうしましたが,他に良い方法がありましょうか?
IEの設定を見直してみような 特にクッキー辺り
IEを再起動とかそういう問題じゃないよね?
[CTRL] キーを押しながらリロードボタンをクリック
配列ってスレッドセーフですか?
913 :
デフォルトの名無しさん :2006/04/07(金) 07:43:04
試してみれば? スレッドセーフなら何ができて 何ができないか解るよね?
>>563 こういう風にやってみたのですが、
取り出し時にClassCastExceptionのエラーです。
ですが、それ以前に
データベースの方を見てみると、レコードは追加されていますが、blobカラムには何も入っていないようになるので、
insert時にすでに何かおかしいのだと思いました。
実行時に何もエラーは出ません。
下のコードのような考え方でよいのでしょうか?
public class bobject implements Serializable , Blob{
truncate, setBinaryStream, setBytes, position,getBinaryStream,getBytes, length
をオーバーライト、ただしその中身はなし
}
----------------
bobject ob=new bobject ();
PreparedStatement ps = connection.prepareStatement("INSERT INTO blobtable VALUES (?, ?)");
ps.setInt(1, index );
ps.setBlob(2, ob );
ps.executeUpdate();
ps.close();
>>914 ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream out = new ObjectOutputStream(baos);
out.writeObject(yourObject);
out.flush();
Statement stmt1 = con.createStatement();
stmt1.executeUpdate("CREATE TABLE FOO(CONTENT BLOB NOT NULL)");
stmt1.close();
PreparedStatement stmt2 = con.prepareStatement("INSERT INTO FOO(CONTENT) VALUES(?)");
stmt2.setBytes(1, baos.toByteArray());
stmt2.executeUpdate();
stmt2.close();
サーブレット+JSP+DBな システムを作ってるのですが あるJSPページのサイズが莫大になってしまうため、 gzip転送を使いたいのですが、手引きなどが乗ってるサイトを ご存知の方いらっしゃいませんか?
917 :
916 :2006/04/07(金) 11:24:22
JSPのサイズがと書いてありますが、正確にはサーブレットからディスパッチした先のJSPです。
JSP は無理
ボタン上の文字を上下反転させることはできるんでしょうか?
TomcatのJDBCレルムを使用した認証の仕組みはエンタープライズシステムの中で使用しても問題ないレベルの」ものなのでしょうか?
921 :
デフォルトの名無しさん :2006/04/07(金) 23:57:23
求めてるレベルが曖昧 エンタープライズって言いたいだけ?
922 :
デフォルトの名無しさん :2006/04/08(土) 00:22:14
>921 ではJDBCレルムの認証の仕組みはどのレベルまでのシステムなら使用して問題ないのでしょうか?
>921 エンタープライズ
変態プライス
925 :
デフォルトの名無しさん :2006/04/08(土) 00:30:56
エンタープライズ至高の個人向けレベル
JDK1.4でBMPをImageIconにするにはどうすればよいでしょうか。
>>926 JAI ImageIO Tools?を使う。正式名称忘れた。ImageIOは確かですので、JAIのサイトからたどって。
質問させてください。 以下のようにリフレクションに近いメソッド呼び出しを 行いたいのですが、どうすればよいでしょうか。 キーワードだけでもかまわないのでご教授くださいm(_ _)m class Human { int age; int getAge() { return age; } } class Car { int speed; int getSpeed() { return speed; } } Human ichiro; Car z; data[0] = DataGetter.get(ichiro, Human.getAge); //< ichiro.getAge()を呼び出す data[1] = DataGetter.get(z, Car.getSpeed); //< z.getSpeed()を呼び出す
そんな関数ポインタもどきのことは出来ません。素直にリフレクション使ってください。
>>928 呼び出したいメソッドが getXxx() というのだけなら、
commons-beanutils でいいんじゃないかな。
>>928 直接そういう事は出来ないがインタフェースを使うとか?
interface IntDataGettable {
int get();
}
class Human implements IntDataGettable {
private int age;
public int getAge() { return age; }
public int get() { return getAge(); }
}
class Car implements IntDataGettable {
private int speed;
public int getSpeed() { return speed; }
public int get() { return getSpeed(); }
}
class DataGetter {
public int get(IntDataGettable obj) { return obj.get(); }
}
やろうと思えば java.lang.Class.getMethod() java.lang.reflect.Method.invoke() で無理矢理出来なくも無いが… …基本的には使わないのが良いわな。
>>928 違うクラスのint型の値を得ることが目的ならば、
>>931 のように、インタフェースを用いて双方のクラスに
実装することで解決すると思う。
既存のクラスで触ることが出来ないのであれば、
それぞれのクラスを親クラスとしたそれぞれのラッパクラスを作成し、
そのラッパクラスに共通のインタフェースを実装することで解決可能。
いずれの方法にしろ、リフレクションを設計に組み込むのは
最後の手段として考えたほうが良いと思う。
本質的にクラスをメタ的に扱う必要がある場合は、 妙なインタフェースを導入するよりリフレクションを使うのが 簡単だしおそらく正しい。
935 :
デフォルトの名無しさん :2006/04/08(土) 17:55:04
そんな場合って有るか?
928 を見る限り、 俺には Human の age と Car の speed に 両方とも int であるという形式上の共通点しか見られん。 もっとも、設計が間違っている可能性が多分にあることは同意
>>932-936 レスありがとー(^-^)
とても参考になりました。
結局、
数十のクラスから数万回データを取得しなければならなかったので、
リフレクション
+ 得られたMethodインスタンスをあらかじめキャッシュ
で対応することにしました。
ありがとうございましたm(_ _)m
>>927 具体的にどうやったらいいのか全く分かりません。
できればサンプルコード(載っているサイト等)を紹介して
いただけないでしょうか。
ラッピングクラス作れば良いんじゃないの?
おめーらのやりとり見てると反吐が出る
>940 なら専ブラでこのスレを非表示にしとけ お互いにそれが吉だ
942 :
デフォルトの名無しさん :2006/04/08(土) 23:15:08
strutsで文字列を動的に作成したものを、ダウンロードさせたいのですが、 どうすればいいのでしょうか?
943 :
デフォルトの名無しさん :2006/04/08(土) 23:31:18
javaスクリプトでの質問なのですが、 HPでトップからクリッカブルマップで画像にリンクを張り、そのリンク先を サイズを固定してなおかつステータスバーなどを消して新規ウィンドウで表示させたいのですがどうすればいいでしょうか。 例を挙げると、「家族集合写真画像の息子の部分をクリックすると新規ウィンドウステータスバーなしで 息子の拡大写真がその画像のサイズで出る。」 といった感じです。バラバラに考えれば出来るのですが、複合すると分かりません。 とくにMAPタグでのクリッカブルマップとJavaをどういう風に合せればいいのでしょうか? 文章が稚拙で申し訳ないのですが、どなたか分かる方ご教示ください。
946 :
デフォルトの名無しさん :2006/04/08(土) 23:36:05
申し訳ありません。すれ違いでした。失礼ですがマルチさせていただきます。
>>946 > 申し訳ありません。すれ違いでした。失礼ですがマルチさせていただきます。
マルチと言うと聞こえが悪いから、移動しますくらいの言い回しがいいとおもう。
おいおいww てめーら、何教育しちゃってんだよwwwガラにもねーなwww
同じディレクトリにある同じ権限のファイルで、 File.delete() 使って 消せるファイルとjavaからは何回やっても消せないファイルがあるんですが これは確実に消すことできないでしょうか? java1.5.0_06 windowsですが関係あるでしょうか
Windows はファイル開きっぱなしのままだとファイルは消せません。 どこかでクローズしてないところがあるんじゃないの?
952 :
デフォルトの名無しさん :2006/04/09(日) 14:49:45
KJX作成ツールについて質問してもよかですか? (´・ω・`)
ダメ
954 :
デフォルトの名無しさん :2006/04/09(日) 15:10:25
KJX作成ツールは、ファイルくっつけてるだけ
955 :
デフォルトの名無しさん :2006/04/09(日) 15:11:47
(´・ω・`)ショボーン
956 :
デフォルトの名無しさん :2006/04/09(日) 15:19:40
つーか、「質問してもよいですか?」と聞かれれば ここの人間は「だめ」というので それ言う前に本題を先に聞けばいいのに・・・ 今なら俺が居るので答えるよん
つーか他に専用スレあるし。
958 :
デフォルトの名無しさん :2006/04/09(日) 15:42:26
Ezアプリを作ろうと思ってEzアプリ開発キットをインストールしたのですが、 KJX作成ツールが起動できません。 Unable to access jarfile CmdTool.jar というエラーが出ます。 DOS窓から、cmdtool.jarの入っているフォルダに移動して、 java -jar CmdTool.jar と入力すると起動するのですが・・・ J2SEとJ2MEはインストール済みです。
959 :
デフォルトの名無しさん :2006/04/09(日) 15:43:20
思いっきりスレ違いですかね・・・ 初心者丸出しでごめんなさい (´・ω・`)
>>959 していいかって聞かれれば俺もダメって答えるほうだけど、スレタイによれば、初心者大歓迎。
とりあえず本題の質問すれば、回答や専用スレへの誘導をしてもらえると思っていいのでは?
煽りもあるけど、2chだから軽く流して。
961 :
デフォルトの名無しさん :2006/04/09(日) 17:59:21
962 :
デフォルトの名無しさん :2006/04/09(日) 18:34:27
文字列の中のHTMLタグを消したいのですが、どうすればいいのでしょうか?
963 :
デフォルトの名無しさん :2006/04/09(日) 18:37:32
NetBeansで怪現象に悩まされています。 1. 某Java入門書に載っているサンプル・プログラム(String.format()の使用例です)を手入力して実行しようとしたところ、String.format()が見つからないというコンパイル・エラーが出ました。 2. で、その本の出版社からプロジェクトごとファイルをDLし、同じサンプル・プログラムを実行したところ、こちらは問題なく実行できました。 3. 手入力したソースをDLしたプロジェクトにコピーして実行したところ、実行できました。つまり手入力したソースには問題無いようです。 4. 逆にDLしたプロジェクトから手入力プロジェクトの方に問題のソースをコピーしてきて実行しようとすると、1.と同様なコンパイル・エラーが出てしまいます。 5. プロジェクトの設定に問題があるのかと思い、プロパティを見比べましたが、違いは見当たりません。 ちなみに環境はMac OSX 10.4、java -versionは1.5.0_05、NetBeans IDE5.0です。
965 :
963 :2006/04/09(日) 19:47:36
自己解決しました。 プロジェクトを新たに作り直したら、コンパイル&実行できました。 実は手入力プロジェクトの方はデフォールトがJDK1.4だった時に作成したものなのですが、途中でデフォールトをJDK1.5に変更したあと、そのまま使い続けていました。 プロジェクトのライブラリーがJDK1.5に変わったので油断していましたが、実はプロパティなどに表示されない「残りかす」があったようです。
966 :
デフォルトの名無しさん :2006/04/09(日) 20:23:22
今会社で、10時から打ち合わせがあるんだけど、ちょっと困ってますよ。 Javaって外部のライブラリを使ってアプリケーション開発したとき、 その開発したアプリケーションを動かすための環境には、外部のライブラリは必要になるの?? それとも、コンパイル時にアプリケーション内に統合されて、実行環境に必要なのはJREだけで済む??
967 :
デフォルトの名無しさん :2006/04/09(日) 20:43:44
試せよ
すっげーバカな質問で悪いんですが、returnで配列を返す時はどういうふうにすればいいんですか?
969 :
958 :2006/04/09(日) 21:04:18
970 :
デフォルトの名無しさん :2006/04/09(日) 21:06:21
>>968 int[] hoge(void) {
int[] hoge = new int[100];
return hoge;
}
>>961 ワロタ
新スレはそのタイトルで立てるか?
>>966 クラスパスにその外部のライブラリがあれば、
同じディレクトリだろうと、作成したJREの中だろうと、
どこでも大丈夫。
クラスパスは
>>1 参照。
973 :
972 :2006/04/09(日) 21:28:59
追記。 起動直後に読み込まないクラスで外部ライブラリを使ってるなら、 必ず使っているクラスを読み込む所まで確認すること。
974 :
968 :2006/04/09(日) 21:32:25
>>970 ありがとうございます!今までメソッドの前に[]をつけてませんでした。
975 :
デフォルトの名無しさん :2006/04/09(日) 22:03:34
「プログラミング言語Java」の邦訳の新版はいつ出るんですか?
>>973 ありがとう
打ち合わせいってきました
配布するアプリケーションに、外部Jarを取り込んで配布ってのもありだよね
やってみる
邦訳は例外なく糞
この時間に打ち合わせってやっぱりプログラマってキツいんだな
え、マで966の質問はやばいだろ。営業と思いたい。
きっとPMだよ
981 :
デフォルトの名無しさん :2006/04/10(月) 02:17:34
星野 燈夜 (とうや)
980じゃないけど、超えたから立ててくるよ(-ω-)ノ 少々お待ちアレ。
>>950-951 はいもちろん他のアプリケーションから開いてはいません。
通常どおりwindowsからではゴミ箱に移して消すことができ、警告やその他何か変なことは起きません。
dosプロンプトでも消せることは確認してます。
File.delete()を使ってだけ、どうしても消せないです
(exists()はtrue delete()の帰り値がfalse)
ディレクトリ中の全てのファイルを順に消していくような操作を行っていて、、
プログラム中で特別扱いされるようなファイルはありません。
984 :
982 :2006/04/10(月) 09:13:16
>>983 消せないファイルに共通性があるのか、
例えば特定の種類、日付、属性、名前。
消せないファイルと少し違うファイルを作って確かめてみる、等など。
>>983 Windows だとどうなのか知らないが、UNIX系OSだとファイルに
オーナーとパーミッションがある。実行されているプログラム
のユーザIDとオーナーが違うと消せない。パーミッションも
書き込みが許可されていないと消せない。というような感じ
で Windows にもこういうのあるよね? 関係ない?
988 :
デフォルトの名無しさん :2006/04/10(月) 14:02:11
>>986 関係ない事は無いと思うけどWindowsでファイルが消せない事は偶にある
一番判りやすいのはエクスプローラでそのファイル上にマウスカーソルがある時かな
Javaの基礎本読んで、数値処理をするプログラムを 書いたり、して楽しんでます。 で、そもそもがiアプリを作りたくてはじめたので そろそろ実際にiアプリを作ってみたいです。 サンプルコードというか、先輩がたの書いたコードを見てみたいのですが どこかにありませんか?
>>990 学生なので食うのが精一杯です
立ち読みしてきます><
>>992 大学の図書館にはなかったです。
仙台の図書館にもありますかね?
994 :
デフォルトの名無しさん :2006/04/10(月) 18:41:46
知るかカス
まあ、ネタなんだけどね
996 :
デフォルトの名無しさん :2006/04/10(月) 20:06:55
そうだねプロテインだね
997 :
989 :2006/04/10(月) 20:14:40
オレはマジです。自分で行ってきますよ。 使えねぇな。
マジならiアプリのスレ行くはずだからネタ
スリーナイン
1000GET!!!
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。