【初心者】Java質問・相談スレッド80【大歓迎】
728 :
デフォルトの名無しさん :
2006/02/08(水) 11:03:20 複数のbinaryFileをある条件で書き換え連結し一つの binaryfile(matome)を作るプログラムを作っています。 どう組むかの案として以下の2つがあります。 案1 binaryfileを書き換える度に、binaryfile(matome)に書き込む。 案2 書き換えた複数のbinaryfileをbyte配列にまとめておき最終的に binaryfile(matome)に書き込むようにする。 この二つを考えているのですが、できればスタンダードな方法を取りたい のでどの案がいいと思いますか、どっちでもという意見でも いいので教えてください。
>>718 同意。補足を少々。
そもそも、直列化(シリアライズ)は、インスタンスの保存や読み込み、
プロセス間通信による受け渡しに利用するためであり、
JDK1.4以降は java.beans.XMLEncoder や java.beans.XMLDecode を用いることを推奨していると思う。
個人的には Serializable を実装したクラスを継承した場合であっても、
直列化を行わないのであれば、気にしなくて良いと思う。
# とまぁ、直列化を2,3回しか使っていない人の戯言でした。
>>729 見直したはずなのに…
XMLDecoder です。
^
>>728 俺だったらByteArrayOutputStream使って、
最後にwrite(ByteArrayOutputStream.html#toByteArray())
とかする。
もっと選択する言葉に注意を払うべきだと思うのです。 思考垂れ流しで、一文が長くなってしまうと、何が言いたいのか分からないのです。 Java は初心者であっても、日本語は10年か20年ぐらい扱ってきたと思うのですよ。
>>723 現行の5.0update6では印刷にバグがあります
印刷できないではなく、印刷品質が大きく異なるというものです
次のupdate7で更新されるようです
現行回避方法としては旧バージョンの1.4.2で使うか
iTextなどpdf作成ツールを使ってAdobeReaderで印刷させるかの方法しかないようです
SWTでの印刷はもっと問題が多いのでオススメできません
>>734 件のバグは Windows でしか確認されて無いって部分が抜けてる。
環境によっては問題にならん可能性もあるし。
ある意味ベータテストとかに積極的に参加してこなかったツケとも言える。
一般開発者は普通参加しないだろ
Javaコード部分でのバグだから 他の環境でも同じ可能性は多いな そもそもクライアントアプリなのでWindows環境がまずデフォだからねぇ
一概に Windows って言われてもようわからん どのバージョンのWindowsでSPとか、依存するDLLのバージョンとかないとなぁ
すべてだろ? 依存してるのはJavaのコード部分だし
Cause of this bug, in sun.print.PathGraphics#getGlyphToCharMapForFont(Font2D) 876>for (char c=0; c<CharToGlyphMapper.HI_SURROGATE_START; c++) { // <- cause 877> glyph = font2D.charToGlyph(c); 878> if (glyph != missingGlyph && glyph < numGlyphs) { 879>glyphToCharMap[glyph] = c; 880> } 881>} 882>return glyphToCharMap; ってところだな Windowsすべてのバージョンで影響があると思うが
>>741 どこ見てんだ。原因はsun.awt.windows.WPathGraphicsって書いてあるのに。
あと、
>>741 の示した部分だと Windows以外の環境でも影響出る可能性があると思うが。
java.sql.Statement
ttp://java.sun.com/j2se/1.4/ja/docs/ja/api/java/sql/Statement.html には
・executeQuery
・executeUpdate
の他に
・execute
がありますが、execute メソッドの戻り値を元に処理を分ける
(true の場合は getResultSet から executeQuery の後でするような処理,
false の場合は getUpdateCount から executeUpdate の後でするような処理...など)のと、
例えば実行する SQL を先に解析して、executeQuery と executeUpdate を呼び分ける処理に
するのでは何か違いがあるのでしょうか?
複数の ResultSet や updateCount が返ってくるような SQL を実行する、
と言うのはあまり考えていません(と execute の説明にあるもののよく
分からないのですが、これって DBMS 独自の関数とかでこういうものが
あるかも知れない、ってことなんでしょうか? すぐに思いつく SQL では分かっていません...)
>>744 Evaluationは見なかった、と。
ここで質問するようなことでは無いのかもしれませんが、 プログラムの行番号を表示して、それを行番号ごとコピーしてWord等に貼り付けられるような物はありませんか? Wordやeclipseで行番号を付けると行番号まで選択できないんです。 プログラムを少量づつ貼り付けて説明文を書きたいんですが。
JMFを使って動画をキャプチャして静止画のイメージを取得したいんですが、 FramePositioningControlがうまく取得出来ません。 processor.prefetch(); while(processor.getState()!=Processor.Prefetched){ System.err.println("."); } framePositioningCtrl = (FramePositioningControl)processor.getControl("javax.media.control.FramePositioningControl"); if (framePositioningCtrl == null) { throw new RuntimeException("Can not get a FramePositioningControl."); } 上のような感じで取得しようとしているのですが何か問題があるでしょうか??
>>746 そういうツールを自分で書いてみたら?
慣れてれば30分もかからないし、初心者ならいい練習になると思うよ。
751 :
747 :2006/02/08(水) 15:28:24
>>750 もう2日くらいいろいろ試してみたんですがどうしても出来ないんで;
やり方に問題があるのではなく、単に何か見落としてるだけなのでしょうか?
そういえばjava普及委員会のサイト復活しないね
JavaHouse なんか死滅したまま放置じゃん。
>>754 昨年 8/25 に大量 bye メールが到着して以来音沙汰なし。その前はじゅんのアナウンスと
5/8 に最後の質問が配信されて終わり。いや終わってるのか生きてるのか知らんけど。
風間さんの話とか結構好きだったんだけどな。99年頃はまだあそこくらいしかまともな
日本語の情報源なかったし。
粘着キティが現れて無印と Brewers 統合したあたりからおかしくなった。というかアプレットの
セキュリティホール見つけて以来 T 氏がアッチ方面へ行ってしまった。
>>755 大量byeメールは知らなかった。
参考にしてたんだけど残念。
>>747 取得できないというのはどういうこと?
似たようなプログラム書いたことがあるのでレスしてみた
while(processor.getState()!=Processor.Prefetched){
System.err.println(".");
}
//@↑のループを抜けない
framePositioningCtrl = (FramePositioningControl)processor.getControl("javax.media.control.FramePositioningControl");
if (framePositioningCtrl == null) {
throw new RuntimeException("Can not get a FramePositioningControl.");
}
//AExceptionで止まる
@Aのどっちが問題?
たぶん目的は指定した時刻に動画再生位置を動かしたいということだと推測してます
自分はFramePositioningCtrlというのを使わず、ClockインタフェースのsetMediaTime(Time now)で再生位置を指定します
PlayerインタフェースはClockを継承しているので
player.setMediaTime(Time now); //Player player
という感じで、再生位置を指定できます
参考になりましたでしょうか…
sunのssl関連のドキュメント読んでたんだけど、 javax.net.ssl.SSLEngineの使い道がいまいち分からない。 誰か分かる人がいたら教えてプリーズ。
同じフォルダにA.jarとB.jarがあって、 BからAの中のクラスを使用することはできますか?
両方にクラスパスが通っていれば出来ます。
761 :
759 :2006/02/08(水) 21:01:36
ありがとうございます。クラスパスで検索したらできました。
762 :
747 :2006/02/08(水) 21:41:46
>>757 お答えいただきありがとうございます。
抱えているのはAの方の問題です。
JMFのPlayerあるいはProcessorから動画をJava3Dに貼り付けるの方法を調べていたら
どうもFramePositioningContro、FrameGrabbingControl l等を使い、Textureにしてから貼り付けるのが
一般的(唯一?)の方法だと言う結論に至ったため組んだものです。
デバッグしてみるとframePositioningCtrlの値がnullで、その後取得しなければならない
FrameGrabbingControlの値も同じくnullだったため、取得時のPlayerの状態等が原因かと思い質問してみました。
調べている途中で、この方法を使っている他のプログラムをいくつか見たのですが全く同じ方法でも
エラー、例外が出ている様子がないものでしたので。
どこがいけないんでしょう?
763 :
デフォルトの名無しさん :2006/02/08(水) 21:46:31
javaアプリをたくさん起動させていくと途中から起動しなくなるのですが、 起動させる方法はありますか?
メモリをたくさん積む
763です。windowsXPでメモリ512Mつんでて、メモリ増やせばいいかと思って1Gにしたんですが、 同じくらいの数しか起動できなかったんです。 設定方法とかあれば教えてください。
既に valid な XML であることを前提に、String で渡ってきたものから DOM を構築するにはどうすれば良いのでしょうか。
>767 StringReader、InputSource
質問させてください。 Java+OracleでBLOBのカラムにテキストファイルや画像ファイル、office関係のファイルを 格納するロジックを作ることになりました。 BLOBに格納する為にはまずファイルを読み込んで、バイナリに変換する必要があると思うのですが、 いまいちよく分かりません。 具体的には ・Fileで読み込んだ後どうやってバイナリに変換するのか。 ・変換したバイナリデータをDBにinsertする時は通常のVERCHAR2の様なロジックでよいのか。 という所です。 ヒントや「このページをみろ」というのでも構いません。 ご指導宜しくお願いします。
770 :
デフォルトの名無しさん :2006/02/09(木) 00:22:32
ていうか、ファイルの中味は元からバイナリだろう。 読むだけだよ。変換の必要があるとすればDBに引き渡す時だけ。
>>769 >>770 のいうとおり、ファイルの中身は(仮に文字だけで構成されてようが)基本的にバイナリ。
InputStream経由で読めばバイト単位で読み込める。Readerで読むと、文字単位で読み込む
便利機能がついているというだけ。もとはやっぱりバイナリ。
772 :
デフォルトの名無しさん :2006/02/09(木) 00:35:00
都内に住む大学1年なんですが、 どうしても秋学期の最終課題が時計+オリジナル機能で 俺はオリジナルのところにカレンダーをつけようと思うんですが パネルに乗っけるのが、どうしてもうまくいきません。 本当に単純なやつでいいんです。 枠とかも要らないんで参考になるソースコード教えてもらえませんか? よろしくお願いします!
while(true){ System.out.println(new Date()); Thread.sleep(1000); } ※オリジナル機能:タイムゾーンを変えると世界時計になります
30分ごとに特定メソッドを呼び出しとかどうやって実現する?
>>774 タイマーとちゃう?
間隔に30分なんていれらんねーよ!
というときは、1分/1秒間隔でチェック
776 :
769 :2006/02/09(木) 00:48:26
なるほどです。 Fileで読むのとInputStreamで読むのとではどう違うのでしょうか?
ヒント:Fileクラスでデータは読めない。 ヒント2:FileInputStreamはInputStreamを継承している。
779 :
769 :2006/02/09(木) 01:19:33
なんとなく分かってきました。 Fileで読んでlengthでサイズを測って、InputFileStreamをそのFileを引数にnewして PreparedStatementのsetBinaryStream()でセットするって感じでしょうか。 あれ?BLOBインターフェイスが出てこないのですがいいのでしょうか?
780 :
769 :2006/02/09(木) 01:21:54
↑ InputFileStreamではなくてFileInputStreamでした。
いいの
782 :
769 :2006/02/09(木) 01:33:21
そうなんですか。 とりあえずこれで明日がんばってみます。 ありがとうございました。
783 :
デフォルトの名無しさん :2006/02/09(木) 01:42:15
>>774 for(;;) {
myMethod();
Thread.sleep(30*60000);
}
784 :
デフォルトの名無しさん :2006/02/09(木) 01:48:38
>>779 んなまどろっこしいことしないでも読んだのを全部 ByteArrayOutputStream に
書いて最後に byte[] 取り出せばいいじゃんか。
// Bufferedにしてあるのは多くの場合こうした方が効率よくて速くなるため。
BufferedInputStream in = new BufferedInputStream(new FileInputStream(filename));
ByteArrayOutputStream out = new ByteArrayOutputStream();
byte[] buf = new byte[1000]; // 大きさはテキトー
int n;
while ((n = in.read(buf)) > 0) out.write(buf, 0, n);
in.close();
buf = out.toByteArray(); // bufは使い回しだが以前の値は不要なのでこれでもいい。
お前もまどろっこしい PreparedStatement#setBinaryStream() 使え
786 :
デフォルトの名無しさん :2006/02/09(木) 02:07:28
>>785 それSQLの場合だけだ。
元の質問がSQLだからいいか。
788 :
デフォルトの名無しさん :2006/02/09(木) 02:28:55
java.util.Timer だな。
789 :
デフォルトの名無しさん :2006/02/09(木) 02:32:36
new java.util.Timer().scheduleAtFixedRate(new TimerTask() {public void run() {System.out.println("うひょ");}}, 0L, 30 * 60 * 1000L);
>>789 30分後とに「うひょ」だけを出力し続けるプログラムを見たら
俺は発狂するねw
せめて時々「うひょひょ」になってほしいねw
792 :
デフォルトの名無しさん :2006/02/09(木) 10:33:01
Java&プログラム暦3ヶ月で23のパターンの本を読み終えたんですが どうやら巷ではEclipseを使ってるようなのでそろそろメモ帳を 卒業したいんですが、なんかおすすめの本ってありませんか? 高度なことはするつもりはなくて、基本的な使い方が分かればいいんですが。 複数、挙げて頂けると助かります。お願いします。
795 :
デフォルトの名無しさん :2006/02/09(木) 10:54:23
a>=200 なら @のプログラムへ b>=100 なら Aのプログラムへ 違うなら@へ としたいんですが、プログラムへ移動する仕方教えてください。 if(a>=200) @式 else if(b>=200) A式 else @ としたら、@式を2回使うので、長くなるんです。 b>=100とすれば、1つの条件ですが、必ずa>=200を入れます。
if(a >= 200 || b < 200){ 壱 } else { 弐 }
>>795 とりあえずわかったのはホットゾヌが =レス番号 でもポップアップしてくれること。
あと、機種依存文字を使っていること。
その他の場合は1処理でいいのか? 処理しないの場合はないのだろうか。
799 :
デフォルトの名無しさん :2006/02/09(木) 11:05:02
初心者からJava上級者への質問。 Javaの学習の仕方で最適な方法は、次のうちどれですか? 1)コンストラクタやメソッド、配列、インターフェイス、例外などの 定義の意味を学びつつ、それに沿ってそれらの基本的なコーディングの 仕方を覚える。その後、数百行程度の規模のプログラムのコード を読みながら、実際のコーディングを学んでいく。 2)上記の定義の意味を学びつつ、パターン化された小さなプログラムを 書きながら、ただひたすら感を養う。ある程度して数十パターン程度 を覚えたら、実際のコードを読んで、より大きめのプログラムの構成 を学んでいく。 3)それ以外。
必要は最大の理由なり、まで読んだ
>>799 この世に「初心者という人」と「上級者という人」は存在しないと思っている俺はどうなる・・・
その「〜分かれば上級者」とかいうわけのわからん設定を先にどうにかすれ
初心者という言葉を使わず勉強中とかにすれば風当たりいいかな?
803 :
デフォルトの名無しさん :2006/02/09(木) 11:27:42
わかりました。Java学習中の者ですが、Javaを使って食卓に食べ物を、 或いは奥様へ給料明細を持ってくることに成功されている方への質問。 Javaの学習の仕方で最適な方法は、次のうちどれですか? 1)コンストラクタやメソッド、配列、インターフェイス、例外などの 定義の意味を学びつつ、それに沿ってそれらの基本的なコーディングの 仕方を覚える。その後、数百行程度の規模のプログラムのコード を読みながら、実際のコーディングを学んでいく。 2)上記の定義の意味を学びつつ、パターン化された小さなプログラムを 書きながら、ただひたすら感を養う。ある程度して数十パターン程度 を覚えたら、実際のコードを読んで、より大きめのプログラムの構成 を学んでいく。 3)それ以外。
質問内容が
>>799 なら勉強中と言い換えても変わらんと思うぞ。
こんなのへのレスは 全部 それ以外で いいんじゃね?w
>>803 奥様も居ないし、給与明細もないから答えられないな
>>803 くだらない質問してる暇があるなら
コード書け、コード読め、言語規定とVM仕様読め
食卓に食べ物を出す方法はわからないが、 奥様と給与明細を受け取るにはもっと人として磨かないと無理だと思うぞ 結局仕事は一人でするんじゃなくて、人と人とでするからな ははは・・・
809 :
デフォルトの名無しさん :2006/02/09(木) 11:34:47
>>796 回答ありがとうございます。今から試してみます。
>>798 その他の場合は@で結構です。処理しない場合はありません。
>>809 なるほど、なら796のスタンダードな記述で全然よいとおも。
複雑な条件ならガード節使うのもありんす。
isOutAria(x,y)
>>792 バージョンが古いがJavapressとかムックで十分
ネットの情報のみで「使って慣れる」でも行けると思う
if(b>=200){ foo1(); return; } foo2(); 途中でenterしちゃったスマン。
813 :
デフォルトの名無しさん :2006/02/09(木) 12:06:38
JInternalFrameのフォーカスについてなのですが…困ってます。 JInternalFrameを2つ表示させているんですけど、 あるJInternalFrameから呼び出してもう一方のJInternalFrameをフォーカスを あてている状態(選択している状態)にしたいのですが、どうしたらいいのでしょうか? 例えばですが、片方のJInternalFrameに表示したボタンをクリックしたときに 自動でもう一方のJInternalFrameが選択される状態にしたいのです…
814 :
747 :2006/02/09(木) 12:19:31
>>793 ありがとうございます。
サンプルを参考に頑張ってみます。
>>813 JDesktopPaneのマニュアル見た?
816 :
デフォルトの名無しさん :2006/02/09(木) 12:26:13
Swingを使ってゲームを作成しているのですが MouseMotionAdapterを使って、マウスが動くたびに、フォームに対しての座標を取得しているのですが ラベルの上にマウスを置くと、ラベルの下にある、フォームの座標が取得できなくて・・・ どうすれば、全体の座標を、ラベルなどを無視して取得できますか?><教えてください・・・
長くても短くても、クラス名を書けクラス名を!
利用可能なクラスの中で、 1.最も長いクラス名 2.最も長いパッケージ名 3.最も長いFQCN を得るにはどうすればいいでしょう。ClassLoaderとかいじらないといけませんか?
819 :
デフォルトの名無しさん :2006/02/09(木) 13:18:23
>815さんありがとうございます! setSelectedFrame(JInternalFrame f)というのを使えばいいのはわかったんですが 実際動かしてみると、片方のJInternalFrameで呼び出したときに何もおこらず、 もう一方のJInternalFrameを選択したときに2つとも選択した状態になってしまいます… setSelectedFrameを呼ぶ場所がおかしいのでしょうか?
>>818 とりあえず「利用可能なクラス」が定義されないとどーしよーもない。
実行時にバイトコードを生成しても良いなら
後から幾らでも長い名前付けたクラスやパッケージを作れるし。
>>819 setSelectedFrame(JInternalFrame f)ではなく
JInternalFrameのsetSelectedを使ったらどう?
i1.setSelected(false);
i2.setSelected(true);
みたいな感じで。
822 :
デフォルトの名無しさん :2006/02/09(木) 15:48:13
質問させてください。 Eclipseでファイル読み込みを伴うJavaプログラムを作っているのですが、Jar出力したものを起動しようとすると、 読み込むファイルがJar内に固められた為か読み込みに失敗します。 Eclipseでの通常開発時とJar出力での起動と、両方に対応できるファイルの読み込み方法はありますでしょうか? 読み込んでいるものはxmlファイルと画像ファイルです。
>>822 絶対パスを入力してるってこと?
それなら相対パスにすればいいのでは?という回答しかできませんが
”jar内に固められた”がよーわからん
>>822 ファイルをクラスパス内に配置して、getResource(path) ではどうだ。
詳しくは ClassLoader getResource なんかでググってくれ。
<T> void func() { T t = new T(); } こういうのってできない?
827 :
デフォルトの名無しさん :2006/02/09(木) 16:32:27
Exception in thread "AWT-EventQueue-0" java.awt.IllegalComponentStateException: component must be showing on the screen to determine its location こんなメッセージが出るのですが・・・・ どう理解すればいいのでしょうか…?
>>827 他の処理との呼び出し順がマズイとか…
ちなみに俺は簡単なサンプル作って試したら普通に動いたけど…
830 :
デフォルトの名無しさん :2006/02/09(木) 17:32:26
>>823 Eclipseのプロジェクトフォルダの中に、読み込むファイルを置いてあるんです。
EclipseのJar出力機能でプロジェクトを丸ごとJarファイルにしているので、読み込むファイルも圧縮されているんです。
もしかしたらそれが原因かな、と。
831 :
デフォルトの名無しさん :2006/02/09(木) 17:33:57
すいません上の質問をした819です! 2つのJInternalFrameに関連があるんですけど、 JInternalFrame1 JInternalFrame2 があるとして 1から2に含まれているコンポーネントにポップアップを表示させたいのです(汗) ソースとしては1から JPopupMenu popup = new JPopupMenu(); JLabel label = new JLabel(); popup.add(label); popup.setBorder(BorderFactory.createLineBorder(Color.BLACK)); popup.menuSelectionChanged(false); popup.show(com,0-label.getPreferredSize().width,0-label.getPreferredSize().height); comはJInternalFrame2でポップアップを表示させたいコンポーネント てな感じで呼び出してるんですけど上みたいなメッセージがでるんです。
マルチポストうぜぇな
ClassLoaderのサブクラスを作り、defineClassをオーバーライドして、 特定のクラスをloadClassでロードしたのですが、 ClassクラスのインスタンスからnewInstanceでインスタンスを作り、 ロードしたシンボルの名前でキャストすると、NoClassDefFoundErrorが出てしまうのですが・・・。 これは何故なのでしょうか。 ひょっとして、インターフェイスだけは システムクラスローダで読み込ませておかねばならないのでしょうか?
>>834 >ひょっとして、インターフェイスだけは
>システムクラスローダで読み込ませておかねばならないのでしょうか?
そうだったと思うけど。
>>836 調べてみたところその様でした。ありがとうございました。
840 :
デフォルトの名無しさん :2006/02/09(木) 20:48:21
サーブレットとデータベース使って本の検索システム作ってるんですけど 困ってます。HTMLファイルでキーワードを入力して、それをBeanで受け取 ってデータベースから該当するデータを取り出してJSPで表示させたいんで すけど。BeanではGetParameterが使えないのでキーワードが受け取れない んです、どうしたらいいでしょうか?
>>840 そのレベルだとまずサーブレット初心者本よんで勉強からはじめたほうが近道っぽいぞ
場合によってはJava本からだな
すみません 例えば String str = "hogehoge" if(str == "hogehoge"){ ... } ですとifの条件に引っかかってコードブロックを実行するのですが BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); if( (str = br.readLine())=="hogehoge" ) { ... } とし、hogehogeと入力しますとなぜかifにひっかかってくれません どういう事でしょうか
>>842 Javaの最初のところから勉強したほうがいいよ
>>842 stringはclass
equals()つかいましょう?
>>842 Stringはクラスなので参照型です。equalsメソッドを使いましょう。
>>842 どうしても equals() 使いたくないならintern() しろ。
出力幅と精度を指定したくprintfを使用したのですが、以下のようなエラーが出ます。 Score.java:39: シンボルを解決できません。 シンボル: メソッド printf (java.lang.String,double) 場所 : java.io.PrintStream の クラス System.out.printf("%.2fです。\n", ae); クラスはimport java.io.*;とimport java.util.*;を使用していますがここが足りないのでしょうか? ちなみにJDKは5.0_06を使用しています。
printf()なんてメソッドが出来たんだ・・・いい加減JDKアップするかね・・うん
System.out.printf("%.2fです。\n", (Double)ae); これで上手くいかないか?
>847 $ javac -version
>>847 複数JDK入れててコンパイルに jdk1.4 使ってないか?
コンパイル時に javac -J-showvesion とかやってチェックしてみ。
Eclipse でもコンパイラレベルを 1.4 のままにしておいて
JDK5.0 使ってますが printf がエラーになりますって人がいたな。
ん? なんとなく。 ……ゴメン。恥ずかしいんだから放っておいて orz
854 :
847 :2006/02/09(木) 23:15:40
>>849-851 ありがと。指摘通りPATHが1.4だった。
んで、今度は間違えてクラスパス飛ばして復旧方法忘れてたので直すの面倒だった…
あと、どうでもいいけどdouble = int / int ってちゃんと出ないんだね
全部doubleにして解決したけど、なんとなく自分がぶつかったので報告。
基本から勉強しなおしてくれ・・・
856 :
デフォルトの名無しさん :2006/02/09(木) 23:32:31
全然、関係のない話なんですが、CCNAのスレってないでしょうか? 携帯なので誘導していただけると助かります。
857 :
デフォルトの名無しさん :2006/02/09(木) 23:48:29
クリックしたらm3uファイルが実行されてmediaPlayerが起動する。 というのをやりたいんですが、その場合どのような方法があるのでしょうか。 runtime.execを使うとmediaPlayerしか起動できないので。
コマンドプロンプトの勉強して Runtime#exec() 使e
859 :
デフォルトの名無しさん :2006/02/09(木) 23:58:18
>>857 そんなOS依存のことなんか知らねえよ。う゛ぉけ。
>>859 mediaplayer使えるということは普通windowsなのでは・・・
861 :
デフォルトの名無しさん :2006/02/10(金) 00:03:23
runtime.exec("D:/a.m3u"); runtime.exec("D:\\a.m3u"); としてみたのですが、エラー193その他たくさんがでるだけでうまく動いてくれませ ん。 コマンドプロンプトで、d:\a.m3uとしたらmediaPlayerがちゃんと起動してくれま す。 どうしたらよいのでしょうか。
>>861 たとえば、コマンドプロントで
cmd /c start d:\a.m3u
command /c start d:\a.m3u
とかやってみると嬉しくなれるかも
863 :
デフォルトの名無しさん :2006/02/10(金) 00:16:20
mediaPlayerを起動したいというより、m3uファイルを実行してプレイリストの再生をしたいのですが。
864 :
デフォルトの名無しさん :2006/02/10(金) 00:20:25
いい加減にしろよ阿呆
Log4Jのプロパティファイルってどこにおけばいいんですか? classes直下においたら認識してくれない・・・・ (フルパス指定だと読めるんですが)
867 :
デフォルトの名無しさん :2006/02/10(金) 01:40:51
Execution completed. 1666088 bytecodes executed 193 thread switches 744 classes in the system (including system classes) 6535 dynamic objects allocated (539988 bytes) 6 garbage collections (96196 bytes collected) エラーが怒ってしまう・・・何かおかしいとこあるんすか?
Execution completed = 実行が完了しました
869 :
デフォルトの名無しさん :2006/02/10(金) 02:50:06
>>860 Windows なんか知らねえよ。う゛ぉけ。
870 :
デフォルトの名無しさん :2006/02/10(金) 02:51:15
質問します。 「MIDP 2.0 携帯Java アプリ開発ハンドブック」(布留川英一著)という本にならって JDK1.4とWTK2.2とをインストールしていたのですが、 JDK1.4のほうはインストールできたんですが、 WTK2.2のほうは sunのダウンロードページに飛ぶ前に「UserNameとパスワード」を 要求されてしまい、このことについて上記の本では何も書いてないんです。 どうしたらよいのでしょうか?どなたかわかる方、教えてくださいませ。
874 :
デフォルトの名無しさん :2006/02/10(金) 05:44:17
857です。 runtime.exec("cmd /c start D:/a.m3u"); で、出来ました。ありがとうございました。
>>874 >>862 が何故2パターン用意してるのか分かった?
コマンドインタプリタで set comspec とか echo %comspec% ってやってみると嬉しくなれるぞ
876 :
デフォルトの名無しさん :2006/02/10(金) 11:01:29
絶対座標の取得はできますか?
getLocationOnScreen() (だっけ?)
878 :
デフォルトの名無しさん :2006/02/10(金) 11:52:02
カーソルの絶対座標は取得できますか?
879 :
デフォルトの名無しさん :2006/02/10(金) 12:31:38
できます。以上
881 :
デフォルトの名無しさん :2006/02/10(金) 12:41:21
>>880 できますか?と言う質問だから正しい答えだと思うよ
どうやったらできますか?とかどのAPIを使うんですか?という質問をすれば良いと思うよ
揚げ足取りを淡々と引きずってもおもしろくない。
次の人どうぞ〜
ハズレの回答者を引いたのはお前だ。諦めろ。
俺じゃないけど。
886 :
デフォルトの名無しさん :2006/02/10(金) 13:43:23
どうやったら、カーソルの絶対座標を取得できますか?
888 :
デフォルトの名無しさん :2006/02/10(金) 15:53:06
返答ありがとうございます 使ってみたのですが、、、 import java.awt.MouseInfo; の時点で、シンボルを解釈できませんとでました。。。 どうしてなのか教えていただけますか?
>>888 MouseInfoは1.5から導入されたので、1.4とかだと使えない。
手を抜いて一行で質問すると、余計時間がかかる、の典型だな
891 :
デフォルトの名無しさん :2006/02/10(金) 16:03:42
なるほど・・・1.5ですか・・・ 探したのですが、1.5をダウンロードできるページを見つけれなくて;; よければ、アドレスを紹介してもらえませんか?
最新版を見つけれないって珍しい質問だな
test.xmlという文字列から .xmlを取り除いて testという文字列を取り出したいです。 ご教授いただけるとうれしいです。
name.substring(0, name.length() - 4);
int last = name.lastIndexOf('.'); if (last >= 0) name = name.substring(0, last);
文字列の後ろ4文字をカットしたいのか、.xml という文字列を排除したいのか ピリオド以降をカットしたいのか、でやり方変わってくると思うが。 って書いてるうちに 4文字カットとピリオド以降の方法が書き込まれている
name = name.replaceFirst("\\.xml$", "");
899 :
894 :2006/02/10(金) 16:57:55
みなさんありがとうございますm(__)m
string hoge(){ s="test.xml" if(s.equals("test.xml")) return "test"; }
>>900 が正解。
仕様に書かれていないことを勝手に想像して実装してはいけない。
>>901 残念ながら "test" は string型にキャストできません。
ついでに、s.equals("test.xml") ではなかった場合の処理が抜けてるので
言語規定によりコンパイルエラーになるはずです。
> s="test.xml" s の宣言が抜けてるのとか、セミコロンが抜けてるのとかは?
高説垂れる前にコードくらい読めるようになれと
if文だけ書いてあればよかった
コンパイルも通らないコードに正解認定と聞いて飛んできました
そこまで揚げ足とるなら
>>894 はJavaでって書いてないから正解でいいんじゃね
>>907 スレタイ100回読み直して半年ROMってて下さい。
途中までVBで書いた javaだと思い出してequalsメソッドにした 面倒だからそのままにした
今は反省してる
>>884 質問の仕方で、はずれの回答者を召還することも大いにあるよねえw
Image の一部を三角形に切り出して回転させ、同じ Image の別の領域に描画したいんですけど、 三角形に切り取りとか、回転とかって機能ありましたっけ?
>>912 (俺の考えた便利な2D描写ライブラリなら)ある。普通に使える。
すみません、J2SE 1.4 のコアライブラリにです。 ひょっとして PixelGrabber でビット化してピクセル拾って座標変換するしかないですかね?
915 :
デフォルトの名無しさん :2006/02/10(金) 21:51:46
コアJavaってもうそろそろ改訂版が出ますか? 改訂版が出そうなので買うに買えないんですが
916 :
デフォルトの名無しさん :2006/02/10(金) 22:31:51
配列を扱うときはvectorよりArrayListの方が処理が早くなるって聞いたんですが本当なんでしょうか? 厨な質問ですいません
ひんと:どうき
>>912 やったことないけどアクセラレーションがきかなくてもいいならJava2Dでいけるんじゃない?
Shape+TexturePaint+AffineTransformていけると思うんだけど・・・試してないからよくわからん。
920 :
デフォルトの名無しさん :2006/02/10(金) 22:42:23
質問なんですが、 User user = null; にSQLで取得した値を代入して値を渡すのに user.no = result.getInt("USER_NO"); user.name = result.getString("USER_NAME"); user.pas = result.getInt("USER_PAS"); return user; て書き方は間違っていますか?教えてください。
>>920 > User user=null;
> に
何が「に」だ?
・・・nullに、か?
nullならその後のコードでぬるぽ出るだろ
>>918 プログラムの中で動的に配列のサイズを変えられるのなら配列を使いたいのですが・・・
>>923 ありがとうございます
早速試しに作ってみます
925 :
デフォルトの名無しさん :2006/02/10(金) 23:09:00
>>921 はい。でます。
そこでこの状態でのぬるぽの回避方法が知りたいんです。
『動的にサイズが変わる配列』は まさしく ArrayList にした方が良いものだろう
PixelGrabberって使う場面なんてあるか?
>>920 null.no
null.name
null.pass
…これ、どうしようか
他の言語でこういう書き方があるのか?
>>925 その「User」というクラスの仕様がわからないことには答えられないよ。
930 :
デフォルトの名無しさん :2006/02/11(土) 00:16:24
>>916 ArrayList ってたしか同期とってないんだよな。ちょっと速いんじゃない?
それのせいかどうかは知らないが。気になるならソース見たら?
931 :
デフォルトの名無しさん :2006/02/11(土) 00:17:31
>>925 わかんねえけど User user = new User(); とでも書けば? どうなるか知らないけど。
WebでないJavaアプリをJarに固めるときって、 ライブラリのjarファイルや設定のプロパティファイルは どこに置くのが普通でしょうか?
934 :
デフォルトの名無しさん :2006/02/11(土) 01:38:54
javaでweb上の画像ファイルを表示させるのは難しいでしょうか? C#だと簡単のようなのですが…
>>933 ライブラリはjarと同じフォルダかCLASSPATHの通った場所
どのライブラリのjarを見るかはMANIFESTファイルで設定しておく
設定のプロパティファイルはユーザーに触らせたくないならjarの中とかインターネットの特定URLに置いて置く
ユーザーが触って良いならjarと同じ場所か起動用のシェルやバッチのある場所
>>935 さんくすです。
とりあえず同じフォルダに置く方針でやってみまつ
>>924 自分でArrayList作ってどうする。
Javaで絶対パスを相対パスに変換するにはどうしたらいいんでしょうか……? parent = カレントとなるディレクトリ child = 相対にしたい絶対パス を使い、 new File( parent, child );で作成しても、 二つが連結されたパスが生成されるだけで困ってます。 ご存じのかたお助けください。
カレントはcurrentにしてほすぃの。
parent = new File(parent).getCanonicalPath(); child = new File(child).getCanonicalPath(); child = child.substring(parent.length() + 1);
>>941 ありがとう。(
>>939 じゃないけど勉強になるので)
それだとchildがparentの下にないとだめだよね?
たとえば
child=/usr/local/share/X11
parent=/usr/local/lib
を入力したときに、../share/X11を取得しようとしたら
やっぱり / で区切ってパスの先頭から一段づつ見て
いくしかないのかな。
if(parent.equals(child.substring(0, parent.length()))) とかで判定すりゃいいんじゃないか? Windowsのパスの大文字小文字を区別しない場合とかにも対応したいなら if(new File(parent).equals(new File(child.substring(0, parent.length())))) 括弧の数あってるか自信ない。
String#startsWith() か String#matches() 使え 上位階層の ../ 付けたいなら StringTokenizer と Stack でも使ってゴリゴリ書け
> 上位階層の ../ 付けたいなら StringTokenizer と Stack でも使ってゴリゴリ書け それは getCanonicalPath 使う事で解決するんじゃないか
946 :
デフォルトの名無しさん :2006/02/11(土) 16:15:35
〜Java初心者スレ 80 終わりの歌〜 ちんちんぺろんちょぺろんちょ ちょっとしめっぽい〜 なんでさきっちょひかるの〜 2mものびるよ〜 「あ、けっこう うまいんすね あ〜」 触るときに「すいません」なんて非日常会話 「Java好きなんすか?」 「ええ、Java好きっすね〜」 「P2Pなんてどう?」 「あ、いいっすね〜」 「俺とおまえでO2Oなんてな」 「ぎゃはははは」 じゃぱっじゃぱ、ぱ、ぱ、じゃばじゃば JavaJavaJavaJavaJavaJavaJava じゃ!。。。ばまたね
>>916 スレッドセーフは微妙な問題なので
Vector を使ったぐらいじゃどうにもならない可能性が高い。
むしろ、勝手に同期されると、デッドロックを起こす弊害になりかねない。
Vectorの同期ではデッドロックは起こらないんじゃないの? 少なくとも初心者が触っていて速度が問題になるとは考えられんが Lock使って実装されればその速度もさほど気にならんかもしれんが
949 :
939 :2006/02/11(土) 16:27:30
>>941 ,943,944,
ありがとうございます!
>>942 自分もそれを考えていたところでした。
絶対パス→相対パスはJakarta IOにもないので凹んでいたところでした。
本当にありがとうございます。
950 :
sage :2006/02/11(土) 16:30:24
んなことあるわけねーだろ
>949 どんなにがんばっても相対取れないこともあることに注意な。
952 :
sage :2006/02/11(土) 16:47:48
アルプスの少女ハイジを 保険のCMに利用するのはやめてください やずや。やずや。
953 :
デフォルトの名無しさん :2006/02/11(土) 16:54:57
public class Sample2_4{ private static int d = 10; protected void method(){ System.out.println("method"); } private Sample2_4(){ System.out.println("constructor"); } public static void main(String[] args){ System.out.println("d = " + d ); Sample2_4 spl =new Sample2_4(); spl.method(); } } を実行すると結果が d = 10 constructor method になります。 spl.method()メソッドを呼び出しているのでmethodが表示されるのは分かるのですが constructorも表示されるのはなぜなのでしょうか? どなたか教えてください。
> Sample2_4 spl =new Sample2_4(); コンストラクタ読んでるからじゃね?
> Sample2_4 spl = new Sample2_4(); ~~~~~~~~~~~~~~
956 :
デフォルトの名無しさん :2006/02/11(土) 17:00:31
流石に釣りだろ
957 :
sage :2006/02/11(土) 17:03:29
フィッシング詐欺 「掲示板にコンストラクタが呼ばれることを聞かれることってあるのですか?」
むかしの疑似餌はもっと精巧にできていた 今の若いものはこんなことも的もにできんのか
>>954 >>955 すいません、どういう意味ですか?
釣りとかはでありません。
最近独学でJAVAをはじめたばかりなので全然分かっていなくてすみません。
もう一度参考書をよく読んでみます。
960 :
sage :2006/02/11(土) 17:09:31
「的」 おまえの書きまちがえの方が。。。 伊勢エビラーメン800円ならやすいな ユンソナやります 「全メーカ社 okよ」
コンストラクタは何時実行されるものかよく調べろ。
つーか上の宣伝画像の小倉ありすの顔が、やらしてくれそうで 勃起してしまいます
コンストラクタというのはオブジェクトが作成されるときに自動的に呼び出される特殊なメソッドのこと。
いやいや、自動的には呼ばれないだろ ねこにゃんにゃんにゃん いぬわんわんわん かえるもあひるもがーもーらー ねこにゃんにゃんにゃん いぬわんわんわん じゃいあんと馬場も 「めんがまがまー!」
>>961 >>964 今知ったのですがデフォルトコンストラクタというものがあるのですね。
ありがとうございました。
constructor と表示されたのはデフォルトコンストラクタとは関係ないと思うが。
967 :
デフォルトの名無しさん :2006/02/11(土) 17:33:08
デフォルトコンストラクタに"constructor"を出力するように書いてあるんだが
968 :
デフォルトの名無しさん :2006/02/11(土) 17:35:58
>>966 これは引数無しのコンストラクタですよね、失礼しました。
中国のJavaプログラマー チン-チイサイ
小学校に犯罪予告葉書なんて。。。 犯人は子供だろ そのくらいコンストラクタが呼ばれる
>>967 デフォルトコンストラクタでなくても、同じように書けば同じように "constructor" と表示されるって事。
デフォルトコンストラクタの特例とかで、特別に "constructor" と表示されたのでは無いって事。
どうでもいいけど、技術系の板にはPREと等幅の機能がほしいよね ソースとか、DBのテーブル構造とか見づらくてかなわん。
>>953 > constructorも表示されるのはなぜなのでしょうか?
実行時の出力とソースを比較することにより、
main メソッドの以下の行が原因であることが分かる。
> Sample2_4 spl =new Sample2_4();
new Sample2_4() という式は、
Sample2_4 クラスにある引数無しのコンストラクタを実行する。
Sample2_4 クラスにおいて、引数無しのコンストラクタとは
Sample2_4() という文字列を宣言部に含む部分である。
Sample2_4 クラスにある引数無しのコンストラクタでは、
System.out.println("constructor") という式を実行するように記述してある。
この式を解決することにより、出力に "constructor" という文字列が表示される。
# うーん。結構難しいね。
vector配列の指定の要素をstring型で受け取りたいんですが、 Object cName = columnNames.get(row); String stcName = String(cName); とやるとエラーが出ます どのように書けばString型で受け取ることが出来るんでしょうか
String stcName = (String)cName;
子クラスのインスタンスから子クラスでオーバーライドされたpublicな親クラスのメソッドを参照するにはどうしたらいいのでしょう? class a {public void func(){}} class b extends a {public void func(){}} a a_instan = new b(); のような場合 a_instan.func(); で子のa_fun()が実行されますが、親のfunc()を呼び出す方法です。 C++の場合a::a_fun();になると思うのですが。
978 :
976 :2006/02/11(土) 19:00:03
訂正です。 C++の場合a::a_fun();になると思うのですが。 C++の場合a::func();になると思うのですが。
クラスbの中でsuper.func();
981 :
976 :2006/02/11(土) 19:04:38
>>978 は間違いました。
まず表記は上段が誤り下段が訂正後のつもりでした。
さらに内容が誤りでした。
×C++の場合a::func();になると思うのですが。
○a::a.func();になると思うのですが。
たしかこれで良いんですよね?
>なんで C++ が出てくるのか謎。 >母国語で解釈しようとする行為。 べつにC++で::を使うからjavaでもそうだと申してるのではないのですから、こういう批判は当らないですね。 C++は例に挙げたにすぎません。
>>980 superはクラスの中で使わないとダメですよね?
クラスの外からは参照できませんか?
>983 できません。
985 :
976 :2006/02/11(土) 19:24:08
>>984 方法がないということですか?
それでは不便じゃ?
((a)a_instan).func();
で出来るかもと思ったら出来ませんでした。
>985 方法がないということです。 不便だと思う人は不便だと思うし、思わない人は思わないと思います。
>>982 以下の状況だと判断した。
Java をそこそこ理解している人の前で、
こういうとき、C++ では、×××って書くんだけど、Java だとどうなの?
あなたと、C++ を理解したがってる人にとっては有益な情報かもしれないが、
Java のことだけを考える人には全く無価値な情報であると考える。
>>985 私に怒りを向けるのは自由だが、
>>979 で紹介している言語規定にまで怒りを向けないでいただきたい。
>>987 そこまでC++を敵視する理由を教えてください。
他の言語、例えばCやperlから見たらC++とjavaは非常に似た仕様の言語と言えるはずです。
そのC++の例えを示してやりたい事を説明してるだけなのに、あなたはC++に対してどうしてそこまで気難しく構えるのですか?
なにかトラウマのようなものでも有るのでしょうか?
ここは Java スレ。答える側の知らない言語を引き合いに出しても拒絶されるのは 当然のこと。関係ないけど a::func() に virtual 宣言居るんじゃないのか? 最近の ANSI 規格がどうなってるか知らんけど。 外部からオーバーライドされたスーパークラスのメソッドは呼び出せません。 サブクラスすっ飛ばして勝手にスーパークラスのメソッドが呼べたら、サブクラス側の 整合性が保てなくなる可能性があるから。スーパークラスのメソッドはサブクラス側で super.func() と明示的に呼んでやらないと実行されません。
>980 次スレ立てて。
>>987 >あなたと、C++ を理解したがってる人にとっては有益な情報かもしれないが、
>Java のことだけを考える人には全く無価値な情報であると考える。
あと一言、
私の質問がC++プロパーの内容なら兎も角、本質的にjavaの質問です。
あなたの批判するような、質問者にのみ価値のある質問は私の質問に限ったことではありませんし
そもそも、このスレでは回答者の利益になる質問のみオーケーという規則でもあるのでしょうか?
992 :
991 :2006/02/11(土) 19:44:23
>>989 上で書いた通りです。
>答える側の知らない言語を引き合いに出しても
既に書いた通りC++の例は例えに出したに過ぎません。
C++を知らなければ拘る必要はないのですよ。
自分の知らないことに抵抗感ばかり示さず、すこしは大人になってください。
994 :
990 :2006/02/11(土) 19:47:35
997 :
デフォルトの名無しさん :2006/02/11(土) 19:48:53
>>991 >>992 低脳プログラマうぜーよ
そもそもお前の質問は参考書読めば分る超初心者ような内容だろ
一々ツマラナイ内容で何レスもつけてるんじゃない
あっち池
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。