【初心者】Java質問・相談スレッド84【大歓迎】
スレ縦乙であります
公式だかどこだかにjavaを動かすVMwareはどんなマシンにものるとか書いてあった気がするが 本当にどんなマシンにでものるの? PS3にものるか知りたいんだがのりそう?
そこまでしてクロスプラットフォーム化しなくても
5 :
初心者なのに・・・。 :2006/04/11(火) 11:25:19
現在URLより、読み込んだデータ(1ページで200件分)を表示するプログラムを
作成していましたが、急遽2ページで200件(1ページで100件ずつ)のデータを表示
するように修正を行っています。しかしうまく動いてくれず、現在は、最初に
読み込んでいる1ページ目のデータ(100件分ずつ計200件)を2回表示してしまいます。
どうのように修正すれば1ページ目と2ページ目を読み込み正常に表示できるか
どなたか教えて頂けませんでしょうか?
URLからデータを読み込むメソッドは以下です。
// HTTP通信開始
final HttpGetConnection httpGet = new HttpGetConnection();
final int status = httpGet.getMethod("
http:// " + xxxxxx + "/xxxxxx.ssi");
SyncExec(new Runnable() {
public void run() {
ArrayList array = httpGet.getData();
resultSet(status, array);
//ウィジェット操作を可能にする
widgetControl(AFTER_CONNECT);
}
});
}
※このメソッドは、基本的にはGUIの操作に専念するクラスに生成しています。
ArrayListにデータを溜め込み、1ページ目と2ページ目のデータをまとめて
表示しようとしています。
処理を共通化出来るところは、共通化して、あまり手間を掛けたくはないのですが・・・・。
resultSet() の中で対処しろよハゲ
7 :
デフォルトの名無しさん :2006/04/11(火) 12:59:35
ナイスボディで美人でやさしいお姉さんが たまにエッチな事しつつ優しく教えてくれたら 僕にもJAVAが出来そうな気がする。
美人でナイスバディのおネエさん?
スレ立て乙です。小心者にはしなかったのね。
JDKを使ってプログラミングしているのですが コンパイルはできるのですが Exception in thread "main" java.lang.NoClassDefFoundError: Sample1 と表示されて実行できません。 そうすればプログラムを実行できるようになるのでしょうか?
>>10 public static mian()
とかなってんじゃねぇの?w
プログラムは間違ってないので また、たいがいのアプレットは、javaコマンドでは起動しません。javaコマンドで起動しないアプレットを java コマンドで実行したときにも、NoSuchMethodErrorが表示されます。 これっぽいです
クラスパス(classpath) の設定をしたら実行できました。 俺の馬鹿馬鹿まんこ!
日本語を勉強した方が良いな
>>14 てことは、環境変数の CLASSPATH が設定されている状態なのでは?
何かそのPCにインストールしなかった? (たとえばカボスをインストール
すると設定されちゃってそうなるというのを聞いたことがある)。
>>16 LSI C−86試食版もインスコしてますが
関係無いかな
こりゃまた懐かしいものをお持ちで
javaの勉強がてらブラウザ作ってみようと思ってます。 そこでcookieなんですが、これってどう実装すればいいんでしょうか? 参考になるwebページ等あれば教えて下さい。
今日javaを触り始めたのですが、説明サイトを見ると どうも小難しい単語ばかりが並んでおり、なかなか頭の固い自分には理解しづらいのです。 出来れば、プログラムを実際に作りながら勉強したいのですが、 オススメのサイトもしくは、こんな感じのプログラムを作ってみるといい。 みたいなのがあると教えていただけませんか。
興味のあるプログラムを作れ いじょ
>>21 1.Hello, world
2.例外やスッドレ
3.基本的なコンポーネントを習得
4.BREWエミュ作成
>>22 それは自分も考えましたが、いきなり突っ込んでいっても挫折しそうなので
簡単な、基礎でもつまってるようなプログラムでもあればと思いまして。
>>23 2.例外やスッドレ
とは何にことでしょうか・・・。
>>24 例外:Exceptionとその下位クラス、try〜catch〜とかthrow/throwsとか
スッドレ:ThreadのextendsやRunnableのimplements、そしてrun()
>>21 プログラミング自体未経験なのか、
それともいろんな言語を知っていてjavaが初めてなだけなのか、
ソフトって言うとディスクやプラスチックのカートリッジやHuカードが思い浮かぶのか、
それともハードとソフトの関係や開発手順などの至極基本的な知識があるのか…
>>25 わかりました。ありがとうございます。
>>26 プログラミンは今回が初めてになります。
ソフトって言われると、どうしてもツール系などを思い浮かべます。
開発手順などの基本的なことはまだわかりません。
出来れば、それを簡単なプログラムを作ると一緒に
勉強できればと思いまして。
>>27 じゃぁ
>>23 の言うとおり
開発環境整えて Hello, world からどうぞ。
↑の意味は分かるよね。
あとは少しずつ発展させてみれば大丈夫。
> 簡単な、基礎でもつまってるようなプログラムでもあればと思いまして。
「つまってる」より一歩一歩進んだほうがいいんじゃない?
まぁある意味 Hello, world にも基礎は詰まってると思うけど。
>>28 Hello,World はとりあえず成功しました。
クラスパスも通したので大丈夫だと思います。
その後〜。っていう意味でしたが、やはり地道な努力しかないようですね。
いろいろな書籍などを参考にして頑張ってみたいと思います。
つまらない相談に乗っていただいてありがとうございました。
30 :
デフォルトの名無しさん :2006/04/12(水) 00:08:18
デバイスをコントロールするアプリケーションをJavaWebStartで配布 しようとしています。デバイスコントロール部が共有ライブラリの形で 用意されていれば、JNIでライブラリを呼ぶjarを作って<nativelib/>で 配布すればよいというのはわかったのですが、独立したコマンドの 形になっているものを配布する方法はあるでしょうか?
31 :
デフォルトの名無しさん :2006/04/12(水) 00:34:50
byte[]からStringを生成しようとして byte[] bytes = ... String str = new String(bytes); 単純にこのようにnew String()使ったら、PMDでStringInstanciateに 引っかかった。これってnew String()使わずに実現する方法あるの?
java超入門買ったんだけど 最初の環境変数設定が出来ませんorz SET PATH=C:\SDK1.3.1\bin;%PATH% これをメモ帳で書きこんで再起動→プロンプトでjavac →コマンド名またはファイル名が違います。 になってしまいます。どこが間違ってるのかわかりません。 どなたか教えて下さいm(‐‐)m
SDKのバージョンが違うのでは?
SDKのバージョンですか。 でも本の付属に付いてたCO−ROMから インストールしたんですけど。。。
>32
まずは
>>1 にあるwikiを嫁
それでもダメなら↓を確認しれ
・JavaSDKをインスコしたフォルダ
本当に「C:\SDK1.3.1\bin」か?
実は「J2SDK1.3.1」とかになってないか?
違ってたらどっちかに統一しる。
・OSは何だ?
PATHの設定方法はWin9x系とWinNT系で違う
メモ帳で autoexec.bat 弄るのはWin9x系で使う方法
自分のOSでのPATHの設定方法がどっちなのかはググれ
>>35 そうそれです。
ほったらかしの本屋さんで良く見ずかったのが悪かったみたいですね:
>>36 じぶんのOSは98です。
本の通り98の設定方法でやってるんですが。
もう一度フォルダー名を確認してみます。
wikiに載っていた
ファイル名を指名して実行で
SET PATH=C:\SDK1.3.1\bin;%PATH%
を入力したらうまくいきました!
>>33 >>36 ありがとうございました。
40 :
デフォルトの名無しさん :2006/04/12(水) 10:03:30
String型のテキストをOracleDBの VARCHAR2(サイズ4000)に格納しようとしています。 この時、Stringに入ってる値が4000以上なら警告を出すようにしたいのですが、 どうやってサイズを測ればいいでしょうか?
>>40 よくわからないんだけど、その VARCHAR2 には何のエンコーディングで文字列を
入れればいいの? String のまま渡して渡された方で勝手に処理するの?
>>40 Oracleの文字コードの設定によるが、byte数が4000以上かどうかチェックする。
VARCHAR2はバイトじゃなくて文字数なのでは
それはNVARCHAR2
45 :
デフォルトの名無しさん :2006/04/12(水) 11:08:57
Stringってスターリングって読むんですか? なんとなくこれ打ち込むたびに頭の中のBGMはスタンドバイミーなんですが。
俺は超ひも理論しか浮かばないけどな。
Stringはストリングじゃないかと スターリングならStirlingだろ 略のstrは個人的にはエスティーアールだが ストラと読んでるのを聞いた事がある
Stringはどう考えてもストリングだろうなあ。 文字の列というか繋がりというか紐というか糸というか連続というか。
50 :
デフォルトの名無しさん :2006/04/12(水) 14:51:58
Linux版のJava文字化けについて、少し教えて欲しいです。 豆腐が出てしまいます。
どういう状況での話をしてるのかが分らないもっと明確に
フォントの設定とか
String s = "SELECT * from EMPLOYEE where name=[?] and tel=[?]"; みたいな書き方をして、この中の[?]に順にデータをセットするAPIがあったような 気がするんだけど、何を使ってどう書くんだっけ?
54 :
53 :2006/04/12(水) 16:33:01
自己レス java.text.MessageFormat使えばなんとかなりそうだ。 吊ってくる
自己解決してるんなら良いか 一応 つ PreparedStatement
>>54 最終的にそのsql投げるんなら、始めから
>>55 のほうでいいんじゃね
57 :
54 :2006/04/12(水) 16:53:06
>>55-56 レスd。
対象文字列が、SQLに限らんのです。。
テンプレートとなる文字列があって、その内部に動的に書き換えたい部分が存在するので。
まずはMessageFormatを試してみます。
XSL、という手もあるでよ。
よっぽど複雑な構造でもない限りXSL持ち出さんでも
font.properties.jaのフォント指定が日本語に対応していないっぽいのですが、修正 しても上手くいきません。 JAVAアプレットとか文字化け。 jdk-1_5_0_06-linux-i586-rpm.bin
>>60 /JRE/lib/fonts/に
fallbackフォルダを作成
/JRE/lib/fonts/fallback
に日本語フォントへのリンクを作成する
ln -s /usr/share/fonts/TRUETYPE/~.ttf
等
62 :
デフォルトの名無しさん :2006/04/12(水) 17:23:20
>>62 こりゃまたすげぇけど、HTML + JavaScript で作り込んだんだろうな。
>>63 レスどうも。
私、JAVAは全然わかりません。
正直、WEBアプリをなめてましたが、
このデモサイトくらいの操作性ならWEBアプリでも問題ないなと思いました。
いや HTML に JavaScript じゃそこまで凝ったの作るのは現実的じゃないでしょ。 せいぜいそのデモにあるように 3〜4 の専用ウィンドウ開くところまで作り込んだら もう誰も手を入れられないコードになってると思う。
TextAreaの任意の一行のみをString型に格納したい場合どうすればいいですか?
幾らで?
PS使うなら[?]は実行時に構文エラーになると思う
74 :
デフォルトの名無しさん :2006/04/13(木) 10:51:12
C言語のsizeof演算子のように HOGEClass hoge = new HOGEClass(); int size = sizeof(hoge); というような事はJavaでできませんか?結果さえ分かればよいので、あったら教えてください。
出来ません。
やる必要があるのだろうか
77 :
デフォルトの名無しさん :2006/04/13(木) 11:23:27
性能評価とかチューニングに使いたいんです。 具体的にはネットワークを使ったプログラムなのでどの程度の大きさのデータを 送ってるのかなぁと知りたいわけですね。
>>77 クラスのインスタンスのメモリ上での大きさと、送られるデータの大きさがどう関係するのだ?
1. プロファイラを使って 1 インスタンスがメモリ上で占有している大きさを調べる 2. インスタンスをシリアライズする
パラメーターマーカー使うなら{}不要 フォーマット使うなら?ではなくインデックス(数値)
81 :
デフォルトの名無しさん :2006/04/13(木) 14:37:02
初心者です。インターフェースに関してなんですが以下のソースで cente.x,p.x,center.y,p.yがどのように値が割り振られたのかがよくわからな いです。Circle c = new Circle(new Point3D(0,0,0),newPoint3D(1,0,0)); のPoint3D(0,0,0)とPoint3D(1,0,0)がCircle(Point3D center, Point3D p)内の centerに対するx,y,zに,次のpもpに対するxyzにと値を振ってるのでしょうか? 出来ればどなたか、説明お願いします。 //以下ソースです interface Shape2D { double getArea();} class Point3D {double x, y, z; Point3D(double x, double y, double z) { this.x = x;this.y = y;this.z = z; }} abstract class Shape { abstract void display(); } class Circle extends Shape implements Shape2D {Point3D center, p; //p=円周上の任意の点 Circle(Point3D center, Point3D p) { this.center = center; this.p = p; } public void display() { System.out.println("Circle");} public double getArea() { double dx = center.x - p.x;double dy = center.y - p.y; double d = dx * dx + dy * dy;double radius = Math.sqrt(d); return Math.PI * radius * radius; }}
82 :
81 :2006/04/13(木) 14:42:42
mainがぬけてました class Shapes_2 { public static void main(String args[]) { Circle c = new Circle (new Point3D(0, 0, 0), new Point3D(1, 0, 0 )); c.display(); System.out.println(c.getArea()); } }
同一VM内で生成可能なスレッドの数ってプラットフォームによって異なると思うけど、なんかその辺の情報ありませんかね?
すみませんが、質問です。
JavaやCなどで書かれたバッチプログラムをいろいろ実行したいのですが、そ
れを呼び出すスクリプト言語として、Antの他に良いものはないでしょうか?
Antはスクリプト言語ではありませんが、豊富なタスクとデータ型が用意され
ていて便利です。またTomcatのように、Jarファイルをlibディレクトリに追加
するだけで利用できるので、CLASSPATHをいちいち指定する手間が省けます。
しかし、Antのビルドファイルは、制御構造はきわめて貧弱であり、また変数
にプロパティ文字列しか使えません。Ant-Contribとscriptタスクを利用する
と少しはマシですが、スクリプト言語としては大変使いづらいと言わざるを得
ませんでした。
http://www.jajakarta.org/ant/ant-1.5/docs/ant-1.5/j/docs/ant2/features.html Antにスクリプト言語としての拡充を求める人は多いようですが、そういう用
途には他の言語がある、と開発者たちは切り捨てています。しかし、Antのよ
うな豊富なタスク、CLASSPATHの設定しやすさを持つ言語があるのでしょうか?
今はJRubyを使っていますが、どうもそういう機能はなさそうです。何か良い
言語をご存知でしたら、お教えいただきたいのです。
JCL
いちいちプログラムのある場所をコマンドプロンプトで打たなくても どこでもjavacできるようになる方法ってあるんですか?
>>86 環境変数 PATH に javadoc.exe のあるディレクトロを設定
>>84 GroovyのAntBuilderが最適解かな
めちゃ重いけど
90 :
デフォルトの名無しさん :2006/04/14(金) 04:08:48
Javaプログラム開発用エディタ MagCup は、どうですか?
自分で感じるのが一番
92 :
84 :2006/04/14(金) 12:16:16
>>92 =84
なんかAntの批判みたいなこと書いて、なぜかJRubyやJython挙げてるけど、要は
>JavaやCなどで書かれたバッチプログラムをいろいろ実行したいのですが、そ
>れを呼び出すスクリプト言語として、Antの他に良いものはないでしょうか?
これを満たせばいいんでしょ?Javaから離れて考えたらいかが?
いくらでもあるから例はあげないけど。
94 :
84 :2006/04/14(金) 13:15:37
>>93 JRubyなどJVM上のスクリプト言語なら、Javaオブジェクトをスクリプト内から
直接利用することができます。JVMと関係のないスクリプト言語だと、main()
を呼び出すことしかできません。その違いは大きいかと考えておりました。
考えてみると、ほとんどの用途ではそれで構わないのかもしれません。実行速
度もより速いですし。
シェルで組め
Bourne 信者が csh 叩きかw log4j 作者がファビョって Logging API 叩きまくってたのを思い出すな。
すいません質問です。 public static void main(String[] args) { File f = new File("./"); String[] hoge = f.list(); for(int i = 0;i < hoge.length;i++){ System.out.println(hoge[i]); } } というソースで、ディレクトリのファイル名を出力させているんですが、 Linux上で動かすと、Windowsで作った日本語のファイル名が化けてしまいます。 できれば、ちゃんと日本語で表示させたいんですが、 なにか回避法はありませんか?
>>98 それはWindowsとLinuxの問題。Javaからはどうしようもあるまい。
Winの文字コードはShift_JISで固定だが、Linuxは標準的にはEUC-JPかUTF-8。
LinuxをShift_JISにしてやれば解決するが、問題もある
ここから先はLinux板で。
http://pc8.2ch.net/linux/
それって単に JVM が LANG の認識ミスってるだけだろ。 最初に System.out.println(System.getProperty("file.encoding")); を挿入して JVM が動いているデフォルトの文字セットを調べろ。それが Linux 環境のと 違っていたら LANG を適切な文字セットに設定してやれ。
>>98 回避する方法は本当はエンコーディングを合わせることなんだけど、合わせなくても無理矢理回避する方法がないわけでもない(あまりおすすめはしないが)。
Shift_JIS か EUC か JIS か分からない byte[] の配列があった場合、 JISAutoDetect で自動判別ができる。但し自動判別なので失敗することもありうる。
例) String s = new String(b, "JISAutoDetect");
エンコードに失敗した String から byte[] に戻すには getBytes() してみればいいかも知れない。しかし全てが可逆な状態とは限らないので戻らないかも知れない。全ての文字が 0 〜 255 のコードになっている場合は getBytes("iso-8859-1") でできるかも知れない。
102 :
デフォルトの名無しさん :2006/04/14(金) 22:17:40
>>102 イベント発生→テキストセット→イベント発生→テキストセット→...
の無限ループになっているとエスパーしてみる
105 :
デフォルトの名無しさん :2006/04/14(金) 23:53:17
桁長エラー時はテキスト変更されるまでは桁チェックしない
>>103 でも、
>>68 の例だと文字数を越えたときにテキストをセットしてイベントが発生して、
もう一度来たときには今度は文字数を越えてないわけだからテキストをセットしてイベントが発生することは無いんじゃない?
無限ループにはなってないな。
>>104 とりあえずエスパーに期待しないで
コードを書いてみたらどうね?
109 :
デフォルトの名無しさん :2006/04/15(土) 11:53:49
拾うイベントが良くないだけだろ
110 :
デフォルトの名無しさん :2006/04/15(土) 13:18:50
これから始めてみようと思うんですが本は一冊買ったほうがいいですか?
ネットで十分。 トイレや電車や布団の中で読みたければどうぞ。
>>39 悪阻レスだけど、指定したら消えた。サンクス
>>110 GUIやりたいなら本買ったほうがいいかもしれない
CUIならいらん
>>77 自分でフィールド数数えろ。
bool,char,short,int,floatが大体4byte
double,longが8バイト
オブジェクト参照が32ビット環境だと4byte,64だと8byte
あとヘッダが8byte(64bit環境だと4byte)。これで大体の概算でるだろ。
それかプロファイラとか。
115 :
114 :2006/04/15(土) 16:49:14
116 :
デフォルトの名無しさん :2006/04/15(土) 19:51:36
クリックすれば自分のIPをコピー出来るものを作ろうと思うのですが 覚えた文法をどう組み合わせていけばいいか分かりません GUIというか一応ウィンドウがあるアプリです。 ウィンドウアプリを作るあたり役に立つサイトなどありませんでしょうか
GUI作るのは最後 まず、自IPアドレスを取得するオブジェクトを作る 次に文字列をクリップボードにコピーするオブジェクトを作る 自IPアドレスを取得するオブジェクトを実行し、結果をクリップボードにコピーするオブジェクトに渡すオブジェクト(コントローラー)を作る GUIを作る ボタンが押されたらコントローラーを実行するようにイベントを実装する あなたはなにができない?
119 :
116 :2006/04/16(日) 00:12:57
>>117 レスありがとうございます、全部出来ないのですけど
一つ一つ探しながら試してみます、プログラムってこういう風に出来ていくんですね
なんかかなりワクワクしてきました
>>107 無限ループじゃなくて呼び出し中のアクションリスナーをさらに呼び出そうとして衝突してんじゃない?
>>119 その手順だと、最後まで進まないと結果が見えなくて不安になるかもね。
全部できないってことは思いっきり初心者ってことだと思うんだけど
単にHelloWorldをウィンドウに表示するところから始めて
次にIPを表示する、クリップボードにコピーする、と進むというのもアリかも。
初心者の俺は、GUI作るのが面白くて、そっち先に作っちゃって、 モチベーションが保てなくて、肝心の処理を作らないでプロジェクトを放置してしまうorz 自分で作ったGUIで遊ぶのが楽しくて楽しくて・・・。 ボタン押しても何の反応もないけど。
そこなんだよね 俺も最初はGUIに凝ってそこで終わってしまう そんなんで、手順を逆にしてみた 先に要となるロジックをくんで、JUNITで動作確認 で最後にGUI まあ、重要なのは一気に作ろうとはせず、機能を分割して コツコツと組み立てることだね
俺は全然逆。根が Unix なので UI はコマンドライン入出力とパイプ、リダイレクトがあれば十分だった。
コマンドプロンプトすらまともに使えない俺がいる
コマンドプロンプトって使い道そんなあるか? 必要にならないから、使えないだけだと思う。 当然漏れも
>>124 俺もそれだな。
機能だけ先に作ってしまう。んでUIは後から考える。
でもGUIはメンドクセでCUIってのが多い
>>126 config.sys と autoexec.bat で空きメモリ作りまくってた年代の漏れだけど、
今は ping 打つ程度しか使わなくなっちまったな。
したいことはほとんどGUIでできるようになっちゃったしね。
でも、基本が分かっていればCUIツール使うときに楽だねぇ。
Lameとかフロントエンドツールなしで使える人とか尊敬。 昔はJavaとかCでHello Worldとかプロンプトでコンパイルしてたなぁ。
GUIでCUIを実行するとウマー
一番最初の段階でGUI作っちゃうとGUIがシステム全体に制約を与えてしまう可能性があるため激しくお奨めできない 例えば、ある検索システムでヒットした項目の情報を自動的にポップアップウインドウで表示するGUIを作ったとする 必ず一つしかヒットしないシステムならいいのだが、複数ヒットするシステムだったり複数ヒットするシステムに 変更したりな場合大変な事になる(場合によっては数千、数万のポップアップウインドウが開いてしまう) GUIなんてのは仕様変更やシステム内部の変更でどうとでも変わってしまうので最後のほうで作ってしまうのが吉 ユーザ暦が長いと、ソフトウェアを設計する時どうしても利用する時の事を考えGUIを先に想像してしまうが、 それはデベロッパーとして修行を積めば直ってくるので気にせずどんどんプログラムを組むべし
プロトタイピングで作るのは当然だと思ったが
133 :
デフォルトの名無しさん :2006/04/16(日) 13:24:11
あの、JDBCをWindows上で使って、MySQLに名前付きパイプでアクセス することってできますでしょうか?
134 :
デフォルトの名無しさん :2006/04/16(日) 13:59:43
appletつくってます。 htmlからクラスファイルを呼ぶ形でappletを起動しているのですが クラスファイルを新しくしても画面上にそれが反映されません。 キャッシュをクリアしても同様です。 クラスに変更した内容をapplet上に反映させるためには なにをしたら良いでしょうか?
ThreadLocalクラスについて質問があります。 これ使うときプロパティをStaticにして使うと書いてあるんですが、 Staticでなくてはならない理由って何でしょう? Staticじゃなくても問題ないような気がするのですが...
GUI なんて、ただの飾りです。 エロイ人にはそれがわからんのです。
138 :
134 :2006/04/16(日) 15:40:00
>137 どこで?
139 :
134 :2006/04/16(日) 15:40:49
>137 あ!でた! ありがとうです
Map<MultiKey, Map<String, Number>> map = newTreeMapMap<MultiKey, TreeMap<String, Number>>(); Map<String, Number> subMap = new TreeMap<String, Number>(); subMap.put("ああ", 1234567); subMap.put("うう", 987456); subMap.put("げほ", 86056); subMap.put("おえ", 3.1415); subMap.put("げはっ", 6.02); subMap.put("がっ", 1.1111555f); MultiKey multiKey = new MuntiKey("鍵1","鍵2"); map.put(multikey, subMap);
Javaを使ってシリアル通信したんですが、 SunのJavaComunicationsAPIのWindows対応がなくなっているようです。 方法でいいものはないでしょうか?
アプレットを作成しているのですが、音を出したい時に、auファイルしか使えないと聞いたんですが本当ですか? auファイルだといい音って、でないような気がするんですけど、wavファイル→auファイル 変換して音が劣化しただけでしょうか・・・・ とにかくauファイルってつかいずらい。なんとかならないでしょうか。 アプレットで音をだすおすすめな、お決まりパターンみたいのがあったら教えてください。よろしくお願いします
Toolkit.getDefaultToolkit().beep()
JavaTM 2 プラットフォームには、オーディオおよび MIDI (Musical Intstrument Digital Interface) データの取り込み、 処理、および再生用の強力な API が含まれています。この API は、このプラットフォームでの高品質なオーディオ ミキシングおよび MIDI 合成を保証する効果的なサウンドエンジンによってサポートされています。 この API の提供されるリファレンス実装では、次の機能がサポートされています。 オーディオファイル形式: AIFF、AU、および WAV
145 :
142 :2006/04/17(月) 01:44:46
>>144 wavファイルで取り込み実行できました。
・・・・いちいちauファイルに変更していた俺って・・・
ありがとうございました。
wikiを読んでいたのですがリンク切れになっており、 カレントディレクトリ「.」を環境変数CLASSPATHに追加する方法がわかりません。 どうか教えてください、お願いします
SET CLASSPATH=.
sh, bash export CLASSPATH=.:$CLASSPATH csh setenv CLASSPATH .:$CLASSPATH
windowsXPなのですが、
>>148 を環境変数の最後にぶちこめばいいんですか?
やってみます
;付きでぶち込んでみましたが失敗のようです。 本当に初心者なのでもう少し教えてください
ぐぐれよ
ググっても分からずwikiにも抜けていて最後に行き着いた場所がここなんです
>>151 じゃあマイコンピュータで右クリックしてプロパティ選択して
そこで出てきたウインドウの何処か忘れたけど環境変数設定
するところがあるから、そこで設定したらいいんじゃないかな。
俺今 Linux 使ってるから確認出来ないけど。
>>150 コントロールパネル→システムのプロパティ→詳細設定→環境変数
そこまでは分かるんです。 システム環境変数内のCLASSPATH欄の値の変更方法がわからないんです。
選択すりゃいいんじゃなかったっけ? まあしかしこれはもう特定のOSの話であって Java の話ではないな。
>>156 (1) システム環境変数またはユーザ変数の、「CLASSPATH」の列 を選択し編集、もしくは新規作成
(2) ダイアログ上部に「CLASSPATH」が記述されていることを確認or入力
(3) ダイアログ下部に「.」を上書き入力もしくは、既存の(正しい)文字列の後ろに
区切り文字としてセミコロン「;」を入力し、その後ろに「.」を入力
(4) OK を押して終了
以上、取説作成の練習
>>159 あ、ありがとうございます!ついに・・・ついに解決しました!
ありがとう!
>>160 そんなに感動できるなんてうらやましい!
初めてシャーペンの芯を交換した小学生ぐらいの感動だな
机の穴が反対側に貫通した時の感動は?
シャー芯を机の穴に突っ込んで折れてとれないくらい不愉快
log4jについての質問もここでいい? もしかしたらOSのスペック的な話かも知れないわけだが・・・ 現象 RollingFileAppdender使ってログを出力してるんだけど、 MaxBackupIndexに999999って定義したらローテートに10分くらいかかってしまう。 これって、リネームとかに時間がかかってるってことなのかなぁ? でも1回目のローテートからこんなに時間かかるものなのか? まさか0〜999999のファイルがあるかどうか順番に確認してリネームしようとしてるのか? だれかエロイ人解説お願いします!!
>>164 うわ想像したらめっちゃ不愉快になったw
168 :
デフォルトの名無しさん :2006/04/18(火) 03:12:30
今時ソフトレンダラの勉強って必要ある?
170 :
デフォルトの名無しさん :2006/04/18(火) 03:23:50
>>168 リンク先のアプレット、皆さんの環境では何fpsでます?
ToonShadingで100って遅いのかな?
JakarataPOIについて質問です。 POIで新しい行を追加するとき、次のように書くと思うのですが HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.createSheet(); HSSFRow row = sheet.createRow(0); この場合だとrowオブジェクトが作られてその後、そこにセルをセットしたりするのだと思うのですね。 そうじゃなくて、あらかじめrowオブジェクトを単独で作っておいて、cellをセットしたりして、ある一定の 条件に当てはまってた場合rowをsheetに挿入する、条件に当てはまってない場合rowオブジェクトを 破棄する。そういうことは可能でしょうか?
172 :
167 :2006/04/19(水) 00:18:06
>>168 じっくりやってみます、ありがとうございますた。
Java言語を書くのに便利なテキストエディタを教えてもらえるとありがたいのですが 今はxyzzy使ってます。これより使い勝手のいいものありますか?
>>173 たぶんIDEは使わないものとして。使い勝手は個人差、好みがあるから、いろいろ試してみて。
emacs(Meadow), jedit辺りが有名なところ。好みによってはvim。あとはシェアだけど秀丸とか。
これら+xyzzyでかなりの人の環境をカバーできてるんじゃないかな。
>>174 NetBeansも入ってはいるんですけど基本からやりたいのでテキストエディタを使っています。
いろいろ使ってみます。ありがとうございます。
テキストエディタで入力することが基本だとは思わないけどなぁ javacでコンパイルするにもIDEでソース書けばいいし
178 :
デフォルトの名無しさん :2006/04/19(水) 01:45:40
今日から始めようと思ったのですが、インストール先はCドライブじゃないと駄目なんですか? Dドライブにしたらjavacと打っても実行できないので…
helloworldに挑戦してます。 パソコンはFMV BIBLOのNE3・45Kで、OSはウィンドウズの98SEです。 path設定はC:\AUTOEXEC.BATファイルにあったSET PATH=C:\FJUTY; という部分にC:\Program File\Java\jdk1.5.0_06\binをくっつけました。 それからメモ帳を開いてpublic class HelloWorld {と書いてHelloWorld.java と保存するのですが、拡張子がtxtになってしまいます。 拡張子をjavaにしようと名前を変更すると開けなくなります。 これはtxtのままでもいいのですか? フォルダオプションの表示タブで「登録されているファイルの拡張子は表示しない」 としていてもtxtになってしまいます。 あとコンパイル?は「窓の手」というソフトを使ってmy documentのファイルフォルダを右クリックして ms-dosプロンプトを開いているのですが、C:\My Documents\My Java Applications>の後ろは javac HelloWorld.javaだけでいいですか?実行しても「コマンドまたはファイル名が違います」と出ます。 どこがどう間違ってるのか分からないのでご教示お願いします。
あなたには無理
すまんがもう Win95/98/Me 系の環境構築は忘れてしまった。 > C:\Program File\Java\jdk1.5.0_06\bin セミコロンが全角。Program File じゃなくて Program Files ・DOS 窓で 「echo %PATH%」 と打ち込んで意図したパスが設定されてるか確認。 PATH 設定しなくても 「C:\Program Files\Java\jdk1.5.0_06\bin\javac HelloWorld.java」 とか 全部入力してやればコンパイルは可能。 ・*.java ファイルをダブルクリックで開くにはエクスプローラのどこかで 「ファイルの関連付け」 とか 何とか言うのがあったはず。関連付けをキーワードにネットで探せ。 ・MS-DOS の知識がないなら Eclipse 入れた方が早い (98マシンじゃ厳しいか)。
> > C:\Program File\Java\jdk1.5.0_06\bin > セミコロンが全角。Program File じゃなくて Program Files コロンだ。
>>181 そこをなんとかひとつ^^;
>>182 レスありがとうございます。
どうもPATHもうまくいってないみたいです。
でもファイルの関連付けは分かりました。
はじめてなので壊れもいいように古いパソコンを使いましたが
MS-DOSの知識もないのでXPでやってみようと思います。
どうもありがとうございました。m(_ _)m
>>184 Cドライブ直下にあるであろうAUTOEXE.batをメモ帳で開いてPATH追加
後再起動でOKだった気がするが
Winの基礎を学ぶ方がさきだな 壊れれるって…
187 :
デフォルトの名無しさん :2006/04/19(水) 11:15:27
ちと質問でつ。 あるクラスAからあるクラスBをインスタンス生成する際、 コンストラクタからConnectionを引数として渡します。 (ConnectionオブジェクトはクラスAで生成。ローカル変数) その後、クラスBの中身ではそのConnectionオブジェクトを 自前のインスタンス変数にコピーして使用しています。 ↓こんな感じ public class B { private Connection conn; public B(Connection connection) { conn_ = connection; } これってスレッドセーフになりますかぇ?
>>187 クラスBで conn 使う場所と、クラスAで conn 使う場所
(ようするに同じインスタンス使いまわす場所を)
全部 synchronized すればスレッドセーフ。
>>187 Aで
Connection conn = hoge.getConection();
B b0 = new B(conn);
B b1 = new B(conn);
B b2 = new B(conn);
ってすると、
>>188 さんのおっしゃるとおりしないとだめっす。
自前のインスタンス変数にコピー… 代入はコピーじゃないよ 変数があるオブジェクトを参照するように設定してるだけ メソッドの引数としてオブジェクトを渡すのも同じ つまり、メソッドを呼び出す側も呼び出される側も同じオブジェクトを参照することになる まず、こういう基礎を学べ
>>189 例をちょっと変更して、
Connection conn = hoge.getConection();
B b0 = new B(conn);
・
・ //なにかしらSQL処理実行中・・・
・
b0.close();
みたいな感じで最終的にコネクションをクローズするとき、
Tさんがこれを実行している最中(・・・の処理中)、また別のUさんが
実行してUさんの方が処理完了してしまった場合、
Tさんに影響はある?
Connection はスレッドセーフじゃないし、synchronized 付けたところで トランザクション分離の意味が無いし、そもそもスレッドセーフって意味 分かってる?
>>191 トランザクション分離レベル
または独立レベル・アイソレーションレベル
でぐぐれー
194 :
191 :2006/04/19(水) 16:39:24
あー、聞きたかったのは 単純にTさんがSQL発行前にUさんが close処理をしていたらTさんの方で connection closeになるのかなー・・・て所で。 あくまでアプリケーション側のお話で。
I さんと II さんが同じコネクションのインスタンスならそうなるし、別々ならならない。
196 :
191 :2006/04/19(水) 17:01:20
>>195 なる。
>>187 の内容でConnectionはローカル変数てなってたから
その場合は、スレッド毎別インスタンスだからならない
ってことね。
ありがたぅ。
データソースを使ってDBにアクセスしようとしているのだけど、 本番環境がTomcatで開発環境が、OC4J(JDeveloper付属)なのですね。 でlookupで指定する名前の書き方が、TomcatとOC4Jとで違うらしくて ↓みたいなコード書いちゃってるんだけども、もっと綺麗な方法はないだろうか… ソースコードを統一したいのです。 DataSource ds; try{ ds = (DataSource)ic.lookup("java:comp/env/jdbc/foo"); }catch(NamingException e){ ds = (DataSource)ic.lookup("jdbc/foo"); }
外部定義しとけ
開発環境を本番にあわせ。
>>198 外部定義って、例えばXMLファイルとか、iniファイルに書くってことですよね?
DAOで作ってるんだけど、コネクション張るたびに外部ファイル読むとかまずいっすよね?
サーブレットなんだけど、こういう場合って、アプリケーションスコープとかに最初にこの情報
を格納して、それを使うようにするんですかね?
そんで、DAOクラスのコンストラクタにその情報渡したりするんですかね?
>>199 JDeveloperに慣れてしまった… JDeveloperからTOMCAT動かせれたら最高なんだけどなぁ
static 宣言するなり ThreadLocal に持たせるなり好きにしろ。
開発環境と実働環境が違ってると、テストとか二度手間になると思うのだが。 JDeveloperって、最新のOracleAS Release3でもTomcat使えないの?
>>200 コネクションを張るたびに設定ファイルを読むのはOK。
なぜなら、実用レベルのアプリケーションではコネクションプーリングを
使うから、コネクションを張るのは事実上初期化時の一回のみだから。
JNDIサービスより取得したDataSourceオブジェクトは、applicationスコープオブジェクトを
使うまでもなく、DataSourceを管理するクラスとか作って、そのクラスのstaticフィールドで
持っておけばいい。その変数がnullだったらJNDIサービスよりlookup、既に取得済みなら
そのまま使う、というように。
TomcatとOC4Jで書き方が違うのではなく、アプリケーションから見たら
同じようになるように設定しろ。そもそもJNDIサービスはそのためにある仕組みなんだから。
>>204 開眼しました。ありがとう!
>>203 私が使ってるのは古いものなので、たぶん無理。最新でもどうなんでしょうね。Tomcat使わせたくないんじゃないの?オラクル
206 :
デフォルトの名無しさん :2006/04/19(水) 18:47:45
java.awt.Checkboxを、クリックされてもチェックの状態を 変えられないようにするにはどうしたらよいでしょうか? チェックボックスをチェック表示用に使用したいので、 setEnabled(false)で灰色になるのは避けたいのです。
画像にしろ ImageIcon + Label
>> 207 ありがとうございます。 そういった方法は、ちょっと思いつきませんでした。 画像でチェックを表示するということですよね。 ちなみに、java.awt.Checkboxの派生クラスでイベントを処理する等して、 クリックを無効化するような方法を考えて幾つか試しているのですが、 そういった事は不可能なのでしょうか? disableEvents(AWTEvent.MOUSE_EVENT_MASK); とか、 public void mouseReleased(MouseEvent e) { e.consume(); } とやってみましたが効果ありませんでした。
>>208 うーん。awtでは、どうなのかなあ? できないような気がするが。
というのは、awtは普通はネイティブな環境の部品を使うからだ。
Java で絵を書いて出している部品とは違う。
>>209 誤解しているかもしれませんが、Javaで触れることのできる範囲を超えているということですね。
おとなしくチェックのイメージを表示するようにします。
ありがとうございました。
Checkboxを継承したクラスで public void setState(boolean state) {} public void setState2(boolean state) { super.setState(state); } これでいけない? 状態を変えたい時はsetState2の方で
>>211 さっそく試してみたところ、教えていただいた方法で実現できました。
なるほど〜。
ありがとうございました。
213 :
デフォルトの名無しさん :2006/04/19(水) 21:25:52
WEBページで公開されているjavaのゲームを保存するにはどうしたらいいですか
ゲームを公開してる人に聞いてください
SMP + マルチスレッド環境でスレッド間の整合性が保障されないのって何の対策もしてない 8 バイト値 (long/double) だけ? 参照型や int は大丈夫?
>>215 マルチスレッド対応してないのならプリミティブも含めてすべてだめ
SMPであるなしにかかわらずだ
SMPになると再現しやすいけど
ふーん、まともに対応しようと思ったらかなり大変だな。 ところでこれって意図的に発生させられた人って居るの?
指定したPNG画像の幅と高さを取得する方法教えてください
1. ImageIcon 作る 2. getIconWidth(), getIconHeight() 使う
>>217 頭大丈夫か?
通常マルチスレッドになったら一定の処理をまとめて保護しなきゃならん
それがいらないのならvolatileでいいが、volatileで済む用件ってまずない
Java以前に排他制御の勉強したほうがよさげ
んなこた知ってるっつーの
いや、実際大変だろ。再現性なく偶発的で (そもそも発生するかもわからず)、 コード上のレビューだけでプロジェクト内の開発物が漏れなくそれに対応したと 保障するのは。 まぁ君はコードを書く以上は心配しなくてもよさそうだから良いけどさ。
あ、対応ってのが 「そういうコードを書く」 とか低次元な解釈させてたらごめんね。 そういう意味じゃないから。
225 :
デフォルトの名無しさん :2006/04/20(木) 02:07:21
jarなどを実行した後に"hs_err_pid4293844035.log"のようなものが できます。これはどうしてできるのですか? 対処方法は?
>>225 Java の仮想マシンが Segmentation Fault などで異常終了したため。
原因は主に実行環境がおかしい事。java.exe、DLL、クラスファイルどうしの矛盾や、
JVM プロセスが変なシグナル拾ったりハードウェア割り込み食らったり、あるいは
サードパーティ製 JNI (JDBC Type2 ドライバなど) の作りがヘボくて高負荷に
耐え切れなかったなんてのも考えられる。
テキストファイルだから中見れ。変なシグナル拾ったときにメインで走ってた処理の
スタックトレースが出てるから (それが直接の原因とは限らないが)。
227 :
225 :2006/04/20(木) 02:24:39
いろいろ考えられるんですね、 ファイルの中身はちんぷんかんぷんです。 サンキュー!
ちんぷんかんぷんって久しぶり
久しぶりに捨て台詞見た>マルチスレッド関連
∧..∧ (´・ω・`) そういうことにしておきたい! cく_>ycく__) (___,,_,,___,,_) ∬ 彡※※※※ミ 旦  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ \ どっ!! / \ ワハハ! / \ / \ ∞ l|||||||||||||| ∩,,∩ ∩,,∩ ∩,,∩ ミ∩ハ∩彡 (, )(,, ) ,,)( )( )
231 :
:2006/04/20(木) 09:09:54
ボタンのアイコン用の画像ファイルとかまとめておきたいんですけどどうすればいいのですか? Eclipseでプロジェクトフォルダ直下にimageフォルダを作ってそのなかに画像ファイルを置いて new ImageIcon("imege/picture.jpg") とかすればEclipseから起動するには問題ないけど 別の所から起動するとカレントフォルダがかわるせいか読み込めなくなります。 どうすればいいのですか?
クラスファイルと一緒に置いておき ClassLoader loader = this.getClass().getClassLoader(); new ImageIcon(loader.getResource("jp/co/your/pkg/picture.jpg"));
233 :
デフォルトの名無しさん :2006/04/20(木) 10:02:41
JPanel上に文字列を回転させて(縦とか斜めで)表示したいのですが どうやったらできますでしょうか?
234 :
231 :2006/04/20(木) 10:41:14
どういたしました Eclipse ならソースと一緒に入れておけばクラスフォルダに勝手にコピーされるので便利
Genericsで2つのinterfaceをimplementsしたクラスを 指定したい場合どうしたらいいですか? <T extends IF1<T>> はうまくいきますが <T extends IF1<T>,IF2<T>> はうまくいきません。(型指定が2つだと判断される) <T extends IF1<T> extends IF<T>> もダメです。(文法エラー) どなたか教えてください。
Geneじゃなくともそんな変数宣言できないだろ? やりたければ新しいインターフェースつくる
238 :
デフォルトの名無しさん :2006/04/20(木) 13:38:39
Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov (
[email protected] ).
dk68ToDJgvY25wwU07Go+Q==
>>238 890156143c182028bcfacf9391204775 jadnt158.zip
241 :
238 :2006/04/20(木) 14:22:15
どうもありがとう! >239, 240 でも、どうやら漏れのはv1.5.8eだったみたいorz あとv1.5.8e2ってのも落ちてた。 v1.5.8fってどっかにないかしら?
242 :
238 :2006/04/20(木) 14:32:07
なんだよsetFocusの使い方わかんねぇよ!! オブジェクト.setFocus()って聞いたからそれ通りやったのにできね ↑ エロい人これ本当にあってるの?
>>243 エロい人よりエスパーに頼んだほうが早いよ。
俺はエロい人でもエスパーでもないので、オブジェクトのクラスは何かとか、どういう状況でどこから
コールしたかとかを知らないと答えられない。
245 :
デフォルトの名無しさん :2006/04/20(木) 17:52:09
246 :
デフォルトの名無しさん :2006/04/20(木) 18:27:33
日付とかの数値データを0から9までの画像ファイルに置き換えて 表示さたいんですけど、どこかに参考になりそうなスクリプトなどは ありませんでしょうか?
>>246 たぶんスレ違い。ここJavaのスレだよ。
248 :
デフォルトの名無しさん :2006/04/20(木) 20:10:01
超初歩的質問なんですが class Hello { public static void main(String args[]) { System.out.println("Hello! Java world!"); } } に間違いはないと思います。 それでコンパイルもできてるはずなんですが、なぜか Exception in thread "main" java.lang.NoClassDefFoundError : Hello と出ます。 保存先のコンパイルしたファイルは普通に開こうとしてもひらけません。 どこに問題があるか参考書見てもわからないんで教えていただけませんか?
javac -cp . Hello
> java -cp . Hello 間違えた java -cp . Hello
なんでjavaってCライクな配列があるんですかね? コレクションライブラリあるのに。 Cプログラマに媚びたんでしょうか? あとデータメンバをprivateにしないとコンパイルエラーにすればいいのに。 ウダウダ
Comparable同士を比較するときに警告が出るのですが、どうしたらいいでしょうか。 void foo(Comparable[] c){ c[0].compareTo(c[1]); } 警告: [unchecked] raw 型 java.lang.Comparable のメンバとしての compareTo(T) への無検査呼び出しです。
253 :
デフォルトの名無しさん :2006/04/20(木) 20:26:13
>250 次は Uhrecoginized option; -cp.Hello Could not create the Java viritual machine. と出ました
255 :
デフォルトの名無しさん :2006/04/20(木) 20:37:13
>>254 .の前後にスペース入れたら今度はまた
Exception in thread "main" java.lang.NoClassDefFoundError : Hello
と出ました;;
dir と打ってちゃんと Hello.class が出るのか?
257 :
デフォルトの名無しさん :2006/04/20(木) 20:47:00
258 :
デフォルトの名無しさん :2006/04/20(木) 20:50:47
最初からやり直したら java Hello では出なかったけど java -cp . Hello では出ました(..)(^^)(^。^)(*^o^)(^O^)ウレシーーー!! でもその違いはなんですか? 参考書には java - cp . クラス名 ていうのは載ってないんですが。
>>258 たぶん環境変数CLASSPATHが設定されてる(されてない)んじゃん?
echo %CLASSPATH%
とかやってみ。
261 :
デフォルトの名無しさん :2006/04/20(木) 21:01:50
以下のようにソースを書いたら ["Cone は abstract でなく、SolidObject 内のabstract メソッド solidobject() をオーバーライドしません。"]とコンパイルエラーが出るのですが、abstractクラスを 拡張したクラス内での、オーバーライドの仕方が悪いのでしょうか、どなたか教えてください。 import static java.lang.Math.*; interface LuminousObject { public void lightoff(boolean b); public void lighton(boolean b); } abstract class SolidObject { abstract double solidobject(); } class Cone extends SolidObject { double solidobject(double x1, double x2){ return (4 * PI * pow( abs(x1 - x2), 3) / 3); } } class Cube extends SolidObject { double solidobject(double x1, double x2, double h){ return (PI * pow( abs(x1 - x2), 2) * h / 3); } } 以下略
>>261 abstract double solidobject();
って引数無しで宣言されてるよ。
263 :
デフォルトの名無しさん :2006/04/20(木) 21:32:19
>>259 >>260 echo %CLASSPATH%
って打ったら
C:\Program Files\QuickTime\QTSystem\QTJava.zip
って出ました
Pathの環境変数を変えたらいいって書いてたけど
CLASSPATHを変えればいいのかな?
変えなかったらまた
Exception in thread "main" java.lang.NoClassDefFoundError : Hello
みたいなエラーが出るんですよね?
多分 QuickTime の仕業だと思った
>>263 変えるというか、CLASSPATHの設定そのものを消してください。
266 :
デフォルトの名無しさん :2006/04/20(木) 21:49:35
CLASSPATH消しました^^ そこは空白で大丈夫? 消してから java Hello って打ったけど、やっぱり Exception in thread "main" java.lang.NoClassDefFoundError : Hello て出ました。 どこに問題があるんですかね? これが気になって次に進めないんです^^;
JAVAでDB2にアクセスして、EXPORT文を実行したいのですが、どのようにやればいいのでしょうか? PreparedStatementを使うとSQLエラーになってしまいます。
>>266 Windows使ってる?だとすると環境変数の設定かなんかを変更しないと
プロンプト終わらせると元に戻るよ。
265氏も言ってるように、空白じゃなくて環境変数CLASSPATH自体を消して下さい。
消すのが嫌なら
CLASSPATH=.
にしといたら?
269 :
268 :2006/04/20(木) 22:19:04
>>268 ごめん、見にくいけど
CLASSPATH=. <-ここピリオドが1つあるからね
連投スマソ。
わかったことは QuickTime死ね。 普通に考えておかしいと思う。
271 :
デフォルトの名無しさん :2006/04/20(木) 23:15:51
>>262 さん
ありがとうございます。
abstractメソッドはabstractクラス内で
宣言した、引数と戻り値をそのままで、内容
をオーバーライド出来るわけですか。
しっつれいしました〜
多分 Java Plugin のアプレットや JWS で QuickTime を使うための強行措置だと思われる。 インストール時に 「アプレットから使用できるようにしますか?」 と聞かれたような気がする。 デフォルトの CLASSPATH でカレント見るのを期待してるのはコマンドプロンプト使う開発者 だけだから、QuickTime の JAR 追加しても普通のユーザには影響ないと考えたのだろう。
質問ですー 匿名クラスの中から、外のクラスのオブジェクト参照はどうやって指定すればいいの? たとえば、 public class Yamada{ ・・・ private MouseListener ml=new MouseAdapter(){ @Override public void mouseClicked(MouseEvent e) { //この中で、Yamadaオブジェクトを参照したい。 //thisだと、匿名のMouseListenerを差す様子。 } }; //外だとthis=Yamadaオブジェクトでいく。 } 匿名の中でも、Yamadaのメンバーは普通に見えるようなので、外メソッドに渡す手はあるんだけど、 直感として、多分私が勉強不足なだけだとおもったので、方法が有れば教えてください。
Yamada.this
275 :
273 :2006/04/20(木) 23:22:29
DB2のエクスポート文はSQLではないよ CLI(?)のコマンド
277 :
267 :2006/04/20(木) 23:28:56
>>276 回答ありがとうございます。
エクスポートをJAVAで実行するにはどのクラスを使えばいいのでしょうか?
278 :
デフォルトの名無しさん :2006/04/20(木) 23:32:59
ホームページのメニューを選んだときの効果音ってありますよね?あれってタグあるんですかね? どなたか教えてください!素材はあります!
279 :
名無しZERO号 :2006/04/20(木) 23:35:50
<script><!-- function MVto(){ window.moveTo(1200,1200) }//--></><a href="" onMouseOver="MVto()"><font size="1" color="FFFFFF" style="text-decoration:none">
>>236 ,237
<T extends IF1<T> & IF2<T>>
281 :
268 :2006/04/21(金) 02:02:49
>>280 Javaの文法がどんどん複雑になってゆく...。
ここまでくると演算子のオーバーロード欲しいよね(w
282 :
デフォルトの名無しさん :2006/04/21(金) 02:06:06
型をなくせばいいんだよね(クラスをなくす訳ではない)
>>282 それはかなり大胆な提案だね(w
ところでPrintStreamってもうDeprecatedじゃないの?
さっき友人のコード見てコンパイルしたら何も注意されなくてびっくりした。
漏れの知ってるJavaは古いからなぁ...。
TextFieldを右詰で表示するメソッドを作ってこいって言われた。。。 Java始めてまだ1週間の俺には_です。誰か助けてくだしあーーーー
JTextField field = new JTextField(); field.setHorizontalAlignment(JTextField.RIGHT);
あーswingを使わないでなんですー!すいません!! awtで?(まだこの表現が正しいかすら分からんです。。。) お願いします!
半角英数字のみだったら楽そうだね
java.awt.FontMetricsクラスのstringWidth()使うとか?
超適当 int width = field.getSize().width; FontMetrics fm = field.getFontMetrics(field.getFont()); while(fm.stringWidth(" " + text) <= width){ text = " " + text; } field.setText(text); TextField.getColumn() なんてのもあるが自動調整されたサイズに対して 正しい値を返すか知らん。
JFrameのsetVisible(true)したあとで動的にタイトル非表示するにはどうしたらいいでしょうか? setUndecorated()はsetVisible()より先にしないとダメみたいです
Javaはじめることになったのですが、研修期間の予定がたたず 当分は独学の予定です。 プログラムの経験はなし、独学者にお勧めな参考書ご存知でしたら 情報おねがいします。
frame.destroy(); frame.setUndecorated(true); frame.setVisible(true);
JFrameにはdestroy()がないようです
destroy() じゃねぇや、dispose()。てか実際出来るか不明。昔作った Look & Feel と Metal テーマ動的切り替え対応のプログラムで frame.setUndecorated(false); frame.getRootPane().setWindowDecorationStyle(JRootPane.NONE); だけは表示前のみでしかやってないところを見ると、試行錯誤して 出来なかったのかも。
>>291 Teach Yourself Java
297 :
デフォルトの名無しさん :2006/04/21(金) 08:57:07
ちょっと教えてください。パソコンを借りてyahooゲームの麻雀 をやってたんですが、自分のパソコンにもjavaをダウンロード していざ対戦?・・・固まってしまうんです。特に各テーブルに入ろうと すると固まるんです。なにか設定があるのでしょうか?
プログラム板に来てする質問ではないよね
class A{ int x; } public class sample extends Applet { public void paint(Graphics g) { A B=new A; } public int C(){ return B.x; } } このコードをどう書き換えたらB.xを関数Cの中で見られますか?
302 :
300 :2006/04/21(金) 15:21:20
せめて索引などで引くキーワードを教えてください。 どのあたりに書いてあるか見当がつかないです。
>>300 テキトーだけどこんな感じか?
っつーか、コード設計がメチャメチャだと思われ。
class A{
int x;
public int getX(){
return x;
}
}
public class sample extends Applet {
public void paint(Graphics g) {
A b=new A();
int result = c(b);
}
public int c(A b){
return b.getX();
}
}
304 :
300 :2006/04/21(金) 15:33:46
なるほど、オブジェクトそのものを引数として渡すんですか。 ありがとうございます。
なんか宿題を人にやってもらってる奴がいるな。自分でやれよ、少年。
306 :
デフォルトの名無しさん :2006/04/21(金) 19:22:21
更新窓を設置したいんですが、、一体どうすればいいんですか? 検索しても見つからなくて。。。。 タグや素材がいるんでしょうか? 誰か教えてください!!!
知るかウスゲ!
>>306 質問に質問で返すのは失礼とはわかっていますが、「更新窓」ってなんのことでしょう?
ここはJavaのスレなので、タグや素材は二次的なものです。
>>306 まず近くの東急ハンズに行って下さ(ry
310 :
デフォルトの名無しさん :2006/04/21(金) 19:27:56
もうしわけないです。、よく ”4月21日 SCHEDULE 更新しました” とかでる窓っぽいのありますよね?あれなんですけど。。。
ますます質問がわからなくなりました('A`)ノ
312 :
デフォルトの名無しさん :2006/04/21(金) 19:29:23
あああれね
313 :
デフォルトの名無しさん :2006/04/21(金) 19:31:37
314 :
デフォルトの名無しさん :2006/04/21(金) 19:45:57 BE:423404249-
ttp://www.smg.co.jp/seminar/java/J_lecture01.html ↑のサイトを参考にJAVAを作ってたのですが
実行してもException in thread "main" java.lang.NoClassDefFoundError: HelloWorld
と出てうまく実行できません
同サイトのトラブルシューティングを確認してもうまくいきませんでした
CLASSPATHはC:\Program Files\Java\jdk1.5.0_05\binでいいのでしょうか?
ダメ。CLASSPATH 設定すんな。 java -cp . HelloWorld
317 :
デフォルトの名無しさん :2006/04/21(金) 20:08:38 BE:282269838-
>>315 速レスありがとうございます
しかしそれで実行してもうまくいきませんでした
我々はエスパーではない
>>317 じゃあ本当に No Class Def なんだろうよ。
321 :
319 :2006/04/21(金) 20:14:41
>>319 >とコンパイラ様が怒ってるという意味
これコンパイラ様じゃなくてVM様が怒ってるの間違いね(´・ω・`)
322 :
デフォルトの名無しさん :2006/04/21(金) 20:27:03 BE:376359348-
今度は エラー:HelloWorld.java を読み込めません となってしまいました 設定は 変数名:Path 変数値:C:\Program Files\Java\jdk1.5.0_06\bin としました
てめーの家庭教師じゃねーんだよカス
>>322 (´・ω・`)つHelloWorld.javaが存在しない
本命 カレントディレクトリ内にHelloWorld.javaが無い
次点 ファイル名のスペルミス
大穴 322の釣り
初心者以前の問題だからここで質問するよりも参考書や教科書を読んだほうが安心確実極速だと思うよ(´・ω・`)
325 :
デフォルトの名無しさん :2006/04/21(金) 21:01:41
>>326 Page Not Found
ざんねん!
>>327 ごめんよ、URLの末尾にlを加えておくれ(´・ω・`)ショボーン
330 :
:2006/04/22(土) 00:16:22
Javaじゃメンバ名にm_indexとか"m_"を変数名の前につけたりしないの? 人それぞれだろけど一般的な習慣としてどうなってるの?
そんな習慣Java以外でもめずらしいだろ
コーディング規約に従え
>>331 そうでもない。ハンガリアン記法といって、CやC++ではよく用いられる。
Javaでは一般的ではないな。オブジェクト指向的ではない。
m_はmicrosoftが好きな表記じゃなかったっけ 個人的には、メンバ変数にはthis.が付くルール
335 :
330 :2006/04/22(土) 01:23:22
どうもありがとう。 Eclipseだとgetやsetを生成してくれるメニューとかあるけどメンバに"m_"とか付けてるとへんになっちゃうから気になりました。 やっぱり付けないんですね。
え?
337 :
由美子 :2006/04/22(土) 01:43:52
初めまして iαppliTool for DoJa-3.5 Ver.2.22でビルドが完了し 起動するとjava,lang.NullPointerExceptionと表示されますがなぜだかわかりますか? ソースを取ってきているので間違いはないと思うのですが・・・泣きそうです よろしくお願いいたします。
339 :
由美子 :2006/04/22(土) 01:51:34
>>338 いや、それはどーかと・・・
釣りじゃないのですよ
お願いしますよー
独自に作ったjarを他で使われないよう利用を制限したいのですが みなさんはどうやってやってますか? チェック方法はIPアドレスを考えてます。 HttpSevletRequestを常にjarの中のクラスを使うときに渡せば getRemoteAddr()でIPは取れますがそれでは煩わしいです。 Runtime#execでipconfigとかifconfigするのも強引すぎるし HttpClientで認証サーバにアクセスするのもどうかって気がするし。 うーん、こまった。
> HttpSevletRequestを常にjarの中のクラスを使うときに渡せば > getRemoteAddr()でIPは取れますがそれでは煩わしいです。 大丈夫、君のような低脳君が設計したライブラリなんて誰も使わないから。
>>341 Javaに関しては低脳で技術が低いのは認めるんですが
ある特定の業務を処理するクラスが入ってるんです。
それだけは価値があると思うのですが。
ITの知識がないとこういうとき厳しいですね…
逆コンパイルしてほぼまんまのソース出せるクラスファイル、リフレクションで private 破り できる Java に厳密な期待しても無駄。普通はライセンスでブロック。 バイナリが変更されない前提なら、公開鍵方式で認証サーバに問い合わせるか、認証用 USBキー (ハードウェア) を使うか、別配布で電子署名した認証データを渡すか、そもそも Web アプリや Web サービスにして外部に JAR を持ち出さないか。
344 :
デフォルトの名無しさん :2006/04/22(土) 06:04:15
345 :
デフォルトの名無しさん :2006/04/22(土) 06:58:04
アナアがダウンロードしたものは何でしょうか 1。Javadoc 2。J2SE
346 :
デフォルトの名無しさん :2006/04/22(土) 08:01:50
64ビットOSやCPU使う奴は馬鹿が多いなぁ
347 :
325 :2006/04/22(土) 13:05:53
MSですらもう使ってないしな
>>345 どちらでもないに一票。
Javadoc → ドキュメント生成ツール
J2SE → そんなソフトウェアは存在しないからそもそもインストール不能
>>350 リアルなら一瞬のうちに友達いなくなるもんなw
2ch見るしかすることなくなるのも納得
>>344 ダウンロードしたのはドキュメントだから実行ファイルはありません。
この手順に従ってダウンロードしてください。
1,このアドレスを開く。
http://java.sun.com/j2se/1.5.0/ja/download.html 2,画面の真ん中にある「JDK のダウンロード」という部分をクリックする->画面が変わる。
3,( )Accept License Agreement という部分をクリックする。->画面が変わる
4,一番下にある「Windows AMD64 executable 」という部分をクリックする。
5,ダウンロードが始まる。
以上。
355 :
デフォルトの名無しさん :2006/04/22(土) 15:19:36
4月にIT企業に就職した新入社員です。(文系大学出身) Javaを覚える際に先輩から「分厚い文法の本(4000円くらい)の本がお勧め」 とアドバイスを頂きました。詳しい書籍名等を聞き忘れてしまったのですが、 該当するようなな書籍名(もしくはお勧めの本)があったら教えて頂けますか?
357 :
:2006/04/22(土) 15:37:36
分厚いというと「Core Java」か「創るJava」かどちらかかな? どちらも文法の本じゃないけど。
358 :
355 :2006/04/22(土) 15:38:58
>>356 やはりそれが一番ですかね・・。どうもありがとうございました。
IT企業(笑
360 :
355 :2006/04/22(土) 15:42:28
あ、357さんもありがとうございます。本屋で色々見てみます。
361 :
325 :2006/04/22(土) 16:48:21
親クラスで宣言したprivate変数を そのクラスを継承した子クラスで privateでオーバーライドすることは出来ますか?
やってみろ。 でも、あまりにもカワイソスだから教えてやるよ。 むり
>>362 試してみれば判る
privateはオーバーライドできない
protectedならできる
publicなら勿論出来る
ちなみにfinalも既に宣言してたらできない
>>362 オーバーライドは出来ないが書いてもエラーじゃない
さらに親クラスにpublicなsetter、getterがある場合は(以下略
366 :
354 :2006/04/22(土) 22:50:32
>>361 ヒントだけ私が 354で紹介したアドレスの一番したにある
その他のダウンロード について調べてみて。
SecretKeySpecクラスを逆コンパイルしてソース改変して再コンパイル 言って見ただけさ
368 :
デフォルトの名無しさん :2006/04/23(日) 00:30:34
はじめまして。質問です。 今ビルドしたのですがエラーでエミュでの確認ができません、どーしたらいいのかわかりません エラーコードはjava.lang.RuntimeExceptionと java.lang.NullPointerExceptionです 環境の設定不足でしょうか?よろしくお願いします
369 :
デフォルトの名無しさん :2006/04/23(日) 00:36:18
何をビルドしたの Javaのバージョンは?
370 :
デフォルトの名無しさん :2006/04/23(日) 00:40:50
>>369 さんありがとうございます
Java 2 SDK Standard Edition v1.3.0_02 iαppliTool for DoJa-3.5(FOMA)を使ってjava
を作りました。
371 :
デフォルトの名無しさん :2006/04/23(日) 00:45:42
まったく初心者でエクセルすら満足に使いこなせない大学生です なにをどうすればプログラミングが習得できますか 具体的にここ読めばいいよ、などと おしえてもらえると有難いです
372 :
デフォルトの名無しさん :2006/04/23(日) 00:48:16
スレの感じを見ると場違いだったようです ごめんなさい ほかに適切なスレをよく読んでさがします スルーしてもらってかまいません
373 :
デフォルトの名無しさん :2006/04/23(日) 01:15:05
インターフェースを勉強しだしてさらにオブジェクト の意味がまたわかんなくなった。 Aクラスを拡張したBクラスがインターフェースCを実装したとして Cという型の変数が宣言できて、そんでDと言う名の変数を 宣言して、参照するためにBクラスのインスタンスをDに 入れる?もしくは、インターフェースCの変数、メソッドを参照 するために、Bのインスタンスを参照してる? 最終的には、拡張し終わった最後のクラスのオブジェクトしか 全体を見渡すことはできない・・・? オブジェクトって、入れ物?インスタンスは入れる物? メソッドってクラスの中に存在する関数と思ってれば良いの? そんで最後に、たくさん作った拡張されまくったクラス そしてその諸処にまた拡張されまくったインターフェースが実装されて るとして、その中のメソッド群の用法って結局覚えきれないと 思うんだけど、やっぱ用法を文書に起こしておくの? 誰かおせーて
学習し直した方がいいよ。 Javaではなくて日本語(おそらくあなたにとっての国語)をね。 そもそも何語で書かれた資料を読んでいるの? class A {} class B extends A implements C {} A、B、Cはクラスもしくはインターフェースなのはいいとして Dは何?ただの変数名? C object1 = new B(); B D = new B(); A object2 = new B();
>>371 は本当に大学生か?
まさかJavaスレ見て日本の将来が心配になるとは思わなかった…
>>375 まぁデジタルディバイドって言葉もあることだし。
しかしほとんどの大学では情報の授業で
検索の仕方ぐらいは教えてもらえるはずだが。
JAVAの理解がまだまだ中途半端な俺に対して 卑下するつっこみ入れるだけで俺の疑問に何も 返答する気無いならスルーしなよ それとDはインターフェースCの型の変数で インターフェースCを実装したclassBのインターフェースメソッド とインターフェース変数を参照するための変数 C D = new B();
大学生にコンプレックス持ってる連中でいっぱいだなw
2chで大学といえば最低でもマーチです
エラい低く出たな。
まず、
>>373 を優しい日本語で書いてください。
私、20年間日本語を使って参りましたが、
>>373 のような難解な文章は初めてです。
>>377 返答したいが、何を質問したいのか理解できない。
>やっぱ用法を文書に起こしておくの?
そうです。
これでいい?
386 :
デフォルトの名無しさん :2006/04/23(日) 04:48:57
まれに香ばしいな。
387 :
デフォルトの名無しさん :2006/04/23(日) 10:46:13
パソコンのソフトってタイトルバーがダサイんですけど 作るとき消せるの?
消せるが何か?
389 :
デフォルトの名無しさん :2006/04/23(日) 10:54:00
だってJaneDoeStyleとか何もかも全部のソフトでタイトルバーついてるじゃん なんで?
>>389 なぜほとんどの便所にトイレットペーパーが付いているのかを考えれば分かる。
>>368 ,370
> はじめまして。質問です。
> 今カレー作ったのですが文句言って家族が満足しません、どーしたらいいのかわかりません
> 文句のセリフは「味が薄すぎる」と「ギャグの世界だけだと思っていたが、これがウンコ味のカレーか」です
> 下ごしらえの調味料不足でしょうか?よろしくお願いします
> 電磁調理器 ティファールの鍋を使ってjavaカレー
> を作りました。
で原因が分かるか?
393 :
368 :2006/04/23(日) 14:35:09
>>384 さんありがとうございます
助かりました。
フリーで使える統計計算用のライブラリありませんか? 中央値とか分散を計算してくれるような奴
>>395 とりあえず、Jakarta commons の Math
397 :
デフォルトの名無しさん :2006/04/23(日) 21:50:49
課題:以下のJAVAプログラムお頼みます。 ● Comparable による順序付けに従って,配列の中 から最大の要素の位置を見つけるクラス Chooser を書きなさい.必要なメソッドは次のとおり. ●下記のMainクラスと一緒にコンパイル して,正しく動くことを確認しなさい. class Chooser { public static int maxpos(Comparable[] x) { // 配列x の中で最大の要素の位置(最大の要素が複数 // あった場合は最初の位置)を返す } } 課題 ● Mainクラスの内容 class Main { public static void main(String args[]) { Integer[] x = {12,34,21,56,32,7}; String[] y = {"this","is","an","aardvark","in","the","zoo"}; int xm = Chooser.maxpos(x); System.out.println("xの最大値は"+x[xm]+",位置は"+xm); int ym = Chooser.maxpos(y); System.out.println("yの最大値は"+y[ym]+",位置は"+ym); } }
宿題スレいけ
宿題スレには既に書いてあるね、ここで質問する前に
この時期の宿題ってことは、第1回の課題だろ。 最初から2chに丸投げで、この先、大丈夫なのか。
最初でも最後でも丸投げ自体おかしいとしか
>>400 っていうかリアルでヒント貰った方が早かろうにね
丸投げって釣りなのかな?って思った時期が俺にもありました
404 :
デフォルトの名無しさん :2006/04/24(月) 00:01:30
Unix系で動作するJavaコンソールアプリにて、 ファイルコピーをバイナリ(バイト)読み込み/書き込み を行うことで実装しようと考えています。 このときコピー元ファイルの、OSのファイル属性を引き継ぎたいと 考えていますが、JavaAPIの範囲でこれを実装することはやはり無理 なんでしょうかね?
属性操作はOS依存するので無理
>>404 java.io.File には setLastModified() と setReadOnly() というのはあるが、
それ以外の属性は設定できないと思う。
Windows (OS/2) Bitmap を読み込んで Image にするライブラリとかありますか?
>>407 (´・ω・`)つJava Advanced Imaging(JAI)
>>407 それむかーし誰かが作ってるの見たことがあるので Google で探してみたらどうだ?
必ずどこかにあると思うんだが。
ていうか ImageIO とか使えないのか?
>>408 それちょっと調べてみます。ImageIO からシームレスに使えると嬉しいんですが。
>>409 いくつか見つかりましたがサポートしていないビット幅とかあったり。
標準 ImageIO (Win/Linux) で使える ImageReader を表示してみると
JPEG, GIF, PNG だけのようですね。
411 :
407 :2006/04/24(月) 16:46:11
1.0_01 をインストールしようとしたが、CLASSPATH/JDK/JRE どのインストーラー使っても バージョンチェックに引っかかってインストールできねぇ orz デスクトップでダブルクリック → NG コマンドプロンプトで JDK 1.4.2_09 の JAVA_HOME に移動して実行 → NG コマンドプロンプトで JDK 1.4.2_09 の JAVA_HOME/bin に移動して実行 → NG 全部 「JDK 1.4 or higher must be installed!」 と出て中止になってしまう。 1.1 はまだアルファっぽいから無印 1.0 を試してみるか…
413 :
デフォルトの名無しさん :2006/04/24(月) 18:38:43
JPanelのサイズに応じてJScrollPaneを出したり消したりしたいのですが (とりあえず今はテストで非表示→表示) サイズ変更してもスクロールバーが出ません。 何か足りないところはあるでしょうか? //JScrollPaneの初期化 private JScrollPane getJScrlpn_main() { if (jScrlpn_main == null) { jScrlpn_main = new JScrollPane(jPnl_main); jScrlpn_main.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); jScrlpn_main.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); jScrlpn_main.setSize(720,400); jScrlpn_main.setPreferredSize(new java.awt.Dimension(720,400)); jScrlpn_main.setEnabled(true); jScrlpn_main.setLocation(150,45); jScrlpn_main.setVisible(true); jScrlpn_main.getViewport().setViewSize(new Dimension(720,400)); } return jScrlpn_main; } //JPanelのサイズ変更 jPnl_main.setSize(1000, 1000);←元は700,400 jPnl_main.revalidate(); jScrlpn_main.getViewport().setExtentSize(new Dimension(1000, 1000)); よろしくお願いします。
414 :
407 :2006/04/24(月) 20:18:31
1.0 はただの ZIP ファイルでした。JAR と DLL をぞれぞれ jre/lib/ext と jre/bin に ぶちこんだら速攻終わりました。コード無修正で BMP, WBMP, TIFF 等が扱えるようになってます。 1.0_01 もただの自己解凍型 ZIP だと思うので、中のファイルが取り出せれば同じ作業で 終わるかと思われます。
1からJAVAでグラディウスのような横スクロールシューティングを作りたいのですが、 ifやfor等基本的な部分しか分からない状態から、半年程度をかけて勉強しながら作りたいと思っています。 お勧めのゲームプログラムに関する書籍やHP等ありましたら、教えてください。
失礼します 現在JDBCを使ってSQLPlusのようなものを プロンプト、JSP、Swingのどれかで作るプロジェクトを専門でやっています。 現在そのDBへの接続部分を考えていて 以下の様に作ってはみたのですがどうにも無駄なメソッドがある、もしくは設計がおかしい気がします・・・ 宜しければアイデアを分けていただけないでしょうか?
417 :
416 :2006/04/24(月) 21:33:09
package JDBC; import java.sql.*; public abstract class DBAccess { private Connection _conn;//ConectionInstance private Statement _stmt;//StateMentInstance private DatabaseMetaData _dmd;//DatabaseMetaDataInstance private String _dbName;//データベース名ipとかね。 private String _hostAddress;//hostAddress private String _user;//まぁ、ユーザ private String _pass;//パスワード //////////////////////Constructer//////////////////// public DBAccess(String dbName, String hostAddress, String user, String pass) { _dbName = dbName; _hostAddress = hostAddress; _user = user; _pass = pass; } ////////////////////////Getter////////////////////// public String getDBName(){ return _dbName; } public String getHostAddress(){ return _hostAddress; } public String getUser(){ return _user; } public String getPass(){ return _pass; } public Connection getConnection(){ return _conn; } public Statement getStatement(){ return _stmt; } public DatabaseMetaData getDatabaseMetadata(){ return _dmd; }
418 :
416 :2006/04/24(月) 21:33:40
////////////////////////Setter////////////////////// public void setDBName(String dbName){ _dbName = dbName; } public void setHostAddress(String hostAddress){ _hostAddress = hostAddress; } public void setPass(String pass){ _pass = pass; } public void setConnection(Connection conn){ _conn = conn; } public void setStatement(Statement stmt){ _stmt = stmt; } public void setDatabaseMetaData(DatabaseMetaData dmd){ _dmd = dmd; } ////////////////////AbstractMethod////////////////// public abstract void connect(); public abstract void disconnect(); }
419 :
416 :2006/04/24(月) 21:34:12
class OracleAccess extends DBAccess { private final static String CLASSNAME = "oracle.jdbc.driver.OracleDriver"; //////////////////////Constructer//////////////////// public OracleAccess(String dbName, String hostAddress, String user, String pass) { super(dbName, hostAddress, user, pass); } public void connect(){ try{ // TODO 接続の確立(Connection, DataBaseMetaDataの生成) Class.forName(CLASSNAME); //Connectionを生成 setConnection(DriverManager.getConnection(getHostAddress(), getUser(), getPass())); //Statementを生成 setStatement(getConnection().createStatement()); //DataBaseMetaDataを生成 setDatabaseMetaData(getConnection().getMetaData()); //確認用Print文 System.out.println(getDBName() + ":つないだよ"); }catch(ClassNotFoundException e){ // TODO ClassNotFound例外の catch ブロック e.printStackTrace(); }catch(SQLException e){ // TODO SQL例外の catch ブロック e.printStackTrace(); }catch(Exception e){ // TODO 基本例外の catch ブロック e.printStackTrace(); } }
420 :
416 :2006/04/24(月) 21:34:48
public void disconnect(){ try { getConnection().close(); } catch (SQLException e) { // TODO SQL例外 catch ブロック e.printStackTrace(); } } } class Main { public static void main(String args[]){ OracleAccess oa = new OracleAccess("IP","jdbc:oracle:thin:@localhost:1521:IP", "gogo", "nono"); oa.connect(); oa.disconnect(); } }
自作のThreadを他のマシンで実行することは可能でしょうか? サーバー側でnewした後に、そのThreadをクライアントに引渡し、 クライアントのCPUを利用して、プログラムを実行したいです。
// TODO まで読んだ
>>421 Thread は Serializable ではないので無理です。
Runnable を implements したインスタンスをクライアント側で受け取って、それを Thread で
実行するというのなら可能でしょう。クライアント側にそのクラスがインストールされていなくても
ClassLoader を使用して動的にロードすれば何とかなります。
424 :
416 :2006/04/24(月) 21:42:36
っと、ユーザとパス消してなかったorz あとStatementのclose忘れてますね・・・ しかし質問するにはプログラムが長すぎでしたかねorz
>>415 (´・ω・`)つJAVAの参考書 描画関係の参考書
ゲーム関係の書籍は、プログラミングや描画関係の基本的な事は習得している事を
前提としているからそこをまず勉強したほうがいいよ
ゲームのアルゴリズムや、ゲーム関連の数学・物理でページ取られて描画を解説する
スペースが無いから・・・(´・ω・`)
426 :
407 :2006/04/24(月) 22:47:13
さらに続報。Linux には 1.0_01 でインストールできました。こちらはバージョンチェック
しないようなのでカレントを JAVA_HOME に移動してやるだけで OK でした。
ところが、Bitmap ファイルを読み込ませる前に Content-Type と比較してサポートして
いる形式かを判定している部分があるのだが、どうも image/bmp だけ意図したように
動いてくれない。getReaderMIMEType() と比較しても一致するものが無いと言われる。
でもその文字列配列を画面に表示してみるとちゃんと image/bmp と出力される。
getImageReadersByMIMEType("image/bmp") も有効な要素を一つも返さない。
あれこれ試行錯誤の末、何か変なところに空白が入ってるようだと気付き BugParade を
漁ったらこんなことになってました orz
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6202545 1.0_01 のバグでした。1.1βで fix されてるとの事。1.0 で出ないことは確認してます。
>>414 ImageIOってBMP対応だったろ
>>415 ゲーム製作板にJavaでゲーム作成とかそんなスレがある
書籍ならいろいろとでてるがJavaのゲーム関係で比較的ましなのは
15歳からどうのこうのとかいうやつだけ
>>421 分散処理したいのならRMI
いまはRMICとかスタブやスケルトンはいらんかららくちん
鯖がわでコード上でスタブを明示的にいれるだけ
429 :
デフォルトの名無しさん :2006/04/25(火) 06:14:06
JTableでセルの値を変更したいのですがどうやったらいいのでしょうか?
> ImageIOってBMP対応だったろ BMP 対応は 1.5 から
431 :
デフォルトの名無しさん :2006/04/25(火) 06:18:22
ちなみにsetValueAtを使ってみたのですが、どうにもなんねっす。 なんか思った動作しないっす。 自分が指定した内容と全然別の内容を挿入してくれるっす。
| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| | エスパー募集厨! | | | |__________| ∧∧ || ( ゚д゚)|| / づΦ
433 :
デフォルトの名無しさん :2006/04/25(火) 06:31:09
あ、 はじめにこれ→isCellEditableでチェックしなきゃ駄目なのかなぁ・・・
434 :
デフォルトの名無しさん :2006/04/25(火) 09:09:58
413どなたかお願いいたします・・・
>>430 もう登場して1.5年も前のものになにをいってるんだ?
なんだそりゃ。1.5 から Java 始めたボクチャンかよw
10進数から2進数に変換するプログラムを作ってみせてくれ
System.out.println(Integer.toString(Integer.parseInt(dec), 2));
>>437 5.0の書式についていけないお子様かよ
(´,_ゝ`)プッ 図星かよ
(´,_ゝ`)プッとか
ImageIOがBMPよめるようになったのしらんやついまだにいたのかよ。 5.0がでたときみんなさわいでいただろ。 そもそもImageIO自体後付だしPNGだって最初は読めなかったぞ。 だが職場でもAPIマニュアルみてList<E>とかMap<K,V>とかが いまだに読めないお馬鹿なやつは確かにいる。
>>444 >だが職場でもAPIマニュアルみてList<E>とかMap<K,V>とかが
>いまだに読めないお馬鹿なやつは確かにいる。
うはwww俺のことだwwwwww
ところで左シフトした後右を0で埋めるには
num = num << 1;
num = num | 0x1;
ってやるしかない?
miss 1 で埋めるには
5.0 の文法くらいでそんなに自慢げになれる会社勤めの方がうらやましい
>>445 一番左を 1 で埋める: num = (num << n) | 0x01;
シフトした分だけ 1 で埋める: num = (num << n) | ((1 << n) - 1)
>>447 できないよりできるほうがいい
それだけのことだろう
とっくに終わったネタ蒸し返して「俺は知ってる」とか言い始める奴って馬鹿じゃね?
そのネタに食いついてる奴も同じく
452 :
デフォルトの名無しさん :2006/04/25(火) 15:39:22
ウィルコムのZERO3でiアプリ開発できる?デバックとかコンパイルとか出来る? モバイル環境で開発したいんですが良い方法ないですかね? やっぱOSはXPとかじゃないとコンパイルとか出来ないんですか?
>>448 ((1 << n) - 1) の部分めちゃめちゃ参考になりました。
2進数の繰り下がりを使うとこんなことができるんですね
リフレクションあたりを使って、 クラスのインスタンス名を取得することって可能ですか? 例えば、 Map productMap = new HashMap(); などと書いた際に、この"productMap"という インスタンス名を、String化して取得するには、 どう実装したらいいでしょう?
>>454 そりゃ"インスタンス名"じゃなくて"変数名"では?
productMap.getClass().getName()
457 :
454 :2006/04/25(火) 16:30:37
>>455 そうでした。。。変数名自体を取得したい、という意味でした。
>>456 それはクラス名を取得、というものですよね。。。
無
超初心者質問でごめんなさい。 プリミティブなデータってレジスタ変数みたいなもんですか?
そこまでプロミティブじゃないです。
String aa = r.readLine(); int num = Integer.parseInt(aa); は、入力された値を整数に変換になりますが String aa = r.readLine(); char num = XXXXXXXXXXXXX このように入力された値を文字に変換も可能となりますか? その場合XXXXXXに記述するルールを教えてください。
char num = (aa.length()==0? '\0': aa.charAt(0));
Tomcat しか使ったことないんだけど、WebSphere や WebLogic って Ant って標準で バンドルされてますか? メジャーなコンテナが Ant 積んでるなら、sh で書く気でいた スクリプトを Ant にしても良いかなと思いついたもので。
最近ム板に来る様になって、このスレ見てたら v5 の新機能全然チェックしてない事に気付いた 何か俺が「この機能あったらJava使うのに」って 思ってた所が殆ど追加されてるやんけ…(゜Д゜)
大変更だったから対応して無いミドルウェアや JNI 使ってるライブラリがまだ多い。 IBM 関連はほぼ全滅状態だし。5.0 で出来るようになったという話は別として、 使えの一言で FA 出してる奴は莫迦としか言いようがない。
467 :
初心者 :2006/04/26(水) 16:28:42
Graphics g; g.drawLine(10,10,100,100); というような場合についてですが,drawLineは抽象メソッド なはずなのに実際は線が引けているのはなぜなのでしょうか?
g.getClass().getName() を表示してみろ。 g の実体は Graphics を継承した隠しクラスだ。
>>467 抽象メソッドを持つ抽象クラスは、普通、コンストラクトできませんよね?
でも、gが参照しているインスタンスはどこかでコンストラクトされたはずです
つまり、gは抽象クラスGraphicsを継承した具象クラスのインスタンスなのです
その具象クラスがどこかで定義されており、
と言う事は、そこで実際のメソッド内容が定義されており、
そのメソッドが実際には呼ばれて線が引かれる、と言う訳です
470 :
初心者 :2006/04/26(水) 16:50:58
なるほど.SunGraphics2Dクラスでした. なぜこうなるのかという謎は残りますが, ありがとございました.
471 :
初心者 :2006/04/26(水) 17:12:10
ココはソフト説明所じゃないぞ
474 :
デフォルトの名無しさん :2006/04/26(水) 22:12:34
すみません、ちょっとお伺いしたいんですけど ブラウザに埋め込まれたJAVAから文字列を取得したいんですけど 何かいい方法ありませんか? よろしくお願いします。
まず、↓の意味不明物体を詳しく説明すると良いと思うよ 「ブラウザに埋め込まれたJAVA」
>>474 LiveConnect で検索
今は死語だけどなんか見つかるはず
477 :
デフォルトの名無しさん :2006/04/26(水) 22:45:16
あぁごめんなさい、意味不明でしたね。アプレットです。 ストリーミングで刻々と文字列が変わるのですが それをパケットスニファ以外で取得したいのです。
最近java初心者というより PC初心者や 人間初心者が 増えてきたと思う
>>477 むしろ、プログラムに含まれる文字列をどうやってパケットスニファで取得するのか気になる
わざわざ「以外で」と言うからにはパケットスニファで取得できるなんらかの根拠があるわけだよな?
ヒント: > ストリーミングで
>>479 昔 tcpdump を Runtime.exec から呼ぶプログラムを作った。
tcpdump バージョンが変わると動かなくなる厄介なものをw
今は反省している。
ちなみみに
>>477 がなにをやりたいのか
さっぱり誰もわかっていない。
484 :
デフォルトの名無しさん :2006/04/27(木) 00:41:18
>>413 一通りのソースを書いて。
検証側がコピペで済むように。
あと、
思っているところと違うところに
問題がある可能性があるから
一通りをまず。
>>483 サーチストリームなのかな?
だとしたらHttpで検索された文字列を記録しておいて
それをアプレットが読みにくるだけだと思うけど・・・
SUN/JDKの一般向けライセンスはJIULのようなのですが、 IBM/JDKのライセンスはどういったものになっているのでしょうか。
xml と xsl から html を作る方法を教えてください。
>>488 お!すばやい回答。まさにこれです。ありがとうございます。
490 :
デフォルトの名無しさん :2006/04/27(木) 03:05:20
リアル厨房です。 delphiっていう言語をやっていたのですが、これはコンポーネントの設置やイベントの設定などが 楽にできました。 んで最近になってJavaをやりはじめてアプレットつくってるんですがボタンの設置や リスナの登録など手書きでやらないといけないのでしょうか? (cnt.add(JLabel lb, BoderLayout.NORTH)みたいに) delphiのようなideがあったら教えて欲しいです。。
491 :
デフォルトの名無しさん :2006/04/27(木) 03:25:01
>>490 Jbuilder(delphi と同じ borland) とか NetBean にはついてるし。
しかもどちらも タダで手に入れる事が出来る。
がんばれ
492 :
デフォルトの名無しさん :2006/04/27(木) 03:33:00
>>491 ありがとうございます。
楽に慣れるのは怖いので(w)もうちょい手書きでやってみます。
無料といえばEclipseってのはどうなんでしょう?
wikiみたところGUI設計に関しては特筆すべきことは書いてないみたいなのですが。
493 :
デフォルトの名無しさん :2006/04/27(木) 03:34:12
490のcntとはContainer cntでした。
494 :
デフォルトの名無しさん :2006/04/27(木) 03:40:56
>>492 java やるなら エクリプス が 一番だと俺は確信している
ただ そいつには フォームデザイナ的なものを見たことは無い
プラグインであるかもしれんが ・・・
495 :
デフォルトの名無しさん :2006/04/27(木) 03:49:08
>>494 ありがとうございます。
とりあえずEclipseはDLしてみたのですが機能が多すぎて全然扱えてないっすw
上に出たのも一通り使ってみて合ったの探しますね
ま、当分秀丸で十分かなぁ
496 :
494 :2006/04/27(木) 03:55:11
>>495 心にも無い事言ってくれるじゃないの ところで俺の*を見てくれ こいつをどう思う?
497 :
デフォルトの名無しさん :2006/04/27(木) 03:57:47
>>496 さみしいね キミって人は ・・・ って言うか もう寝なさい
>>494 EclipseだってVEがあるよ
ただ、実用的ではない
NetBeans5のデザイナはVBとかDelphiより配置が楽なのがいい
ただ、完全なコンポーネント志向ってかんじではないので
多少コードが多めになる
癖つかめばVBやDelphiより楽になるとおもうはずだ
eyroiuq[4888]wera こんな感じの文字列から[]の中だけを指定して抜き出すにはどうしたらいいでしょうか? []のなかの文字数が変わっても対応できるような方法を教えてください。
ありがとうございます。やってみます。
503 :
デフォルトの名無しさん :2006/04/27(木) 11:40:13
質問です。 バッチファイルからJavaをキックした際に、二回連続でバッチを 叩いてしまった場合に1本のスレッドをWaitさせたいのですが、 あるメインから別のメインのプロセスをどう参照するかがわかりません。 教えてください。
Lockファイルでも作れば
if( %BATCH_START% != 1 ){ set BATCH_START=1 java net.2ch.pc8.UnkoBatch } set BATCH_START=0 Winわからないから文法むちゃくちゃかもだけど こういうロジック書けばいいんじゃん?
506 :
503 :2006/04/27(木) 12:19:25
>>504 >>505 早速の回答ありがとうございます。
・・・できればプログラム内でやりたいのですが、無理でしょうか?
>>505 バッチの文法はともかく、
親プロセスの環境変数は変わらないので
それでは正しく動かないのでは?
どっか適当なポートを使ってlockにすることはあるけど、あんま行儀は良くないな
Java FileLock で検索しろ
>>507 Winわかんないから適当に書いた。
OSにStaticな環境変数を使うってこと。
iniファイルでもレジストリでもなんでもいいんだけど。
それだと JVM が異常終了したら二度とプログラムが起動しなくなるわけだが。
>>511 ほんとだ。俺すぐバグ出すからw そしたらやっぱりfinallyだよな。
キックしたJavaのBatchクラスでThreadをコントロールすれば自由度高いね。
>>503 スレッドじゃなくてプロセスだろ?
やはりロックファイルが分かり易くていいと思うな。
OSが違ってもロックのファイル名変えるだけで行けそうだし。
まぁ多重起動の検知と防止はロックファイルが定番だな。
1.4 あたりからレジストリっぽいのが使えるが、あれはドウカネ
>>515 え? レジストリっぽいの? 何それ? Property とかじゃなくて?
>>516 References クラス参照。
Win だとレジストリに保管されるし、Unix だとホームディレクトリの下のどこだかに入る。
雛型はこんな感じでいいのではないだろうか。 public class MainClass { public MainClass() { // ... } public static void main(String[] args) { try { new FileOutputStream(args[0]).getChannel().lock(); new MainClass(); } catch (Exception e) { e.printStackTrace(); } } }
>>517 もしや References じゃなくて Preferences?
r-、 ⊂こー; > `t, i!~i rt´ /`" | | \"ヽ (=t.__,,r⌒t_.. ヒ.: ' / : ̄: :`; `ー-t :: :: ::ノ ト──r' __| .:| l ̄ ̄ .:::| | lニニty .:::::| < 素で間違えた orz }.-t;;;;;;;;;))___ノ_つ
swingで ボタンを押す→テキストエリアに文字列をフラッシュ →数秒待つ→テキストエリアに文字列をフラッシュ という動作を行いたいのですが、 textarea.setText("最初の文字列"); textarea.setText(textarea.getText() + "次の文字列"); とするとまとめて出力されてしまいます。 どうすればよいですか。
synchronizedキーワードや、サーブレットではjavax.servlet.SingleThreadModelインターフェイス、
J2SE 1.4以降ではjava.nio.FileLockなどの専用のクラスも用意されていますが、
これらによって提供されるロックはあくまでアドバイザリロックと呼ばれる「紳士協定」的な
ロックであるにすぎません。アドバイザリロックにおいては、あくまでプロセス自身が
ロックを行ないますので、他プロセスによる処理についてはロックは無効です。
http://www.atmarkit.co.jp/fjava/javatips/024jspservlet015.html ↑なんか synchronized と New I/O のファイルロックを同列に扱ってプロセス間で
ロックが利かないような書き方してるけど、これおかしいよね。
>>521 final ta = textarea;
ta.setText("最初の文字列");
Thread t = new Thread(){
public void run(){
try{ sleep(2000); } catch(InterruptedException ex){/* */}
t.append("次の文字列");
}
};
t.start();
525 :
デフォルトの名無しさん :2006/04/27(木) 22:11:58
基本情報のH17の問題です。 Counter は,単語を数える処理のインタフェースである。 import java.util.StringTokenizer; public class WordTable { private (A) counter; public WordTable( (A)counter) { this.counter = counter; } でAにはCounter が入りますが、よくわかりません。counterとは何を意味しているのですか?
private Counter counter; → インスタンス変数 public WordTable(Counter counter){ → ローカル変数 this.counter = counter; → インスタンス変数にローカル変数を代入
527 :
521 :2006/04/27(木) 22:32:07
なんだ、お前それでよく試験受ける気に…
>>527 一応動いているように感じるだろうが、駄目な例だぞ
いつ動かなくなってもなかないこと
Swingのスレッドはひとつ
そしてそこで処理させる
javax.swing.Timerをしらべてみるといい
Swing はそうだったな、失礼
Threadでもいいけどその場合は javax.swing.SwingUtilities:invokeAndWaitでな
532 :
デフォルトの名無しさん :2006/04/28(金) 06:44:08
JavaでWord文書を作成するツールはPOI以外にありますか? 有償、無償じゃ問いません。 POIはエクセルの操作には優れてますが、Wordはまだまだ使いづらくて・・・。
厳密でない HTML から DOM を生成する方法ってありますか? 要約作るために <TITLE> と最初の <P> の中だけ抜き取りたいんですが、 正規表現こねくり回すか、自前パーサ組むしかないんでしょうか?
>>533 CyberNekoで何とかならんかね。
Cookie 使えない端末用に Tomcat 4 で URL Rewrite をしたいんですが URL にセッション ID くっつけてくれるようなメソッドってありましたっけ?
あるあるw
538 :
デフォルトの名無しさん :2006/04/28(金) 16:42:05
あるなら教えろ!
>>533 俺もちょうどCybernekoとか使ってたけど
簡単なものだからそんなの必要なかった。
while( bool ){
if( line.trim().toLowerCase().equals( "<title" ){
//処理
}
}
とかでOK。複雑なのだったらやっぱりDOMかなあ。
540 :
デフォルトの名無しさん :2006/04/28(金) 17:14:10
質問です。 マップ(Map)のリスト(ArrayList)のソートをしたいです。 DBの1レコードのデータが一つのMAPになっていて、MAPの中のある項目でリストの中身をソートします。 Collectionsクラスの使用ではできないと思います。 どうやるのでしょうか?
Comparator を実装し Collections.sort()
542 :
539 :2006/04/28(金) 17:19:48
うわー俺はあほか。equals( "<title" )じゃなくてindexOf( "<title" )>-1ね。
543 :
540 :2006/04/28(金) 17:29:00
PDFファイルの中身(テキスト)を解析したいのですが、 「java pdf 解析」などでぐぐっても技術情報が見当たらないので質問させてください。 そもそも市販のライブラリを使わずにPDFファイルを解析することは可能なのでしょうか? PDFの生成なんかはiTextなどあるみたいなのですが・
アドビが仕様を公開してる 無料で手に入れることができる
Tiger(jdk1.5)をクライアントアプリではなくて、 サーバサイドなどの常に動かし続ける環境で すでに動かしていますか?
547 :
デフォルトの名無しさん :2006/04/28(金) 21:23:59
動かしていますが何か?
>>544 amazonで書籍が入手可能
正直変態フォーマットだと思ったほうがいい
無理せずiTextとかつかったほうが早いと思う
ライセンス上駄目というのなら自作しかないが
549 :
デフォルトの名無しさん :2006/04/28(金) 22:02:31
テキストの抽出を解析と表現する人初めて パス掛かったPDF読みたいとか言いだすのかな?
namazu が PDF から前文検索できてた記憶があるから、あれ解析すりゃできるかも。 Java と関係ないけど。てか何かライブラリ使ってるのか知らんけど。
>>547 なんか不安なんだけど、
大丈夫だよね?
不安なら使わなきゃいいじゃん。1.4.2でいいだろ。
言語機能はだいぶ変わってるけど仮想マシンや JIT コンパイラの実装って何か大革新あったっけ?
ジェネリクスやTypeSafeEnumなど安全性や開発効率の大幅向上 GCのパフォーマンスアップ JITのスピードもアップ StringBuilderやコンカレント、アトミックAPIなど速度に直結する実装はかなり多い 一応XPathが標準で実装されたとかIPV6完全対応とかRMIがすごい楽とか 鯖分野で設定が容易になる利点として環境変数がまた使えるようになったのがおおきいかも フットプリントは大きくなってるけど、思ったよりと鯖でも効果あるのも多いよ
String#replaceAll(String, String)で後者のString(置換文字)を 前者のString(正規表現)の先方参照された値($1)を引数にしたメソッドの返り値にしたいです。 str.replaceAll(regex, method("$1")); だとmethodの引数が純粋に"$1"という文字列になってしまいますが、 解決方法か代替方法はどのようなものがありますか。
>>555 replaceAll()でソレは無理。どうやってもmethod()の方がreplaceAll()
より先に呼ばれるから。
java.util.regex を使ってマッチさせて$1に相当するものを抽出して
method()を読んで自分でちかん。
正規表現を引数として受け取って、 その正規表現に合致するランダムな文字列を取得したいのですが、 何かうまい方法はないでしょうか?
デジャブ?
ない 自分で正規表現パーサーでも組むくらいの気合がなければ。
>>557 簡単なやり方を示します
public String getExample(String regex){
while(true){
if(Pattern.matches(regex, getRandomString()))return s;
}
}
ここでgetRandomString()はランダムな文字数のランダムな文字列を返すメソッドとします
561 :
デフォルトの名無しさん :2006/04/29(土) 15:12:33
このスレに書きこむのは初めてです、よろしくお願いします。 jdk-1_5_0_06-windows-i586-p.exeをインストールし終わり、 javac を実行しようとすると'javac' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 と出てしまいます。 よくある質問にあったので目を通し、色々してみたのですが依然実行できません。 パスは%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;c:\borland\bcc55\bin;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\Java\jdk1.5.0_06\bin; クラスパスはC:\Program Files\Java\jre1.5.0\lib\ext\QTJava;.; としています。 間違っている所、原因となっている所が分かる方がいましたら、教えてください。 よろしくお願いします。
\QTSystem\;C:\Program Files\Java\jdk1.5.0_06\bin; ^
SSL通信について教えてください。 以下のソースを実行すると無事認証OKとなるhtmlを受信するのですが、 その後、受信htmlを元に、検索サービスを実行するPOSTデータを送信すると、ログインしてません。と返ってきます。 ログイン後の受信htmlを解析すると、どうもhidden項目のSessionIDが認証用となっているようで(それ以外のキーとなるパラメータのやり取りが見当たりません) 再度送信データにSessionIDを渡しているのですが、ダメみたいです。 そもそも見当違いのことをやっているのでしょうか? 長文ですいませんが、わかる方いましたらお願いします。 すいません、本文が長いといわれたので、ソースは次の投稿に含めます。
↑の質問のソースになります。(改行が多いと言われたので一部省略) String s=""; //ワーク用 String sHTML=""; //受信HTMLを格納 String sSessionID=""; //受信HTMLに含まれるhidden項目SessionIDを格納 //ログインします。 URL url = new URL(ConnectionURL); HttpsURLConnection conection = (HttpsURLConnection)url.openConnection(); conection.setRequestMethod("POST"); conection.setDoOutput( true ); OutputStreamWriter out = new OutputStreamWriter( conection.getOutputStream() ); // POSTパラメータのセット out.write("user=" + sUser); out.write("password=" + sPass); out.flush(); out.close(); //受信データのhidden項目(SessionID)を取得します。 BufferedReader reader = new BufferedReader(new InputStreamReader(conection.getInputStream())); while ((s = reader.readLine()) != null) sHTML = sHTML + s; Pattern ptn = Pattern.compile("name='SessionID' value='([^']*)"); Matcher mc = ptn.matcher(sHtml); if (mc.find()) sSessionID = mc.group(1); //送信データにSessionIDを含めて再度Request(一部省略 out2.write("search=" + sSearch); out2.write("SessionID=" + sSessionID); //ログイン後に検索するサービスを実行するが、戻ってきたhtmlはログインしてませんとなります BufferedReader reader2 = new BufferedReader(new InputStreamReader(conection.getInputStream())); while ((s = reader2.readLine()) != null) System.out.println(s);
565 :
561 :2006/04/29(土) 15:26:42
>>562 さん
ありがとうございます。
;を半角に直してみたのですが未だできません。
>>561 >>562 に補足してあげると、
\; とある場合は、セミコロンとして認識されない。
(認識されないようにする場合の書き方)
QTSystem\
を
QTSystem
に書き換えれ。
567 :
561 :2006/04/29(土) 15:38:57
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;c:\borland\bcc55\bin;C:\Program Files\QuickTime\QTSystem;C:\Program Files\Java\jdk1.5.0_06\bin; のように書き換えましたが、実行できませんでした、間違っている点があれば 教えてください;
>>565 C:\Program Files\Java\jdk1.5.0_06\bin; を
Pathの末尾ではなく先頭に持ってきたらどうなる?
>>567 NetBeansをいれてみてはどうかな?
パスの設定とかはOS依存部分でそこはJavaの勉強以前の話
とにかくJavaでの開発ということならIDE(統合開発環境)を使ったほうがいい
そして別立てでゆっくりOS勉強したほうがいいようなきがする
GUI 上で環境変数を変えてもコマンドプロンプトを立ち上げなおさないと反映 されないわけだが、ちゃんとやってるか? コマンドプロンプト上で直接変更したければ下のをコピペで貼り付けろ set "PATH=C:\Program Files\Java\jdk1.5.0_06\bin;%PATH%"
571 :
561 :2006/04/29(土) 15:46:48
>>568 さん
やってみましたが実行できませんした。
>>569 さん
時間があればゆっくり理解しながら勉強していきたいのですが、
月曜提出の課題があり、その為に自分のPCでプログラムできるように
ならないといけないの少し急いでいます。
コマンドラインでのコンパイル含めて課題ってわけか ならなおさら地道に勉強しなさいとしか
573 :
561 :2006/04/29(土) 15:51:00
みなさん、ありがとうございます;
>>570 さんのをやってみたらできるようになりました。
初心者の私にとても親切に教えてくださってありがとうございました。
おかげで課題ができそうです、本当に助かりました。
FileOutputStream とそこから getChannel() した FileChannel 扱った場合、 クローズは FileOutputStream だけでおk?
>>560 レスありがとうございます。
ただ処理が重そう…
実際に試して見ます。
>>559 やっぱまじめにやるとパーサーからつくらなきゃダメですよね…
>>573 パス指定の途中に空白が入る場合
〜;"C:\Program Files\〜";〜
って感じで""で囲んだ方が良いよ
既存のパーサーが構文木を作るタイプならそれを拡張すれば良いかもね 各ノードは自分に課せられた制約の中でランダム文字列を出力する .を表すノードクラスがあるのなら、任意のランダム文字を印字して… ってね
自分だけじゃなく前後や上位の制約も意識しなきゃいけないわけだが。
一度javaをアンインストールしようと思い、プログラムファイルの中のJAVA というフォルダを消しました。 それが原因かはわからないのですが、いくつかのサイトでこのページは表示できません。 というネットに繋がってないときによくでてくるページがでてくるようになりました。 これはJAVAを消してしまったことと関係があるのでしょうか?
ない てかアンインストールはコントロールパネルからせれ
>>579 ソフトウェアをアンインストールするときに、アンインストールプログラムがあるときはそれを。
コントロールパネルのプログラムの追加と削除に項目がある時はそこから行ったほうが良い。
Windowsには、この名前のプログラムはどこにあるのかとかプログラムの設定とか
起動したときどのプログラムを実行するかとか右クリックしたときに出るコンテキストメニュー
の項目とかフリーセルの得点までありとあらゆる事を記録する”レジストリ”って物が在ってな。
javaを含めインストーラやsetupプログラムでインストールするプログラムのほとんどはレジストリを改変してるんよ。
アンインストールプログラムやプログラムの追加と削除からアンインストールを行うとレジストリを元に
戻してくれるんだが(たまに”ゴミ”が残る場合もあるけどな)それらを行わずファイルを消すと、
もう一回同じぷろぐらむをインストールしようとした際
「レジストリにはこの項目があるからこのプログラムはインストールされてるよ。二重インストールはできないよ」
とインストールが不可能になってしまう事がある。この場合、OSを再インストールするかレジストリをいじくるしかない。
レジストリはいじくるとOS起動すらできなくなってしまう事があるので下手に触れないから最悪OSを(略
まあ、
>>580 の通りJAVAは関係ないけど
アンインストール=フォルダを消せばよいってのは間違いって事で
582 :
デフォルトの名無しさん :2006/04/30(日) 11:50:52
jdk1.5.0_06をインストールした時に、西欧対応のjre1.5.0_06とかいうのも別でインストール画面が出てインストールしたんだけど、 jdk1.5.0_06をインストールしたフォルダ内にもjreがあるんだけど、この二つは違うものなの? Eclipseのインストール済みJREに登録するのはどちらがいいのだろう。。 そもそもJDKインストールしないで、JREだけの方がいいのでしょうか?
コマンドプロンプト開いたときに、 デフォルトでC:\javaをカレントディレクトリにするようにしたいんですが、 どうすればいいでしょうか。 よろしくお願いします。
585 :
582 :2006/04/30(日) 14:09:10
>>584 レスありがとうございます。
>>公開JRE(私もこの呼び方ははじめて知りました)にはあって、非公開JREにはない
>>ファイルがいくつもあるようですね。
>>
>>以前APサーバをリモートデバッグする際に、dt_socket.dll が非公開JREにはなくて
>>アレ?と思ったことがありました。
Eclipseには公開JREを登録しておきます
JAVAで横スクロールシューティングを作りたいと思っています。 JAVAの基本を覚えた程度の状態で、ゲームプログラミングの参考になるHPや本があれば教えてください。
>>587 ありがとうございます
ググって見てもいいHPが見つからなかったので、2chで探すのを失念してました
>>585 トレースするときに、ブレークポイントで対応するソースが
認識されなかったりしないかい?
>>588 ゲーム製作板のほうが細かい情報が多かったと思う
public static void main () てのは、どこからでも呼び出せるクラス固有の戻り値のないメインのメソッドって事で理解していいのでしょうか?
いいお^^
>>592 つまらない質問に答えていただいてありがとうございます。
「おまじない?」の意味がようやくわかったので確認したかったのですよ。
「おまじない」として覚えておくのは正解ですね。参考書開いていきなり、public(略は、どこからでも呼び出せる(略なんて説明されてもさっぱりですもんね。
CドライブからDドライブへの移動は cd /d D:\ディレクトリ名 で移動できるのですが、 今度は逆にDドライブからCドライブへ戻る方法がわかりません。 cd /c C:\ディレクトリ名 で、実行すると以下のようになります ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。 初歩的なことだと思うのですがお願いします
>>594 DドライブからCドライブへ戻るには
cd /d C:\ディレクトリ名
で実行すればいいです。
>cd /c C:\ディレクトリ名 cd /d C:\ディレクトリ名 これってjavaと関係あるの?
>>591 ちなみに
public static void main (String args[])のargs[]は、メインの引数
コマンドプロンプトで、[java 実行ファイル名 xxxx]のxxxxの部分が入る
たとえば、
public class Hello{
public static void main(String args[]){
System.out.println(args[0]);
}
}
とすればxxxxが印字される
[java 実行ファイル名 xxxx yyyy]とすればxxxxはargs[0] yyyyはargs[1]に入る
いや、String args[]が無かったから説明しておこうかと
そういえばおまじないって変だよな これが無いと動かないほど重要なのにおまじないってw
599 :
デフォルトの名無しさん :2006/04/30(日) 18:20:12
"@@"などの文字列を String#getBytes("Shift_JIS") すると ?に変換されてしまいます。 変換ルールにない文字を'?'に変換してしまうのはJavaのデフォルトなのですが、 この変換ルールを自分で設定する方法はないでしょうか。 今の状態↓ あるシステムにメールを送信する機能があります。 メールの本文、件名に機種依存文字が含まれていると文字化けを起こしてしまいます。 メールのヘッダーに"iso-2022-jp"を指定しているのが原因のようで、 "windows-31j"を指定すれば解決するのですが、 メールは普通iso-2022-jpだろ見たいな事を言われていて他の方法を探しているわけです。 @->(1) ->(株) のような置換も考えていますが、全パターンを定義するのは。。。(漢字の機種依存文字なんか何に置き換えればいいのかわからん)
600 :
525 :2006/04/30(日) 18:29:19
基本情報のH17 秋の問題です。 Counter は,単語を数える処理のインタフェースである。 import java.util.StringTokenizer; public class WordTable { private (A) counter; public WordTable( (A)counter) { this.counter = counter; } でAにはCounter が入ります。 private (インターフェース名) 変数名 という変数の宣言は持っているjavaの本を見ても載っていませんでした。使えるのですか? public クラス名 (インターフェース名 変数名) の使われ方も本には載ってません。 あとインスタンス変数とフィールドは同じですか? java初心者なので基本情報は難しいかもしれません。返答よろしくお願いします。
すみません、わからない問題があったので教えてくださると助かります。 public class list3{ public static void main(Stringarg[]){ intshiire_ne1, teika1, kosuu1, goukei; intshiire_ne2=200, teika2, kosuu2=3; shiire_ne1=100; kosuu1=2; teika1=shiire_ne1 + 10; teika2=shiire_ne2 + 15; goukei=teika1*kosuu1 + teika2*kosuu2; System.out.println(goukei); double zeikomi1, zeikomi2; zeikomi1=houhou1(teika1); zeikomi2=houhou1(teika2); System.out.println("1:\t"+zeikomi1); System.out.println("2:\t"+zeikomi2); /* ここから2行は、特殊文字の説明です*/ System.out.println("1234" + "5678901234567890" + "\n"); System.out.println("1234\t123\t12."); /* ここからがメソッドhouhou1 の定義です*/ public static inthouhou1(int teika){ double waribiki, uri_ne, zei; waribiki=0.2; zei=0.05; uri_ne=teika*(1-waribiki); return (int) (uri_ne*(1+zei)); } } これのhouhou1のreturn文の式の値をdouble型に変更したいのですが どのようにしたらいいのでしょうか?
>>600 インターフェイス名は型名だから使える。
教科書ばかり眺めていてもダメだ。 実際に試行錯誤しながら動かして確認してみれ。
>>599 ISO-2022-JP (JIS) には Shift_JIS でいう MS932 みたいな機種依存コードを
包括した亜種がないから無理。「メールは普通JIS」と言ってる奴が「機種依存
でも送信できるように」と言ってるならアホすぎると言わざるをえんな。
どうしてもというなら Windows-31J でエンコードしたのを Base64 + multipart/mixed
で添付ファイルとして送れば? あるいは ISO-2022-JP の HTML で送れ送れば
HHHH; でごまかせるかも。いずれにしても Subject は何ともならんが。
ホストからのシステム移行だとユーザ拡張使ってたりしてよくそういう問題は出るが、
普通置き換えだな。角損 (四角に損) → [損] みたいに。全パターンを定義すれ。
それが仕様だ。
608 :
525 :2006/04/30(日) 20:51:21
基本情報のスレってどこにある?
資格板てか検索能力無い奴が基本情報受けるなよ
610 :
599 :2006/04/30(日) 21:11:09
>>605 サンクス!
とりあえず置換かな。つくっとくと便利そうだしね。
Windows-31Jで本文セットするとちゃんといくみたいだけど
メーラーしだいだからなぁ。
outlookとかthunderbirdでいけるからだいじょうぶなきがするんだけど。。。
こんな感じで全部か。。。
map.put("@", "(1)")
map.put("[", "VIII")
611 :
601 :2006/04/30(日) 21:28:11
質問がスレ違いだったみたいなので、すみませんでした。
まあ、なんだ。 スレ違いには違いないんだが、 スレ違いでなくても似たような反応だろ。
トランザクション内で 問題が起こったとき } catch(SQLException sqle){ sqle.printStackTrace(); if(conn != null){ try{ conn.rollback(); } catch(Exception e){} } }finally クローズ処理 のようにロールバックさせてるのですが、 上のような処理の定石などあれば教えてください。
615 :
599 :2006/04/30(日) 23:28:27
>>613 ほかにもどういう定石があるか、ってこと?
>>599 utf8 を base64 で包んで送る、というのはどうか?
utf8 ならいろんなの送れるよ。
>>613 try-catch ブロックで発生するのが SQLException だけとは限らんだろ。
正確に最後のステップまで完了したことを保障するなら (ちょっとダサいが) フラグでやるしかない。
boolean success = false;
try{
// ...
success = true;
} finally {
try{
if(success){
con.commit();
} else {
con.rollback();
}
} catch(SQLException ex){/* */}
try{ con.close(); } catch(SQLException ex){/* */}
}
commit, rollback, close は失敗しないという前提のコードだが (さすがにそれ以上はリカバリできんし)
気になるならスタックトレースくらい出せば良い。もう何年も考えてるが、これ以外思いつかんな。
>>616 そうです。
これで安全なのかなーと。
>>618 SQLException 以外でしたら Exception で全部拾っちゃって、
......
......
conn.commit;
} catch (Exception e){
ロールバック
}finally{
クローズ
}
てのはどうでしょう?
>>618 con.commit();
を
success = true;
の位置に置かない理由は?
>>619 ちゃんと書くなら、
} catch(Exception e) {
ロールバック;
throw new あぼーん(e);
} finally {
...
くらいまで書かないと、外側で補足しにくそう
>>619 ThreadDeath や OutOfMemoryError が発生するかもよ? フレームワークの最上層
とかでもなければ、むやみに Throwable は catch しない方が良いし。
「例外が発生したら」 じゃなくて 「最後のステップまで実行しなかったら」 に視点を
変えたほうが良い。
>>620 con.commit();
success = true;
} finally {
try{ if(! success) con.rollback(); } catch(SQLException ex){/* */}
適当に書いたらあかんな。COMMIT 失敗したら ROLLBACK の試行に入るべきだから
こんな感じだな。「ローカル変数のフラグで ROLLBACk するかどうか判断する」 って
方に頭取られてたわ。
>>622 よくわからんが、Error 等が発生した場合に、
コミットもロールバックもしない状態になるのを避けるためかな?
ものによると、コネクションを単にクローズすると、コミットと同じになるらしいし。
ただ、ロールバックしようとすると例外を発生するような場合はどうするんだろうw
ところで、Error まで考えるんだったら、
Throwable をキャッチして後処理しラップして上位に投げ、上位でラップを毟って、
OutOfMemoryError なら不必要なオブジェクトを解放して再チャレンジ、
ThreadDeath のような手に負えないものだったらそのまま上に再投げ、
などを考えるのが良いような希ガス
Thread のイクナイメソッドを使えば任意のところで
チェックされる例外を含む任意の例外を発生させることもできるし
ThreadDeath なんて考えたくないなぁ
624 :
623 :2006/05/01(月) 04:16:45
OutOfMemoryError かもしれないのに ラッパーを new するのも微妙な気がしてきたw
こんにちは。質問させてください。 staticでabstractな変数(メソッド)は、なぜ定義できないのでしょうか。 Javaの言語仕様の問題なのでしょうか。それともオブジェクト指向的ではないのでしょうか。 抽象クラスで変数名を定義しておき、具象クラスで実際の名前を静的に定義させたいのです。 たとえば、 class 生物 { abstract static String 目; abstract static String 科; abstract static String 属; } class 人間 extends 生物 { final static String 目 = "サル目"; final static String 目 = "ヒト科"; final static String 目 = "ヒト属"; } もちろんstaticを除けば出来ますが、 人間クラスの属を取得するのにわざわざインスタンスを生成してから取得するのはおかしい。 java.lang.ObjectのgetClassName()というのがありますが、あれもstaticで無いのは変ではないでしょうか。
COMMIT も ROLLBACK もしないでクローズすると COMMIT されるデータベースもあるし (たしか PostgreSQL がそうだったような)、クローズに失敗するデータベースもある (DB2 はそうだ)。 ROLLBACK の失敗は繰り返しても再発する可能性が高いので、アプリケーションレベルでは それ以上救う手立てはない。 後処理のために手に負えない例外を catch すべきじゃないと思うよ。不要な Wrapper クラスが 必要になるのと、下層と上層の取り決め事が増えるのと (結合度が増加)、中間層で意図した 例外を catch 出来なくなるのと (汎用性が低下)。巨大なデータを扱うプログラムだと途中で OutOfMemoryError を catch する事もあるし。本当の意味で catch(Throwable) が必要なのは、 下層で起きた意図しない例外を全て報告する責任のあるフレームワークの最上層だけ。
627 :
625 :2006/05/01(月) 04:25:08
>>625 そもそも abstract なフィールドは static である/ないに関わらず宣言できません。
static はクラスメソッドの宣言に使われますが、
abstract はインスタンスメソッドにしか適用できません。
>>625 abstract はちょっと置いておくとして、その例は (広義の) クラスをクラス化 (Java の) してるから
おかしく感じるに過ぎない。メタクラスのクラスとインスタンスなんだが、簡単に説明するのは
難しいので例を変えれば?
で static abstract についてだが、static な変数やメソッドはインスタンスでなく クラスに所属するものであり、クラスを明記する以上、抽象化の意味がないから。 その例だと String family = 生物.科; と書けたとしても、上記のコードで family に "ヒト科" が代入されるなんて どうやっても決定付かないでしょ。
IBM もいつの間にかそんな偉そうなこと書いてるけど、昔の大和研の開発物なんて 全部一種類の throws XXXException 宣言、getMessage() すりゃ "予期せぬ例外" としか 入ってない、なんて糞慣例が流布してたよ。
XXXException ってのはは「発生した例外をラップして投げなおす」って意味じゃなくて 「発生した例外を握りつぶして新しく投げなおす」って意味ね。NullPointerException も SQLException も IOException も。
634 :
デフォルトの名無しさん :2006/05/01(月) 05:41:14
>>625 Javaにはメタクラスの概念がないからそういうことはできない。
メタクラスとは「クラスのクラス」と呼べるもので、java風に強引に書くのなら
MetaStringClass MyString = MetaStringClass.createInstance();
MyString aString = new MyString();
となる、MetaStringClassのことね。
で、強いて言えば、Javaでは
生物クラスのメタクラスは java.lang.Class
人間クラスのメタクラスは java.lang.Class
ですか。
つまり、メタクラスの視点から見れば、生物と人間には階層関係がない
static変数がクラスの属性と呼べるのなら、生物の目・科・属と言う属性と
人間の目・科・属という属性は変数名こそ同じだけど、全くの別もとということになる。
→static変数やstaticメソッドがオーバーライドできない理由。
static abstractなメソッドがないのも同じこと。
いろいろ突っ込まれそうだけど書いてみた。
635 :
デフォルトの名無しさん :2006/05/01(月) 10:43:32
>>625 「Javaにはクラスメソッドなんかない。あるのはstaticメソッドだ」
という話と基本は同じで、staticの意味を冷静に考えてみればわかる
こと。
つまり、staticなものはオーバーライドできない。オーバーライドでき
ないものに対してabstractなんて使えるわけがない。以上。
636 :
582 :2006/05/01(月) 11:39:59
>>589 すいません・・・初心者なので、トレースがなんのことか・・また、ブレークポイントもやったことないです
>>625 abstractフィールドが使えるような言語仕様にはなってないので、でき
ない。
生物.get目()をabstractメソッドで定義すれば充分代用できるので、シ
ンプルさを優先してabstractフィールドはいらないと判断されたのかも。
638 :
デフォルトの名無しさん :2006/05/01(月) 12:10:52
質問させてください。 JAVAでファイルアクセスの排他制御はどうやるのでしょうか? flockみたいのものがほしいのですが、なければ代替案でもいいので教えてください。
.lock ファイルでも生成してロック掛ければ?
>>638 FileChannel#lock は?
小出し始まりの予感
642 :
638 :2006/05/01(月) 12:30:58
次は実はWindowsです、と
644 :
638 :2006/05/01(月) 12:34:20
実はLinuxです
>>626 諸悪の根源は、そのまま close するとコミットするかもしれない
仕様のせいのような気がしてきた。DB として、そんなんで良いのか?
実装の詳細を隠すために例外をラッピングするのは普通だと思ってたが、
おおよそ様相的な(?)Error に関しては、隠しても意味がない気がしてきた。
>>636 JRE に含まれる Java の標準ライブラリが、
ソースへの対応付けのための情報を含むようにコンパイルされているか、の違い。
ソースへの対応付けがないと、デバッガで1個ずつ実行を進めていったりするときに
標準ライブラリの中に入ると、今、自分がどこを実行しているかが分からないハズ(たぶん)。
他にも違いがあるかもしれないけど、開発時にJDK の方を使う理由には十分と思う。
JDKじゃないと、antでlib/tools.jarがなくて困ったりする。迷うならJDK使うべし。
拡張for文で、 for (Map<String,Integer>map: list) { ... } はOKなのに Map<String,Integer>map; for(map: list) {...} はコンパイルエラーになるんですけど、なんで? List<Map<String, Integer>> list = new ArrayList<Map<String, Integer>>(); Map<String, Integer> map = new HashMap<String, Integer>(); map.put("foo", 123); map.put("bar", 456); list.add(map); for (map: list) { // error: 文ではありません。 // }
構文エラーだから
>>649 どうも。なぜ構文エラーなんでしょうか。
for (Iterator it=list.iterator(); it.hasNext(); ) ....
も
Iterator it;
for (it = list.iterator(); it.hasNext(); ) ...
もどちらもOKなのに、拡張for文だと
Map<String,Integer> map;
for (map: list) ...
がだめだという理由がわからないです。
もしよければわかりやすく教えてください。
>650 JLS 3rdEd. 14.14.2
なぜ構文エラーかと言われればむつかしいね 拡張されたfor文は括弧内で型を指定する必要がある ただそれだけ
653 :
703 :2006/05/01(月) 23:25:12
JavaでGUIって選択どう思います?
別に
655 :
582 :2006/05/01(月) 23:59:51
普通にJavaのGUIは多用する 業務系のツールでJava使ってるアプリも多いしな
657 :
582 :2006/05/02(火) 00:02:46
連続ですいません
>>647 にも書いてありました。
JDKの方にします
658 :
デフォルトの名無しさん :2006/05/02(火) 00:40:47
【徹底討論】Java3Dの可能性について考えるスレに書き込んだんですが 反応が無いのでこちらに移動します。 三次元可視化装置でjava3Dを動かすのが目標です。まずマルチディスプレイで java3dのデモを動かそうと思います。 ですがイキナリcom.sun.j3dパッケージのConfiguredUniverseクラスら 辺だよとかヒントを貰ってもどうして良いか分かりません。私にはドキュメント 見てサクっとプログラム書ける様なスキルはありません。 上記について書かれた文献やサイトを探しています。もしくはお手本となる ソース等何でも良いのでアドバイスください。ヨロシクお願いします。
>ドキュメント見てサクっとプログラム書ける様なスキル をみにつけたらいいんじゃないかなっ
661 :
デフォルトの名無しさん :2006/05/02(火) 01:20:38
>>660 クイックレスポンスありがとうございます。
シンプルユニバースとかは書いてるんですがその下層となると・・・残念です。
また何かあれば教えて下さいね。
質問させてください。 EclipseでClass.forName("packageA.packageB.hogehogeclass"); としてインスタンス生成を行う処理を含むプロジェクトを作っていたのですが、 Jar出力して、そのjarを java -jar hoge.jar として実行したら、 Exception in thread "main" java.lang.NoClassDefFoundError: と出てしまいました。どうもJarで固めた場合は"packageA.packageB.hogehogeclass"の指定が うまく行かなくなってしまうようです。 クラスパス関係の問題だと思うのですが、 Eclipseでの通常の実行だとjava.class.pathプロパティは C:\(省略)\プロジェクトディレクトリ名\bin と出るのに、jarで固めたものを実行した時のjava.class.pathプロパティは 出力したjar名.jar となっています。多分、この違いが原因だと思うのですが、どうすれば良いでしょうか。 マニフェストファイルに、上手い具合にクラスパスを追加できれば良いと思うのですが・・・。 どういうパスを記述すればよいのかも、分かりません。 詳しい方、アドバイスをお願いします。 当方の環境はWinXP SP2、JDKは1.5.0_06、Eclipse3.1.1です。
すいませんが初歩的な質問をさせてください。 クラス名Sample1というファイルをコンパイルしてクラスファイルはできるのですが、 その後にjava Sample1と打つと次のようなエラーメッセージが出てきてしまい正しく動きません。 よろしくお願いします。 Exception in thread "main" java.lang.NoClassDefFoundError: Sample1
Sample1 は public になってるか?
>>662 JAR ファイルの拡張子を ZIP に変更して Windows で閲覧
該当クラスファイルがちゃんと入っているか確認
666 :
663 :2006/05/02(火) 04:14:46
class Sample1 { public static void main(String args[]) { System.out.println("ようこそ"); } } というプログラムです。
>>666 public class Sample1
668 :
663 :2006/05/02(火) 04:32:25
早速のアドバイスありがとうございます。 class Sample1 →public class Sample1 に直してみたのですが結果はかわらず Exception in thread "main" java.lang.NoClassDefFoundError: Sample1 というメッセージが出てしまいます。
>>667 main() が public であればクラスはパッケージプライベートでもかまわないわけだが
>>663 多分 QuickTime の例のやつだと思うけど…
set CLASSPATH=.
↑コマンドプロンプトにこれをコピペで貼り付けて実行してから java コマンド実行してみ
670 :
663 :2006/05/02(火) 04:42:04
>>669 set CLASSPATH=.
これで動きました。
ありがとうございました。
671 :
デフォルトの名無しさん :2006/05/02(火) 06:42:55
プログラムやスレッドの実行を指定した時間分だけ止めたりするようなことができるメソッドを もったクラスには、どのようなものがありますか?
Thread.sleep(5000);
673 :
デフォルトの名無しさん :2006/05/02(火) 07:21:08
APIドキュメント内探せよ 最近の本には探し方載ってないの?
APIは暇があったら使わなくてもあちこち見ておくもんだ。 必要になって探しても、どこにあるか、そもそも存在するかがわからなかったら意味ないしね。
676 :
デフォルトの名無しさん :2006/05/02(火) 11:48:10
677 :
デフォルトの名無しさん :2006/05/02(火) 12:08:02
これから流行るJ2EEフレームワークって何ですか?
またエスパー召喚ですか。しかもテレパスじゃなくてプレコグニション
呼ばれたようなのでエスバーが来ましたよ?
680 :
デフォルトの名無しさん :2006/05/03(水) 00:26:05
>>675 wikiのほうにJavadocのリンクが一応張ってあるけど、
テンプレに追加しても見ない人は見ないんじゃないかなと思う。
現状の ClassPath の質問の多さを考えると。
682 :
デフォルトの名無しさん :2006/05/03(水) 02:26:56
はじめまして しぃペインターを設置しようとCGI可のサーバーを借りました。 早速やってみようとしたんですが、 皆目やり方の見当がつきません。 すいません。なめてました。 ダウンロードしたファイルを解凍するとjarファイルがあったので どうやらこれも解凍するのではないかと解凍して classファイルになったもののこれをどうすればいいのか分かりません。 もしかして解凍するものじゃないんでしょうか。 さっぱりわかりません
684 :
デフォルトの名無しさん :2006/05/03(水) 02:52:45
>683 どの板に行ったらいいでしょうか?
686 :
デフォルトの名無しさん :2006/05/03(水) 02:59:31
>685 ありがとうございます。 そちらのほうで問題を解決したいと思います
jarファイルはclassファイルや画像ファイルなどをZIP形式で圧縮したものだけど、それ自体が実行ファイルでもある ゆえにただ単にjarファイルをダブルクリックすれば起動する
>>687 その理屈で言えば、.txtも実行ファイルですか?
690 :
デフォルトの名無しさん :2006/05/03(水) 15:29:40
フルスクリーン化についてです。 今まで640x480のDisplayModeで1024x768のディスプレイにフルスクリーン表示すると ちゃんと1024x768に拡大表示されていたのですがJDKのアップデートしてから拡大表示 されず画面の真ん中に640x480でしか表示されなくなってしまいました。 どこいじれば直るかご存知ないですか?
691 :
687 :2006/05/03(水) 18:52:02
いや、.txtはnotepad.exeと関連付けられていて・・・ あれ?そうするとjarファイルもVMに関連付けされてるだけ? よくわからんまま偉そうな事言ってすまん 出直してくる
>>690 BugParade さらっと見たけど見つからんかった。
------------- ここまで自作自演-------------
698 :
デフォルトの名無しさん :2006/05/03(水) 21:07:40
画面を作成しているのですが、 「このウインドウを閉じる」等のボタンを押した時、 そのウインドウを消すにはどうしたら良いのですか? System.exit()を書くとプログラム自体が終了してしまいますよね。 現在表示されているウインドウだけ消したいのですが・・・
699 :
デフォルトの名無しさん :2006/05/03(水) 21:10:23
setVisible(false);
dispose();
701 :
698 :2006/05/03(水) 21:15:02
>>690 BIOSとかディスプレイの設定では?
他のフルスクリーンアプリが問題ないのならあれだが
package apl_test; import java.applet.*; import java.awt.*; public class hello extends Applet{ public void paint(Graphics g){ Image myimage; myimage = getImage( getCodeBase(), "test0.gif" ); g.drawImage( myimage, 10, 10, this ); } } 以上のソースをコンパイルし、実行したのですが、"test0.gif"が表示されません。 ソースファイルと画像ファイルは同一フォルダ内に置いてあります。 画像が表示されない理由として、どんなことが考えられるか 教えて頂けると有り難いです。
CODEBASE はソースのディレクトリでもクラスのディレクトリでもない。 System.out.println(getCodeBase()); を表示してそのディレクトリに置け。
Appletとして実行すると、コンソールに出力されず (System.out.println()で表示できない) Appletでないと、getCodeBase()が使えないようなのですが どうしたら良いのでしょうか?
706 :
703 :2006/05/03(水) 22:57:48
失礼。705=703です。
A,コントロールパネル->Java->詳細タブー>Javaコンソール B,throw new Exception(文字列);
708 :
703 :2006/05/03(水) 23:35:58
>>707 Aの方法を試し、無事に解決しました。
解答して頂き、本当にありがとうございました。
>>708 同じことで悩んでたので助かりました。
お礼に僕のまごころを送りますた
710 :
:2006/05/04(木) 08:46:47
Swingのレイアウトマネージャーでコンポーネントを縦に並べていくFlowLayoutみたいのありませんか? GridLaoutを使って一列にすると高さが均等になってしまいます。 Boxレイアウトだとコンポーネントの高さが推奨幅より高くなります。 GridBagLayoutだとコンポーネントの高さは推奨幅なのですが、上と下に空きができてセンタリングされます。上から順につめて一列に並べたいのです。
>>710 GridBagLayout 使え。一番以外を weighty = 0.0 、一番下を weighty = 1.0 にして
最後にダミーの JLabel とか JPanel とかつっこめば意図したとおりになる。
712 :
710 :2006/05/04(木) 09:25:24
>>711 素早い回答ありがとうございます。できました!
713 :
690 :2006/05/04(木) 09:48:29
>>694 >>702 ありがとございます。
ディスプレイの設定でした。デスクトップ上で右クリックでグラフィックプロパティ
全画面拡張のオプションセットで戻りました。
いつこんなの設定したか覚えはないんですが・・・
>>710 そういう場合普通はボーダーレイアウトで上よせにしておいて
その中にBOXをいれる
いまや実用度ではグループレイアウト使うのが一番だと思うが
まずはレイアウトマネージャ勉強するのはわるくはない
組み合わせるものだとおもいねぇ
俺流に通とか自称して恥ずかしくね?
日本語の文章を元データとした。シーザー暗号を作り、それを複合化するプログラムを 作ってみたのですが。どうもうまくいきません。 問題は、元データと複合化したデータと比較したとき">"に変わっている文字がちらほらとあることです。 こういうことを防ぐためにはどうすればいいでしょうか。 ちなみに暗号化の方法はFileInputStreamで元データを指定し、 ファイルをバイト化してByteOutputStreamに取り込み、 それをバイト配列に組み込んで、while文を使ってb1[number] += 1; というように各バイトに1を足すということをしています。 それからFileOutputStreamを使い、write関数を使って暗号データを作りました。 複合化の方法はその逆で、FileInputStreamで暗号データを指定し、 ファイルをバイト化してByteOutputStreamに取り込み、 それをバイト配列に組み込んで各バイトから1を引き、 それからFileOutputStreamを使い、write関数を使って複合データを作る。 こんな感じなんですが、何が間違ってるのでしょうか。
Streamの閉じ忘れを防ぐためにfinallyを使うと本で読みました。
それで下記のように書いてみましたが、tryが三重にネスト
されていてすっきりしません。これはこういうものでしょうか?
それとももっと良い書き方があるのでしょうか?
try {
URL u = new URL("
http://www.yahoo.com/ ");
String outfilename = System.getProperty("user.home")
+ System.getProperty("file.separator") + "out.dat";
InputStream urlinput = u.openStream();
try {
FileOutputStream fileoutput = new FileOutputStream(outfilename);
try {
int b;
while ((b = urlinput.read()) != -1) {
fileoutput.write(b);
}
} finally {
fileoutput.close();
}
} finally {
urlinput.close();
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
>>717 原則としてそういうものだけど、こういう書き方もあるよ。
InputStream urlinput = null;
FileOutputStream fileoutput = null;
try {
urlinput = u.openStream();
fileoutput = new FileOutputStream(outfilename);
int b;
while ((b = urlinput.read()) != -1) {
fileoutput.write(b);
}
} finally {
if(urlinput != null){
urlinput.close();
}
if(fileoutput != null){
fileoutput.close();
}
}
あとStream関係はバッファリングしとくほうが無難
719 :
718 :2006/05/04(木) 14:40:56
commonsになんかあったような気がするな
>>721 その書き方ださくね?次はJAVAスレらしく書いてね
723 :
722 :2006/05/04(木) 18:37:09
質問です! 例えば、for文で得られた数の分だけ「*」という文字をテキストファイルに出力する際、 出力結果が、 * * * という風に、縦に出力されます。これを **** ** ******** という風にiの値が変わるごとに横に出力させたいのですが、どうすればいいのでしょうか?
>>723 おまいなんで722になってんだよ
722は俺様だ
public void ast(int i){ for(int j=0; j<i; j++){ System.out.print("氏ね"); } System.out.println(); }
727 :
デフォルトの名無しさん :2006/05/04(木) 19:20:37
質問です。 mp3の長さ(ミリ秒)の取得ってJAVAでどのようにすればよろしいでしょうか?
まずmp3をなんのライブラリで扱おうとしてるの?
729 :
727 :2006/05/04(木) 19:47:03
>>728 特に「このライブラリ」という制約は無いのですが…
標準ライブラリだけでは無理ですか?
730 :
デフォルトの名無しさん :2006/05/04(木) 20:00:57
つい最近勉強しはじめた初心者です。 ソースファイルを作成し、コンパイルするまでは順調にいくんですが 最後実行しますと Error: could not open `C:\Program Files\Java\jre1.5.0_06\lid\386\jvm.cjg とでるんですが、なにかインストールしないといけないんでしょうか??
lid
すごく初歩的な質問かもしれないんですが JAVAだけでアップローダーみたいなサイト作れたりするんでしょうか? やっぱいrCGIとか勉強しないとだめなんでしょうか?
普通に作れるよ
734 :
732 :2006/05/04(木) 20:59:40
>>733 即レスありがとう
JAVA勉強してみます
"\\".replaceAll("\\\\", "\\\\").equals("\\") の結果がtrueになるのは仕様? "\\\\"に置き換えてるから"\\\\"にならなきゃいけない気がするんだけど。
737 :
732 :2006/05/04(木) 21:11:18
>>735 おお、ソースも公開してるんだ
これ参考にしながらがんばります
>>736 マニュアルは読んだか?
置換される文字列で$と¥は通常と動作は違うぞ
739 :
デフォルトの名無しさん :2006/05/04(木) 22:09:02
>>736 "\\".replaceAll("\\\\", "\\\\\\\\").equals("\\"); // false
Tomcat 4 だけど HttpServletRequest#setCharacterEncoding() 指定しても getPathInfo() は化けたままなのな。
JFrameなどに追加したコンポーネント(JPanel)などの 絶対座標を取得するには、どのようにしたら良いのでしょうか? getBounds()などを使用しても、相対座標が取得されてしまいます。
>>741 JFrameのgetX(),getY()と組み合わせる。
CP932文字列からUTF8の文字コード(\u0030)へのコンバータを探していますが見つかりません。 参考になるサイト、もしくはフリーソフトで在れば、どなたか教えてください。
>>743 参考になるサイトって…APIドキュメント見なさいよ。簡単な入門書でも書いてるような内容なんだけど。
もしかしてインターネットだけで済ませようっていう貧乏人?しかも自分で探すこともしない、と。
CP932はバイト配列とかだろうから、ByteArrayInputStreamで読み込むようにする。
そのInputStreamをInputStreamReaderでReaderに変える。このとき文字コードを指定できるので
UTF-8を指定すれば出来上がり。
>>743 それは Java の質問なの?
フリーソフトもなにも
String クラスにはコンバータの役割もあるよ。
探すもなにも、数行のコードで実装できそうなものだが
> CP932文字列からUTF8の文字コード(\u0030)へのコンバータ 何で \u0030 が出てくるのかさっぱりわからん。 バイト列を全部 \u0030 に置き換えたいのか?
Eclipseでコードに直接日本語を入れるときにUTF-8にする必要があるのですが。 もしかして設定がおかしいのでしょうか? 普通はどうやっているのでしょうか?
補足すると、 JFrame frame = new JFrame("\u5F91\u5F92\uu5F93\uu5F94\u5F95"); の様にしていました。 以前の会社では、このようにしていたのですが、普通ではないのでしょうか?
>>750 わざわざユニコードエスケープにするより、
ソースのエンコーディング統一するよな、普通は。
>>750 動的に生成するもの以外のGUIに設定するラベルは
プロパティファイルに記述するもんだ
>>750 普通ではないというより、異常極まりないです。普通は
>>751 で、コンパイル時に指定します。
そうですか、外資系だったので、外人がこの辺を知らなかったのか、何か理由があったのかも知れません。 ソースコードはUTF-8で、文字リテラシーUTF-8のエスケープシーケンスで書くというのが規則でした。 何らかの場合に文字化けするのがいやだったのかもしれません。 外人は文字化けしても判別できないからかなぁ。
せっかくの外資系企業をやめてどちらへ移られたのですか?
> 文字リテラシーUTF-8のエスケープシーケンス 凄い外資系だな。
これ以上はそっとしておいた方がよいと思うw
>>755 外資といっても、一般的に想像される欧米とは限らない訳だが
\ \v/ / __ ヽ(`Д´)ノ ___ ( 回 ) リストラマン参上!! / / ヽ \
そんな外資系はリストラされてよかったと思えw
>>745 UTF8の文字列は作れるのですが、ユニコードエスケープが、どうもうまく取れないのです。
いろいろやってみて、わからなかったらまた質問します。
35歳でそれは… そんなのが許されるのは15歳まで
外資ってこんなのでも仕事できるんですね
韓国や中国資本だろ
何ここ外資にコンプレックス丸出しかよw
コンプレックス丸出しとしか思えないならそう思えばいいよ
768 :
デフォルトの名無しさん :2006/05/05(金) 19:05:18
JavaでGUI作るときどのIDEが一番やりやすいでしょうか? VS2005みたいにぺたぺたコンポーネントをはりつけるタイプがいいのですが OSはWindowsです
sun one studio
ポトペタならNetBeans5が今一番評判いいんじゃない?
>>768 同じくNetBeans5をオススメする。
サンクス とりあえずフリーのビーンズ5を入れてみる JDKとセットになってるやつはv4.xなのね
NetBeans5はリファクタリングとかコード回りもほぼEclipseにおいついたしな ぽとぺたもすごいけど、そっち方面の強化がポイントだと思う NetBeansってバージョンアップのたびにかわりすぎだけどそろそろ落ち着くのだろうか
俺が知らないだけかもしれないけど、新規でクラス作るときに インターフェースやsuperクラスって指定できないよね?>netbean
775 :
デフォルトの名無しさん :2006/05/05(金) 22:01:37
初歩的な質問ですいません。 List list = new ArrayList(); って、なんで出来るの? Javaで書かれたソースを読んでいるとよく見ます。
ArrayList クラスはList インタフェースを実装しているから。
777 :
デフォルトの名無しさん :2006/05/05(金) 22:12:27
>>776 > ArrayList クラスはList インタフェースを実装しているから。
便乗質問でっす。
それ、なにか意味ある?
どんなときに使うの?
778 :
デフォルトの名無しさん :2006/05/05(金) 22:14:08
オブジェクト指向の本でも一冊買って読めば解るよ。
>>777 つかそこがオブジェクト指向の肝の一つだと思う。
BufferedReaderはReaderをラップするけど、実際はFileReaderだったりInputStreamReaderだったりする。それができるのは、これらのクラスがReaderの派生クラスだから。
>>777 実装型を意識せずにList型として扱える。
>>776 > ArrayList クラスはList インタフェースを実装しているから。
早い回答ありがとうございます
インターフェースを実装してるから・・・
その辺はまだよくわからないです。
もっと勉強してきます。
782 :
:2006/05/05(金) 22:31:07
ImageIOのreadはimageの読み込みが完了したことが保証されてるの? AppletとかのgetImageは読み込み完了前に即座に帰ってきて、まだ読み込みが終わってないとか読んだんだけど。
>>777 例えば、こんなシグニチャのメソッドがあったとする
public void methodA(List aList) {
for (Iterator iterator = aList.iterator(); iterator.hasNext(); {
Object anElement = iterator.next();
//enElementに対して処理を行う
}
}
このように定義されていると
List anArrayList = new ArrayList();
anObject.methodA(anArrayList);
-----
List aLinkedList = new LinkedList();
anObject.methodA(aLinkedList);
-----
List aSortedList = new MySortedList();
anObject.methodA(aSortedList);
こんな感じに、様々な種類のリストオブジェクトをmethodAに処理させることができる。
(ArrayList, LinkedList, SortedListいずれもListインターフェースを実装していると仮定)
インターフェースに対して処理を行うように記述すれば以下のようにする必要がなくなる。
public void methodA(ArrayList aList) {}
public void methodA(LinkedList aList) {}
public void methodA(MySortedList aList) {}
784 :
777 :2006/05/05(金) 22:54:15
>>782 たぶんおまえさんがみてるのは完了させるのをまつやつ
逆にわざと非同期というかどれくらいロードできたかもとりだせたりかなり柔軟なつくりになってる
最近出た書籍でもgetImage使ってたりするのを見ると萎えるな
genericsに関しての質問。 public class Foo<T>{ public void baz(){ Foo f; Foo[] fs; f = new Foo(); fs = new Foo[2]; } } これはコンパイル通るのに、 public class Foo<T>{ public class Bar{ public Bar(){} } public void baz(){ Bar b; Bar[] bs; b = new Bar(); bs = new Bar[2]; } } これだと 「汎用配列を作成します。」って言われてコンパイル時エラーに なるのが納得いかないんだけど。 Foo<T>.Bar型の配列が「汎用配列」として弾かれているのだとしたら 前者のFoo<T>型の配列がコンパイル通るのは何故。 また、「b = new Bar(); 」ではエラーが出ずに 「bs = new Bar[2]; 」の方だけがエラーになってるのは不条理な気がするんだが。
>>787 前者は Foo<T> のraw型である Fooの配列 Foo[] であって、
tiger で作れないgenerics型の配列 Foo<T>[] ではないから。
new this.Bar() はできるけど、new Foo<T>.Bar[] はできない。
789 :
787 :2006/05/06(土) 01:28:19
790 :
782 :2006/05/06(土) 05:53:21
Fileオブジェクトを、自分のプログラムの中ではなく システムのデフォルトアプリで開く方法ってありますか? 例えばWindows上で走らせている際にhoge.txtをメモ帳で開くとかです。 基本的に開けるかどうか、どのアプリを使うかの判断はOS側にさせたいのですが…。
>>791 mustang で java.awt.Desktop.open(new File("hoge.txt"));
もしくは JDIC で org.jdesktop.jdic.desktop.open(new File("hoge.txt"));
JConfig でも出来たような気もする。もしくは JNI 使って自作。
>>792 × java.awt.Desktop.open(new File("hoge.txt"));
○ java.awt.Desktop.getDesktop().open(new File("hoge.txt"));
× org.jdesktop.jdic.desktop.open(new File("hoge.txt"));
○ org.jdesktop.jdic.desktop.Desktop.open(new File("hoge.txt"));
794 :
sage :2006/05/06(土) 14:27:48
初めは共有ロックして、更新が必要と判ったら排他ロックに切り替えることはできますか? そもそもこの方法はロックとして問題ありますか?
>>792 ,793
mustangを今から使う勇気はさすがにないですが、JDICてのは使えそうですね。
ありがとうございました。
797 :
368 :2006/05/06(土) 15:34:50
j2re-1_3_0_04-win.exeをWINXPに入れてMSDOSで確認したところ、 >java -version Error occurred during initialization of VM java/lang/ClassNotFoundException: sun/io/ByteToCharMS932 エラーがでました。対処方法はどうすればいいでしょうか。。。
>>791 cmd.exe /c start hoge.txt
をRuntime.exec()で起動でいけるらしい
[Java Swing Hacksより]
799 :
だいぶ初心者 :2006/05/06(土) 15:50:59
企業が提供しているサイトで、認証後に表示(もしくはダウンロード)される データーをJavaで取得したいのですが、データーを呼び出す前の画面でJavaScript で次の画面に飛んでいきます。 その場合、Javaの(Scriptでは無く)クラスから次の画面を取得する事は可能 なのでしょうか。 ここで言う企業が提供しているサイトとはクレジットカードの利用明細や携帯 電話の使用記録です。クレジットカードの方はhtmlで表示され、携帯電話の方は csvファイルのダウンロードです。 どなたかご教示頂戴できませんでしょうか、よろしくお願いします。
>>799 ブラウザ作るくらいの気持ちがあれば可能
そうでなければ、事前に飛ばされる先を
プロパティファイルとかに定義しておいて
そちらに接続する
801 :
だいぶ初心者 :2006/05/06(土) 16:22:04
>>800 ありがとうございます。
ただ、飛ばされる先がランダムだった場合難しいような気が…
802 :
デフォルトの名無しさん :2006/05/06(土) 16:26:50
JAppletで画像の上に複数の透過Gifを表示させたいのですが、 この透過Gifの重なり順を指定できますでしょうか? JLayeredPane.setLayer() で実現しそうなんですが、 これには直接Imageを指定できないです。
>>801 あなたの場合、事前に壁を作るタイプのようなので
実装は無理でしょうね
>>802 直接指定できないなら、イメージを追加できるコンテナを使う
って考えに至らないのか?
805 :
794 :2006/05/06(土) 16:46:02
どこに質問すればいいですか?
>>805 どこへ質問しても回答は得られないだろうよ。
何から何をどういう手段で処理するのか。さっぱりわからん。
JDBC?JCA?ロックをかけるのはRDB?R/3のようなビジネスシステム?レガシーシステム?
自分の脳内では当然の前提なのだろうが、見る人にとってはチンプンカンプン。
JDBC APIを使ったデータベースアクセスの話題である可能性は高いが、
それも見る側にとっては当てずっぽうの推測の域を出ないしね。
>>806 ファイルの共有ロックと排他ロックなんじゃね?
いったん共有ロック破棄して排他ロックするしかないんじゃないか?
アトミックな切り替えみたいのは多分無理だと思う。
808 :
802 :2006/05/06(土) 17:09:36
自己レス。一応解決できました。
もともと描画順にImageが重なるので、空Imageをいくつか描画して置き、
重ねたい順番にマッチする空Imageへ透過Gifを読み込んでから
repaint()したら出来ました。(うまく説明できない・・・)
>>802 透過Gifなので、透明なコンテナじゃないと駄目ですが、
例えばどういったものがあるんでしょうか。
自己解決の方法はどうもスマートじゃない気がする・・・。
>>797 英語のOSじゃないならインストールするものが違うと思うのだが…
「j2re-1_3_0_04-win-i.exe」 <-こっちじゃないの?
810 :
デフォルトの名無しさん :2006/05/06(土) 23:09:02
javaで商用アプリ作りたいんだが、ライセンス料って発生するのか? そのライセンス料はいくらぐらいなのか教えてくれ。
>>810 すげー質問だ。JDKとか落とすときに確認しなかったのか?
Sunを前提に結論から言えば、作ったアプリにはライセンス料は発生しない。
同梱するJDK/JREに関しても、基本的には料金は発生しないが制限はある。
詳しくはJDKに日本語訳が含まれてるから、それを読め。
俺のsun jdkのCOPYRIGHTファイルなんか文字化けしてるぜ
813 :
デフォルトの名無しさん :2006/05/07(日) 03:18:05
public void paint(Graphics g)のメソッドでwhile文をkが200になるまでに繰り返します。 このときpublic void init()のメソッドもkが200回繰り返すにはどうしたらいいんですか?
814 :
デフォルトの名無しさん :2006/05/07(日) 03:41:38
Reader系のクラスに markとかresetとかいう関数があるじゃないですか。 あれの使い道がいまいちわからんのですが、これってファイルをモニタして 変更があったら検出するとかそういう風につかえるんですか?
>>814 単に読み直しに使えるってだけ。
mark() できる箇所が1箇所だけなので、微妙に使いどころが少ないけどね。
あと、例えばファイルに変更があった場合でも、
InputStream の mark/reset の仕様的には変更を反映してはいけない。
たぶん Reader の mark/reset も InputStreamに準じるはずだから、
「変更があったら検出する」とかはできないはず。
816 :
デフォルトの名無しさん :2006/05/07(日) 07:36:42
Windows XPの環境でSDKをインストールして環境変数も設定したのですが コンパイルして実行すると Exeption in thread "main"java.lang.NoClassDefFoundError: test1 と出てしまいます。いろいろ調べたのですがわかりませんでした。 どなたか教えていただけるとありがたいです。宜しくお願いします。
817 :
:2006/05/07(日) 07:37:53
テキストファイルの最初の行に文字列を挿入したいのですが、効率的な方法はないのですか? 自分ができたのは一時ファイルを作って、それに挿入したい文字列を書き込み、その後に元のテキストファイルから読み込み、そのまま一時にファイルに書き込み、全部コピーし終わったら一時ファイルをrenameして元のテキストファイル名にするというのです。 たった一行の挿入のために元ファイルをまるまる全部コピーするのはすごい無駄なことをやってるような気がします。
818 :
デフォルトの名無しさん :2006/05/07(日) 07:50:05
ちょっと力貸してください gif画像を連続表示してアニメのようにするにはどうすればいいのでしょう? 調べた限りではマルチスレッドを利用して行うようなのですが 出来ればRunnableインタフェースの実装ではなくThreadクラスを継承する方法で教えていただけたら有難いのですが
820 :
891 :2006/05/07(日) 09:14:26
解決しましたスレ汚し失礼でした
821 :
デフォルトの名無しさん :2006/05/07(日) 09:26:35
ちょっと教えてもらいたいんですが、 ○()記法により次の計算のオーダーを示す。使用できる命令を加算、減算、 右シフト、左シフトとする。a×b a÷b。aとbは正の整数とし、 計算結果も整数とする。計算オーダーは小さいほうがいいです。 初歩の初歩だとは思うのですが、教えていただけたら有難いです。
822 :
デフォルトの名無しさん :2006/05/07(日) 09:34:31
Canvasクラスを継承したクラスMyCanvasを作って、そこのpaint()に別のクラスで作った配列 の内容を表示させていて、別のクラスで作った配列の中身を更新したときに、MyCanvasを表 示更新させたいのですが、update(),repaint()を書いても更新されません。どうやったら更新さ れるんでしょうか?
>ちょっと教えてもらいたいんですが、 >○()記法により次の計算のオーダーを示す。使用できる命令を加算、減算、 >右シフト、左シフトとする。a×b a÷b。aとbは正の整数とし、 >計算結果も整数とする。計算オーダーは小さいほうがいいです。 >初歩の初歩だとは思うのですが、教えていただけたら有難いです。 何を教えてほしいのかさっぱり分からん。
824 :
814 :2006/05/07(日) 12:00:06
>>815 回答ありがとうございました。
なるほど。単純な読み直しだけで、変更は反映しちゃダメなんですね。
とすると、変更を検知するにはいちいちReaderをnewして、
古いものの写しとの差分を取るとかしなきゃいけないんでしょうか。
Ocject[] をListに変換したいのですがどうしたらいいですか? add( Object[] )のようなメソッドがないようです。 やはりループ内で一つずつaddするしかないでしょうか。
826 :
だいぶ初心者 :2006/05/07(日) 12:46:53
HTTPクライアントなどで所得したページ中にある『javascript:login_sub();』 をコードから実行する(マウスでクリックしたのと同じ状態)事ができれば 光が見えてくるのですが…。 どなたかお分かりの方、教えていただけませんでしょうか。
なんで急に質問が立て続けに・・・
>>825 Object[] o = {"abc",123,null};
List<Object> list = Arrays.asList(o);
ただ、勉強目的ならループでまわしてセットしてもいいと思う。
いろいろいじらないとジェネリクスは覚えれないと思うから。
>>825 java.util.Arrays#asList
GWも終わりだから課題やるのさぼっていた大学生が(ry
文字列を配列にするにはどうすればいいですか?
String[] hoge = new String[100];
833 :
デフォルトの名無しさん :2006/05/07(日) 13:54:10
これからjavaをはじめようと思います。必要なものは何ですか?
愛と勇気
時間と金
気合と根性
全部staticじゃ何故ダメなの?
インスタンスを複数作ったときに困ることがあるから。
eclipseとお茶
String の n 文字目を新しい文字で書き換える関数ってない? char[] に変換してから処理するのが普通?
StringBuffer
>>837 staticにする対象がクラスなのかメソッドなのか変数なのかわからんのだが
844 :
デフォルトの名無しさん :2006/05/07(日) 15:26:40
すみませんが、どなたかオブジェクトの取得とオブジェクトの参照がどういった ものか、また その違いについて御教授お願いします…orz 構文なんかあればその説明もお願いしまつorz
>>817 一時ファイルではなくStringBuilderに読み込んだらどうか
846 :
デフォルトの名無しさん :2006/05/07(日) 15:33:48
すみませんが、どなたかオブジェクトの取得とオブジェクトの参照がどういった ものか、また その違いについて御教授お願いします…orz 構文なんかあればその説明もお願いしまつorz
いえいえこちらこそお願いしますm(_ _)m
参照と取得って比較できるのかなあ 一般的にオブジェクトの取得=オブジェクトの参照の取得だし 完全に別物と考えた方が良いと思うんだけど
一応説明すると オブジェクトの参照=メモリ上のどこにオブジェクトが格納されているかを示す値 オブジェクトの取得=オブジェクトの参照を取得する事によってオブジェクトへのアクセスを可能にする事 てな感じかと
ディスプレイのcolor depthが16ビットのとき、 drawImage(Image, AffineTransform,Observer)で、Imageにアフィン変換かまして 描画させると常に色化けがおきて途方にくれてるんですが、だれか同じ問題解決した人 いませんか? 32ビットだと問題ないんですが、処理速度の都合上16ビットでやら したいのです・・・。 スケーリングは大丈夫なんだけどもちょっとでも回転させたり歪曲させたりすると アウトです。 環境は↓ jdk1.5.0_06+winXP+eclipse3.1.1+thinkPadX32 他のPCで走らせても同様でした。
入力としてInputStreamを引数に取るメソッドを書こうとしています。 unbufferedなストリームを使うのは効率が悪いので避けたいのですが、 メソッドの中で無条件にBufferedInputStreamでラップして使うのと、 メソッドの利用者が適切にラップするのを期待するのでは、 どちらの方がいいのでしょうか。
引数として汎用のストリームならバッファリングは呼び出し元がやるべき たとえば文字列からファイルシステムやリソースから呼び出すところまで自動化するなら 自分でバッファリングするしかない まずはバッファリングしないクラスを作るべきだね そしてバッファリングをするのを継承して作ってもいいし
全部staticなクラスだとなんでダメなんでしょう
別にダメじゃない
他の言語をお勧めする
ダメじゃないの?
じゃぁ全部staticにすればいいじゃん
何かダメな理由があるんでしょ
staticを使ったときのデメリットとメリットを説明してよ
>>855 何でよ
857 :
デフォルトの名無しさん :2006/05/07(日) 22:50:17
>>856 は、勝手にやりたいようにやればいいと思います。
うう・・(´・ω・`)
>>856 とりあえずオブジェクト指向の利点が失われそう。多態性とか。
#でもプロトタイプベースのオブジェクト指向とやらは全部static+継承で成り立ってると見れなくもない?教えてエロい人
>>856 同じ型のインスタンスを複数生成して、インスタンス毎に別の値を持たせたいとか、
継承やインタフェースやポリモーフィズムを使いたいとか、
そういったオブジェクト指向ならではの機能をばっさり切り捨てて
C言語等と同様に手続きの実装に徹するのならstaticオンリーでもいいんじゃない?
ありがとう
まあ多態とかは言語上の制約に近いといえなくもなくて、 本質的には、個別のオブジェクトとして独立に状態を持つ必要がある、 あるいは持っているほうが普通に便利というのが大きい気がする。 逆に言うと、「処理だけ」を行う機能はstaticでよいとも言える。 もちろんその処理に多態性を持たせなくなったら、 インスタンスにせざるを得ないが。
864 :
デフォルトの名無しさん :2006/05/08(月) 00:00:43
どうしてJavaのCollections Frameworkに木構造がないのはなんで?
>>864 java.util.TreeMap とか java.util.TreeSet があるが。
>>856 ショッピングカート作ってみたら?
買ってもない商品が勝手に買い物かごに入るからw
つまり全部staticでも何故ダメじゃないってこと?
Javaで文字列を圧縮ってどうやってやるのでしょうか?
>>868 先生にでも聞いて来い
ここはお前専属の家庭教師じゃねーんだよ
文字列を構築するとき、StringBuilderとStringWriterは どう使い分けていますか? StringBuilderの方が軽いので 機能に不足が無い限りそっち、程度でしょうか?
使い道が全然違うように感じるが
jdk1.4.2で文字列を置換する処理で、最速のやり方を探しています。 思いついたのが 1)String#indexOfを使ってループ。 2)String#replaceAll(想像しただけで激重^^;)。 3)StringBuffer#indexOfを使ってループ。 この3つで、テストしてみました。 //整形のためtabを全角空白2個に置換してあります String srcStr = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz"; StringBuffer srcBuff = new StringBuffer(srcStr); StringBuffer buff = new StringBuffer(); String search = "xyz"; String replaceWord = "XYZ"; int index = 0; int searchIndex = srcStr.indexOf(search); int searchLength = search.length(); //VMを落ち着かせるため5秒待つ try{ Thread.sleep(2000); } catch(InterruptedException ie){} /* 続く
つづき */ System.out.print("String indexOf "); long time = System.currentTimeMillis(); for(int i = 0; i < 10000000; i++){ while(searchIndex >= 0){ buff.append(srcStr.substring(index, searchIndex)); buff.append(replaceWord); index = searchIndex + searchLength; searchIndex = srcStr.indexOf(search, index); } buff.delete(0, buff.length()); } System.out.println((System.currentTimeMillis() - time) + "ms"); System.out.print("String replaceAll "); time = System.currentTimeMillis(); for(int i = 0; i < 100000; i++){ //激重なのでループ回数1/100、後で100かけ buff.append(srcStr.replaceAll("xyz", "XYZ")); buff.delete(0, buff.length()); } System.out.println((System.currentTimeMillis() - time) * 100 + "ms"); /* つづく 長文すみません
つづき */ index = 0; searchIndex = srcBuff.indexOf(search); searchLength = search.length(); System.out.print("StringBuffer indexOf "); time = System.currentTimeMillis(); for(int i = 0; i < 10000000; i++){ while(searchIndex >= 0){ buff.append(srcBuff.substring(index, searchIndex)); buff.append(replaceWord); index = searchIndex + searchLength; searchIndex = srcBuff.indexOf(search, index); } buff.delete(0, buff.length()); } System.out.println((System.currentTimeMillis() - time) + "ms"); //ここまで 結果は String indexOf 611ms String replaceAll 108100ms StringBuffer indexOf 371ms となりました。 もっと早い方法ありましたら、教えてください。
検索文字列、置き換え文字列、置き換え対象文字列次第で 最適アルゴリズムは変わってくるような気がしないでもないが StringBuilder使えばStringBufferより速くなるんじゃないかね。 あとStringBufferがラップしている処理をchar[]対象に自前で書けば もっと速くなるんじゃないかね。
>>876 ありがとございます。1.4.2なんです・・・
>>StringBufferがラップしている処理をchar[]対象・・・
ちょっとソースを見てきます。
StringBuffer の indexOf が String の 修飾子 なしの static メソッド呼んでいるんで、 普通ならclassまたぎのメソッドコールのオーバヘッドと、 引数のstr.toCharArray() str.length() の分だけ String#indexOfの方が速そうなんですが、なぜかStringBufferの方が速い・・・・ なぜなんでしょう? 取り敢えず実測値として速い(3)を使おうと思いますが、 ここがボトルネックになるようならば(相当数の置換をします) char[]単位で置換する方法を考えたいと思います。 ありがとうございました。
>>878 JITコンパイラがインライン展開する可能性があるので、
メソッドコールのオーバーヘッドは
実際に動かしてみないと発生するかは判らない。
C言語みたいに、書いた通りに機械語が生成されてるはずとか思わない方がいいよ。
>>874 > buff.append(srcStr.replaceAll("xyz", "XYZ"));
ここは定数を使っていないようだけど、測定に影響はないのか?
>>879 そうなんですか、でもJIT愛してますw
>>880 あとで気づいて直しましたが、やはり桁違いに遅いです。
new String("xyz") と new String("XYZ")
のオーバヘッドが発生するということですよね
その前に for(int i=0; i<10000000; i++) {〜} のブロック内でindexやsearchIndexの初期化しないと、 2回目以降の while(searchIndex >= 0) {〜} のブロック素通りするんじゃない?
>>882 あ、ホントだ・・・・
やらかしました。もっかいやってみます。
(1)と(3)も時間がたくさんかかるため ループ回数1/100しました。 String indexOf 421ms String replaceAll 1071ms StringBuffer indexOf 361ms
>>881 本当に
>>880 はなおしたの?
ループのなかでインスタンス作るなんてずるいぽ。
for(int i = 0; i < 100000; i++){
buff.append(srcStr.replaceAll("xyz", "XYZ"));
buff.delete(0, buff.length());
}
↓↓↓
final String fromstr = "xyz";
final String tostr = "XYZ";
for(int i = 0; i < 100000; i++){
buff.append(srcStr.replaceAll( fromstr, tostr ));
buff.delete(0, buff.length());
}
で測定よろしく。
はい、直しました。 どこかソースをアップロードできるところとかあればいいんですが。
>>885 それ、どっちも速度変わらないw
それよりも、String#replaceAll(String, String)の内部で
・Pattern#compile(String)
・new StringBuffer()
・StringBuffer#toString()
が毎回行われるってのが問題かと。
Pattern pattern = Pattern.compile("xyz");
for(int i = 0; i < 100000; i++){
Matcher m = pattern.matcher(srcStr);
while (m.find()) {
m.appendReplacement(buff, "XYZ");
}
m.appendTail(buff);
buff.delete(0, buff.length());
}
修正するとしたらこうじゃない?
結局、他のところにボトルネックを作りそうな予感がします。
>>889 そうですね、ボトルネックになってから考えればいいですかw
StringBuffer の delete で全部削除しているようだが、これは buff.setLength(0); でいいんじゃないのか?
awt使用していて、ウィンドウクローズボタンが押されたら 以下の処理をしています。 this.addWindowListener(new java.awt.event.WindowAdapter(){ public void windowClosing(java.awt.event.WindowEvent ev) { System.exit(0); } }); よそのクラスからこのイベントを無理矢理発生させることは可能ですか?
>>892 無理矢理でもなく
イベント・オブジェクトを
そのリスナを持つオブジェクトに
ポストすれば良いと。
>>213 ゲームを作っている奴がJavaWebStartに対応しているJavaゲームを
公開しているなら実行する時点で自動的に保存される。
アップデートも自動。2回目以降の起動はブラウザ経由でなくても
JavaWebStartから起動できる。Appletの場合は、よくわからんな。
FlashPlayerでFlashを保存できる特殊なアプリがあればいいけどな。
というか保存して一体何がしたいのか? セーブデータを保存するなら
また話は別になってくる。
895 :
デフォルトの名無しさん :2006/05/08(月) 23:28:17
”と¥を表示するときはどうすればいいんですか?
shift+ふ と ろ
>>895 「エスケープシーケンス」でぐぐってみれ
898 :
デフォルトの名無しさん :2006/05/08(月) 23:48:12
>>897 〜println("/0");で”が見れるってことですか?
>>898 println("\"");
println("\\");
ダブルクォーテーションを忘れずに
900 :
デフォルトの名無しさん :2006/05/09(火) 00:04:31
>>899 ありがとうございます!助かりました!!
println("”"); println("¥");
テンプレを見たのですがよくわかりません Javaの開発環境を作ろうとJ2SE1.4.2._01をインストールしたのですが PATH変数の設定がわかりません。 変数名(N)というところにPATHといれればいいんですよね?? その下にある変数値(V)は何をいれればいいのですか?? OSはWimdows XPです、説明が下手ですいません
>>902 PC初心者かWindows板で環境変数の設定について、初歩を学んできてはいかが?
まあ質問に答えておくと、PATHの変数値には、Javaをインストールした場所\binを「追加」する。
追加だから、既に入っている値は消しちゃダメだよ。セミコロンで区切って追加ね。
しかし1.4.2_01なんて古いの、よく見つけてきたね。
WindowsでTOMCAT5.5.16を停止しようとすると 「エラー 1053 : そのサービスは指定時間内に開始要求または制御要求に応答しませんでした。 」 というメッセージがでてまともに停止しない状況になってしまいました。 同じ状況になったことアル人いませんか? 個人的にはグローバルに出していたので、ウィルスとかバックドアしかけられちゃったかなー と思ってるのですが。
>>893 ありがとうございます。
イベントオブジェクトをポストする関数を教えてもらえないでしょうか?
906 :
デフォルトの名無しさん :2006/05/09(火) 11:53:52
すみません。どこを探しても理由がわからなかったので、知っている方教えてください。 int a = 10; a = a++; として、変数aを表示した場合、 C言語等では 11 なのに対して、 javaでは 10 のままです。 なぜでしょうか。
10のままのソース見てみたいものだ
javaて10にならないの? Cは未定義のような気がするが…
a++の返値が足す前のaを返すか足した後のaを返すかの違い
906です。 もう少し詳しく書くと、 ------------------------------ int a = 10; int b; b = a++; System.out.println( a ); ------------------------------ この場合、11が表示されますが、 ------------------------------ int a = 10; a = a++; System.out.println( a ); ------------------------------ と、自身に代入した場合は、10になるのです。 Cだと、どっちも11となります。
15.13.2 後置インクリメント演算子++ PostIncrementExpression: PostfixExpression ++ ++演算子があとに続いた後置式は後置インクリメント式である。 後置式の結果が数値型の変数でなければ,翻訳時エラーが発生する。 後置インクリメント式の型は変数の型である。 後置インクリメントの式の結果は変数ではなく,値である。 実行時,オペランド式の評価が中途完了すると, 後置インクリメント式も同じ理由で中途完了し,どんなインクリメントも起こらない。 そうでなければ,値1が変数の値に加えられ,合計は変数に格納される。 加算の前に,バイナリ数値拡張(5.6.2)が値 1と変数に実行される。 その合計は格納前に必要なら,その変数の型へのナローイングプリミティブ変換(5.1.3) によってナローイングされる。 後置インクリメント式の値は,新しい値が格納される前の変数の値である。 finalと宣言される変数を加算することはできない。 final変数へのアクセスが式として使用されたとき,結果は変数 ではなく,値である。 したがって,後置インクリメントの演算子のオペランドとしてそれを使用することはできない。
>>906 > なぜでしょうか。
理由を知る必要はない。Javaでどう定義さていようが、「a = a++;」なん
て書く必要はないし書いてはダメ。
>>910 上のコードはそうなるのは当たり前
下のコードはCでは未定義
そんなコードが出てきたらそいつはプログラマとしての資質がないからべつに結果がどうなってもいいが
つか、Javaでもワーニングでてねーか?その書き方。
Cでも処理系依存だよな。 というか、単項演算子と代入演算子の優先順位を考えると、Javaの結果のほうが正しいんじゃない? そんなコード書いてる時点で正しくないけど。
>>913 dクスです。
dispatchEventまでは自分で調べられたのですが
引数の渡し方が不明でした。
>>915 Findbugsで警告があがった。
ローカル変数の自己代入があります。
このメソッドは、ローカル変数の自己代入があります。例えば、
public void foo() {
int x = 3;
x = x;
}
この例のような代入は、無駄です。ロジックの誤りや、タイプミスかもしれません。
Cでもうちの環境では 10 になった。 警告オプション付けると、未定義だっておこられる。 つまり、こういうことはやるなって琴田。
自己代入は無意味ってか暗黙のダメダメ(w
確かに。gccでは operation on ‘a’ may be undefined が出た。 javac は -Xlint:all 付けても何も出ない。
922 :
デフォルトの名無しさん :2006/05/09(火) 17:16:52
Java3Dの質問なのですが Java3Dで立方体とか球体を表示するようにSwingのJPanelとかを3次元空間に配置して表示する方法って何かあるでしょうか?
後置インクリメントが実行されるタイミングが、 代入演算子の実行より前か後かの違い javaの場合は決まってそうな気がするが… もちろんやる意味は無いけどね。
>>932 a = a++は、優先順位からしたら、a = (a++)と同じはずだよね。
で、(a++)の値は10、そしてaの値は11になる。
その後、左辺に右辺(a++)を代入する。結果、aは10になる。
これが論理的な処理だと思うんだけど、どうかな?
906です。 たくさんのご意見ありがとうございました。 これは、自分の後輩からの質問だったのですが、 「こういう書き方ダメよ。」の後に、 私自身が、 「どうしてjavaとCで違う結果になるのか?」 ということ(理由)に答えられなくて、 みなさんの力を借りようと思ったのです。 ありがとうございました。
926 :
デフォルトの名無しさん :2006/05/09(火) 21:31:53
クラスとかメソッドとかよくわかりません。 COBOLみたいにここにここに宣言とか数字とか書く、処理書くとか 分けられてたらわかりやすいんですが あまりにも不規則すぎて混乱してます。 publicがあったりなかったりstaticとか静的変数につけるとか言うけど 静的変数の見分けの付かないし・・・。 Javaできる方は本当頭いいですよね。 自分が馬鹿すぎて本当この先Javaできるようになるか心配です。
>>925 Cでは未定義動作なので、ダメ。
Javaでは未定義ではないだろうが、Cを知ってる人が見ると心臓が止ま
るのでダメ。
>>926 そこまであからさまだと誰も釣られないと思うお
>>926 じゃあ使うな。一生COBOLやってろ。最後までやり通せば人間国宝になれるかも知れないぞ。
若く優秀なCOBOL使いはエスパーよりも貴重だと言われているからな
会社の基幹システムで使われている限り需要はあるがCOBOL使いは皆年寄りだから・・・・
年寄り連中が定年になったら基幹システムがロストテクノロジー化して解読できるのは
>>926 だけに
って燃えるシチュエーションになるぞw
そう。そして弟子もいなくて世界で最後の一人になる。
でもさ、掃いてシュレッダーにかけて捨てるほどいる Java使いより、COBOL使いの方が貴重だから、そっちの ほうが安定収入を得られるんじゃないのw
934 :
sage :2006/05/10(水) 00:52:07
javaでマルチメソッドを使ってAppletviewerを起動するときはどのように実行すればいいのですか?マルチメソッドだけのときは @javac クラス名.java Ajava クラス名 でAppletvewerは @javac クラス名.java AAppletviewer クラス名.html ですよね?2つ融合した場合の起動の仕方を教えてください。
乱数を10,100,1000,10000個と生成して、おのおのの平均と分散を求めるようなプログラムはどのように作成すればいいのでしょうか?
じゅっこ、ひゃっこ、せんこ、まんこ。
937 :
891 :2006/05/10(水) 07:22:08
名前消し忘れ失礼
>>935 生成した乱数をコレクションとか配列に入れ、
平均と分散を求めれば良い。
>>934 同じクラスで、appletとapplicationを兼用する場合?
起動方法は、appletviewerとjavaの両方でいけるということでなくて?
942 :
926 :2006/05/10(水) 08:06:07
いや、COBOLも全然わかってません 本当にJavaわからないんです 静的変数ってなんなの 文法とか不規則でどー書き始めたらいいかわかりません…
ならcobol → basic → java でどうよ
COBOL は新規開発ほとんど無くって保守と改造ばっかだから、新規に設計する力は付かんかも知れんよ。
Java程度で文法が不規則とか言い出したら、VB.NETやPerlなんかやってられないな。
>>942 一度にすべてを理解しようとしないほうが良い
>静的変数ってなんなの
クラス変数の事。元々静的変数はC言語の用語。
例えば犬というクラスを作ったとする。そこからインスタンスを生成しゴールデンレトリーバーとか
チワワなどを作っていく。名前や種類名は生成したインスタンス事に違うからインスタンス変数(staticを付けない変数)
で定義し。しかし、腕の数や足の数などは犬というクラスから派生したオブジェクトすべてに共通するはずなので
クラス変数に定義する。インスタンス生成ごとにころころ変わるからインスタンス変数(動的変数)、どれだけ生成しようと変わらないから
クラス変数(静的変数)だと覚えればよい。
クラス変数を理解するにはインスタンスの生成をまず理解しないと。
>文法とか不規則でどー書き始めたらいいかわかりません…
不規則に見えるだけ。本当に不規則だったら文法エラーを発見するのは非常に困難になる。
javaは厳しいほうだよ。
って言うかここで質問しないで入門書等を購入する事をお奨めする。
推薦図書/必読書のためのスレッド PART31
http://pc8.2ch.net/test/read.cgi/tech/1146122168/l50
class 犬 {} class 俺 extends 犬 {}
俺はクラスというよりインスンタンスでは class 犬 {} 犬 俺 = new 犬();
俺はインスタンスだ。 I am instance. 私もです。 Me too. 私はインスタンスを一つ持っています。 I have an instance.
You are fuck you.
Fuck you very much.
952 :
デフォルトの名無しさん :2006/05/10(水) 15:02:41
class 人間{ boolean 経験 = true public 人間(遺伝子 母,遺伝子 父){ 遺伝子 my遺伝子 = 母 * 父; } public boolean getMySonState(){ return 経験; } public void lifeEnd(){ System.exit(0); } } 人間 俺 = new 人間(母の遺伝子,父の遺伝子); //中略 if(俺.getMySonState){ 俺.lifeEnd }
警告: 使われていないローカル変数: my遺伝子 遺伝子 my遺伝子 = 母 * 父; ^ エラー: 未定義の変数: getMySonState if(俺.getMySonState){ ^ エラー: 未定義の変数: lifeEnd 俺.lifeEnd ^
everyone is fool
while(true){ Syetem.out.println("everyone is fool"); }
Eclipse+Java5で、下記のような定義すると、 private static HashMap hashmap = new HashMap(); private static Map objectMap = (Map)java.util.Collections.synchronizedMap(hashmap); >型の安全性: 型 Collections の総称メソッド synchronizedMap(Map<K,V>) の未検査の >呼び出し synchronizedMap(Map) がありました。 なんて出るんですけど、どう書き直すべきですかね?
958 :
デフォルトの名無しさん :2006/05/10(水) 16:04:39
環境
jdk1.5.0_05
ant-1.6.5
j3d1.4.0
で
ttps://java3d.dev.java.net/binary-builds.html の下にあるExample programs source codeのビルドをしたいのですが、途中で
・・・examples/picking/IntersectInfoBhavior.java:179:シンボルが見つかりません。
と言われて止まります。理由と解決方法を教えて下さい。よろしくお願いします。
>>957 HashMap<Object, Object> hashmap = new HashMap<Object, Object>();
960 :
デフォルトの名無しさん :2006/05/10(水) 16:23:43
JDKのバージョンが一気に 5.0 になった件で、 『マーケティングの理由から』 という説明をよく見かけるんですが、 5.0という数字に何か深い理由はあるんでしょうか?
Sun のよくやる手
963 :
958 :2006/05/10(水) 16:48:56
>>960 マーケティングの理由から、というのは数字が大きいと勝手に凄いと考える
馬鹿な客に売るため、ということです。
そのような理由により Solaris 2.7 の名前も Solaris 7 になりました。
尚、フリーソフトの Perl が 5.0006 を 5.6 に変更した理由もほぼ同じ
ですが、こちらはどちらかというと慣習から外れていたからです。
もちろんこれだけの違いならほとんど同じだろうと勝手に勘違いする
馬鹿への対応も出来ました。
質問です。 GUIのテキストボックスに数字を入れて、それを変数に入れることはできますか? 独学で勉強してて練習として、底辺と高さから三角系の面積を求めるプログラムを作りました。 それをGUIを使って作ろうとしてます。 テキストボックスを二つ用意して、それぞれに底辺と高さを入力して、計算ボタンを押すと結果が表示みたいな。
IBM の WebSphere なんかマイナーバージョンアップに見せかけてこっそり J2SE や J2EE のメジャーバージョンアップしてる。 逆にこっちは大変更したっての客に知られないように。
>>965 出来ます。API リファレンスでも見てください。
出来るよ、テキストの文字判定と必要ならば (例:char型からint型へ)変換処理をして計算すればok
>>967 >>968 ありがとうございます!
APIリファレンスとにらめっこしながら頑張って作ります。
そっか、charだからintにしなきゃいけないのか…
本当にありがとうございました。
>>969 正確に言うと String のインスタンスから int 型とか double 型とかの
数値の型に変換しないと計算できない、という感じ。
ヒント: getText(), Integer.parseInt()
971 :
デフォルトの名無しさん :2006/05/10(水) 18:24:26
ブラウザがIE、JRE1.5を使うアプレットを イントラネットにおこうとしてます。 ローカルファイルの実行(たとえばC:\calc.exe)をさせたい場合に 何もしないとSecurityExceptionになるんですが どの設定を変えれば問題なく動きますでしょうか?
>>926 俺も少しCOBOLやった事あるが、あれもわかりにくいとおもたよ。
変数は全部Cでいうグローバル変数みたいなもんだし。
Javaはそんな不規則でもないと思うが。
973 :
942 :2006/05/10(水) 20:14:31
946さんが優しくて泣きそうです。 会社の研修で基礎的なこと聞けなくてつらい。 「こんなのわかってなかったのかよ」みたいに思われそうで。
974 :
デフォルトの名無しさん :2006/05/10(水) 20:18:59
まったくのプログラム初心者に2週間程度で 基礎からオーバーロードらへんまでをマスターしろと言うのです。 簡単な事なのでしょうか。
逆に研修終わってからお手上げされる方が会社としては困るんじゃ?
>>974 オーバーロードという用語を今知った俺・・・。
そうか、これがオーバーロードだったのか。
まったくの素人に2週間、だとちと厳しいかな。
どんな順序のテキストかによるけど。
俺の場合、結城浩著「Javaプログラミングレッスン」の上下巻終わらす
のに2ヶ月弱かかったよ。まあ、CとかVB並行しながらだけど。
オブジェクト指向を理解するための 学習曲線は緩やかだからな
978 :
デフォルトの名無しさん :2006/05/10(水) 22:24:26
antで <target name="run" depends="compile"> <java classname="Main" classpath="${class}" classpathref="cp"/> </target> といった感じでSwingを使ったGUIのプログラムを走らせると、 一瞬フレームが見えてすぐにプログラムが終了してしまうのですが、 どうしたら起動した状態で止まってくれるのでしょうか? コマンドラインからjavaコマンドで実行するには問題なく動きます。
>>956 なんかむかつくけどJavaスレっぽいから許すw
980 :
デフォルトの名無しさん :2006/05/10(水) 23:18:35
文字列の前後の全角半角空白を取り除く正規表現を作らないといけなく とりあえず前からとっていこうと思うんですが String ret = "▲△あ▲△あ▲△".replaseAll("^[▲△]*",""); String ret = "▲△あ▲△あ▲△".replaseAll("^[▲△]+",""); ▲全角空白 △半角空白 どっちでも同じ結果のようですがどちらでも印でしょうか
*と+の意味を調べればわかるものを 何が言いたいのか。 ただの教えて君か
Java で画面のキャプチャーを行うプログラムを作れますか? 作れるのであれば方法を教えてください。 対象 OS は Windows です(2000, XP)。
>>982 java.awt.Robot#createScreenCapture(Rectangle)
984 :
982 :2006/05/11(木) 04:18:11
>>983 早々の回答ありがとうございます。
こんなクラスがあるんですね!調べてみます。
>>978 fork="true"するといいはず。
<target name="run" depends="compile">
<java classname="${main.class}" classpathref="project.class.path" fork="true" />
</target>
986 :
978 :2006/05/11(木) 06:34:13
>>985 できましたー
ありがとうございますっ!
>>981 調べて分からなかったからここで聞いてます
正規表現初心者は歓迎されないってことか
>>987 どっちでも同じ結果。まぁ + の方が多少マシかな。
エクスポートの項目の中にあるよ。「設定」ってのがそれ。
エクスポートの項目の中にあるよ。「設定」てのがそれ。
板一覧にお気に入りに入れている板しか表示されません。 すべての板を表示するにはどうすれば良いのでしょうか? バージョンは0.1.12.1です
正規表現なら正規表現スレで聞け
なんか新入社員みたいなやつらが大量発生してるな。。 でも中途半端に齧ったことあるやつよりズブの素人のほうが 扱いやすいってのはあるから頑張ってくれ。 1,2ヶ月程度で辞めないことを祈る・・・
ume
/⌒\ /⌒\ (( ; 三 ,,)) ヽ ( / ミ マラマラマラマラマラマラマラマラマラマラマラマラマラマラマラマラマラマラマラマラ・・・・・・・・・・ キ .メ ./ 乂____ノ -‐、 / ̄.| | | `‐-------´ / (──┘ |__|K察 ___ ヽ `ー─┬┬─ ´ 丶-‐´ .━━┷┷━━
へんなことかかないでください。
「うめいとか、うまくねえとか他人(しと)のやってるのをきいて、 そういうことを言うについちゃァ、別にモノサシがあるわけじゃァありませんが、 まァ、他人の噺ィきいてみて、『こいつァ、俺よりまずいな』と思ったら、 まず自分と同じぐらいの芸ですよ。 人間にゃ誰だって多少のうぬぼれがありますからね。 『俺と同じくれえかな』と思うときには、向こうのほうがちょいと上で、 『こいつァ、俺より確かにうめえや』と感心した日にゃァ、 そりゃァもう格段の開きがあるもんですよ」 古今亭志ん生
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。