【初心者】Java質問・相談スレ22【大歓迎】
■ このスレッドは過去ログ倉庫に格納されています
0001sage
NGNG0153デフォルトの名無しさん
NGNGJakartaかな。
CPANにあるようなものはJavaでは標準になってることが多いけど。
0154デフォルトの名無しさん
NGNG素朴な便乗質問なのですが、Javaのガベージコレクションは
パフォーマンスが低下するのでしょうか?
0155デフォルトの名無しさん
NGNGとまる。
0156154
NGNG0157デフォルトの名無しさん
NGNGメモリサイズが無限に増えつづけるがいつか解消されるだろう。
015879
NGNG教えてもらったように、getClass()の方法でファイルシステムに
依存しないで相対パスでのファイルアクセスを試してみましたが
うまくいきません。正確には、java testで実行するとうまくいきま
すが、java -jar test.jarで実行すると読めないようです。
classpathはc:\testを設定しています。何が原因でしょうか。
http://lounge.dip.jp/~yoshinoya_off/up/data/test.lzh
0160デフォルトの名無しさん
NGNGなぜimplementsではないのでしょうか
0161デフォルトの名無しさん
NGNGただし、シューティングゲームみたいにタイトなリアルタイム性が求められる、
とかの特殊な用途でもない限り、殆ど問題にならない。
0162デフォルトの名無しさん
NGNGList list = new Vector();
とかやるときは import するけど、そーゆー事ではなくて?
0163デフォルトの名無しさん
NGNGimportの意味を間違えているだけでは?
0164160
NGNG確かにそうかもしれません
っていうか、違いがわからないです
0165U ◆CZtFsGiu0c
NGNGimportはプログラム内でインタフェース名やクラス名を記述するときに
パッケージを指定しなくてもいいようにするだけ。別にimportを指定
しなければならないわけではない。
0166デフォルトの名無しさん
NGNGディレクトリ階層の深いところに、いきなりファイル作るのは無理ですか?
"/foo/bar/hoge/test.txt"
みたいなファイルを、間のディレクトリ含めていきなり作成したいんです。
String data = "テストデータ";
FileOutputStream outFileStream = new FileOutputStream( "C:\\foo\\bar\\hoge\\test.txt" );
OutputStreamWriter outWriter = new OutputStreamWriter(outFileStream);
BufferedWriter bufWriter = new BufferedWriter(outWriter);
bufWriter.write(data , 0 , data.length());
bufWriter.close();
こんなことすると、java.io.FileNotFoundExceptionがでちまいます。。。
0167デフォルトの名無しさん
NGNGFile dir = file.getParentFile();
dir.mkdirs();
OutputStream out = new FileOutputStream(file);
...
0168デフォルトの名無しさん
NGNGJDK1.4.1にバージョンアップするにはどうしたらいいんですか?
0169デフォルトの名無しさん
NGNGバージョンアップは出来ない。
古いのを消してから新しいのを入れるとか、
新しいのを入れて古いのも消さないとか、すればいい。
0170デフォルトの名無しさん
NGNGちゃんと設定すれば複数バージョンの共存は可能です。
ディスクスペースが残り少ないとか、
JDKなんぞ一つで十分、ってんなら話は別だけど。
0171168
NGNG明日やってみまっす。
0172デフォルトの名無しさん
NGNG0173デフォルトの名無しさん
NGNG> java.nio.cs パッケージのソースはどこで入手できますか?
sun.nio.cs でした。
0174デフォルトの名無しさん
NGNGその時には下記のどっちの携帯が好ましいのでしょうか?
クライアントAPから直接EJBを呼ぶ方法と
クライアントAPからHTTPリクエストを返してServlet→EJBと呼ぶのでは
どっちが好ましいでつか?
0175デフォルトの名無しさん
NGNGんなの、場合によるとおもうが。
0176デフォルトの名無しさん
NGNGhttp://edocs.beasys.co.jp/e-docs/wls/docs70/ejb/EJB_design.html#690681
には
「リモート クライアントでは、WebLogic Server InitialContext ファクトリを使用して InitialContext を取得します。」
とありますが、
これはJavaAplicationを使った場合、(JavaWebStartを使わずに)
クライアントが100台あったら、100台にWebLogic(クライアント?)を入れなければならないということですか?
アプレットを使った場合はJarファイルにWeblogicのクラスファイルも含めということなのでしょうか?
素人で申し訳ありませんが、よろしくお願いします。
0177デフォルトの名無しさん
NGNGどういう場合どっちを使うべき見たいな指針ってありませんか?
下記の違いの認識であってますか?
■Http+Servletを使わない(直EJB)場合のメリット
クライアントの実装が簡単
■Http+Servletを使った場合のメリット
ファイアウォールを超えられる
0178デフォルトの名無しさん
NGNG145じゃないけど、そういうことになる。
J2EEはクライアント100台に配布するという使い方は考慮
されていないからね。
0179デフォルトの名無しさん
NGNGHttpServlet相手にJavaクライアントアプリが会話するのも、
別に難しくはないよ。RMIコールの変わりにHttpConnecitonで
ObjectStream作ってSerializableを投げあえばいいだけだ。
0180デフォルトの名無しさん
NGNGURLClassLoaderで解決できないの?
EJBと会話できるなら、クラスのダウンロードの可能なはずだが。
0181デフォルトの名無しさん
NGNGトレードオフだけちゃうかな。
0182デフォルトの名無しさん
NGNGHTTPServletということは、HTTPサーバとServletコンテナの実体が、
サーバー側に余計に必要だな。
0183デフォルトの名無しさん
NGNGhttp://www.ogis-ri.co.jp/otc/hiroba/others/OO&siken/FE2001b08.html
↑この問題で、mainメソッドに
System.out.println(pants[i]);
てありますが、これでなぜPantsクラスのtoStringを呼び出せるんですか?
System.out.println(pants[i].toString());
に思えてならないのですが。
よろしくお願いします。
0184デフォルトの名無しさん
NGNGPrintStream の API嫁
0185デフォルトの名無しさん
NGNG5.4 文字列変換
http://www.y-adagio.com/public/standards/tr_javalang2/conversions.doc.html#186035
15.18.1.1 文字列変換
http://www.y-adagio.com/public/standards/tr_javalang2/expressions.doc.html#39990
0186デフォルトの名無しさん
NGNGPrintStream内部で
object.toString()
しているからです。
なのでpantsの中でtoString()をオーバーライドしておけばprintln(Object object)時の
動作を変えることができます。
0187デフォルトの名無しさん
NGNG>PrintStream内部で
>object.toString()
してないよ。厳密には。
0188デフォルトの名無しさん
NGNG0189デフォルトの名無しさん
NGNGjava.io.PrintStream
public void println(Object x) {
synchronized (this) {
print(x);
newLine();
}
}
public void print(Object obj) {
write(String.valueOf(obj));
}
java.lang.String
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}
というわけで、
>>183 の場合は、結果的には、toString() を明示的に呼び出している、ということでした。
0190デフォルトの名無しさん
NGNG0191デフォルトの名無しさん
NGNGアプレットは勉強しない方が良いですか?
0192デフォルトの名無しさん
NGNG0193デフォルトの名無しさん
NGNGクラスファイルを一旦削除してしまうと、もう一度追加しても
「HTTP Status 503 - サーブレット」のエラーが出てしまい、実行できません。
どうしたら良いのですか?
0194デフォルトの名無しさん
NGNG>>167
クスコ!! ヽ( ・∀・)ノ
0195デフォルトの名無しさん
NGNG文字列の最後から4文字を抜き出す方法を
教えていただけませんでしょうか。
0196デフォルトの名無しさん
NGNG4文字未満の時のことは知らん
0197デフォルトの名無しさん
NGNGString subStr = str.substring(str.length() - 4);
System.out.println(subStr); // <- "ボケェ!"を出力
0198デフォルトの名無しさん
NGNGstr.substring(str.length() - 4);
0199デフォルトの名無しさん
NGNG0200195
NGNGAPIはメソッドの概要だけ見たんだけど......
スマソ!調査不足を許してぇ。
0201才甲金 ネ右一
NGNGWEBサーバーに埋め込みたいんですけどどうすれば出来ますか?
0202デフォルトの名無しさん
NGNGやりたいことを整理して考え直すか質問しなおす。
020379
NGNG何が原因かわかりません。
0204デフォルトの名無しさん
NGNGSQLサーバーにアッパーかな?
で、最後にWEBサーバにパンチでオーけっぇぁsjうぇk
0205才甲金 ネ右一
NGNG火戸王里土鬼里貝イ氏月ヒ里予良卩目木又 し ろ
0206デフォルトの名無しさん
NGNG\\をFile.separator
0207デフォルトの名無しさん
NGNGどれどれ優しいお兄さんが答えてあげようね
(直リンが 403 ではじかれたので、
いちいちうpろだTOP行ってから探し当てて ダウンロード中)
って jar に test.txt はいっとらんやんけ。
jar から読み込んだ class に対しては
getResource する相手も jar に入ってなあかんかったように思うが脳
0208デフォルトの名無しさん
NGNGjarファイルにtest.txtいれとけってのは至極もっともな指摘だけど、
きっと、test.txtはjarファイルに入れたくないんじゃないかな?
ユーザー固有の設定ファイルにしたいとか。
そうしたいならjavaの実行オプションで-classpath .\data とかすればOK?
0209デフォルトの名無しさん
NGNGとかやって起動すればできるかも。
0210デフォルトの名無しさん
NGNG判定するにはどうしたら良いですか?
下記はコマンドラインから END が入力されるまで
ループという処理なのですが END を入力してもループを抜けません!!
while( ( s = br.readLine() ) != "END" ){
何故なのか教えてください!!
0211デフォルトの名無しさん
NGNGreadLine() って一行読み込みだから、
ENDとしか書いてない行を入力したときにループを抜けます。
0212デフォルトの名無しさん
NGNGwhile( ( s = br.readLine() ).equals( "END" ) ){
と equals 使った方がよさげ。
0213デフォルトの名無しさん
NGNGくわしくはここを読んで。
ttp://www.gimlay.org/~javafaq/S008.html#S008-01
これFAQだよね。テンプレに入れといたらどうかな
0214210
NGNGありがとうございました。
0215デフォルトの名無しさん
NGNGFAQになるほど誰もが引っかかる。
0216デフォルトの名無しさん
NGNG0217デフォルトの名無しさん
NGNG0218デフォルトの名無しさん
NGNGC/C++ から来た連中って引っかかるか?
0219デフォルトの名無しさん
NGNGString に = を必要とすることなんてまずないもんな。
0220デフォルトの名無しさん
NGNG0221デフォルトの名無しさん
NGNG簡単な説明をよろしく
0222デフォルトの名無しさん
NGNG切手
0223221
NGNGくだらね。
0224デフォルトの名無しさん
NGNGこれは読んだか?
ttp://java.sun.com/j2se/1.4/ja/docs/ja/guide/collections/overview.html
022679,158
NGNGどうもすみません。ご指摘のようにclasspathの指定をつけて
みましたが、やはりJARから起動すると読めないようです。
これから、ファイルセパレータを環境から取得する方法(>>206)
を試してみます。
022779,158
NGNGとりあえず現状のサンプルプログラム一式。
まだセパレータは入れてません。
0228デフォルトの名無しさん
NGNG動いたよ。
17行目の"data/test.txt" を "/data/test.txt" に変更して、
java -classpath .;test.jar test
とすれば動く。
023079,158
NGNG最終的にこのようになりました。とりあえずJARからの起動でも
動いているようです。これでプラットフォーム非依存で動くのか
ちょっと不安ですが、とりあえずこれでいこうと思います。
ありがとうございました。
023179,158
NGNG改めて確認してみます。
023279,158
NGNGclassファイルを直接実行すれば動くんですが、JARから起動しようと
すると動きません。つまりやりたいのは、
java -jar test.jar [必要ならオプション]
で動くようにすることです。
java -jar test.jar -classpath .;test.jar
では動きませんでした。
0233228
NGNGjavaコマンドのマニュアルにこう書いてありました。
>このオプションを使用すると、指定した JAR ファイルがすべてのユーザクラスのソースになり、ユーザクラスパスのほかの設定は無視 されます。
-jarオプションを使う限り、java.lang.Class#getResource()でjarファイルの外の
リソースにアクセスすることはできない、ということか。
ところで、>>230の方法だとプラットフォーム依存以前にカレントワーキングディレクトリ依存に
なると思うんだけど、いいの?
0234デフォルトの名無しさん
NGNG基本的な疑問だが、なんでJarの外にリソースだけださんといかんの?
プラットフォームフリーにするなら、Jarに含めて一緒に配れよ。
それならgetResource()でとれるから。
023579,158
NGNGJarに含めていっしょに配ってもいいですが、ユーザによる「遊び」が
面倒になります。
たとえば、ビットマップボタンの画像を差し替えたいとか、データだけ
差し替えて遊ぶようなことがやりにくいわけです。
あと、アプリケーションで作ったデータファイルをサブディレクトリに
格納したい場合も外部にディレクトリを持たないといけません。
023679,158
NGNG要するに、SwingアプリケーションでJARをWクリック、もしくはJARへの
ショートカットなり何なりをWクリックで起動できればいいです。
カレントワーキングディレクトリはJARの存在する場所で、そこから相対
パスでサブディレクトリにアクセスできれば問題ありません。
0237デフォルトの名無しさん
NGNGそんなの拡張子をZIPに変えて解凍してもらって云々・・・っていうのを
マニュアルに書けばいいじゃんか
「お遊び」できるユーザーならそんくらい説明書いときゃ出来るだろ?
それか、お前が自動でデータ差し替えプログラムもいっしょに配布すれば?
そんぐらいできるだろ?
>>236
それからな、マニフェストファイル編集しないとそれは出来ない
しかも、俺の経験上
JARファイルダブルクリックで起動できるのはWindowsだけ
0238デフォルトの名無しさん
NGNG0239デフォルトの名無しさん
NGNGWindows上で、Explorer上のアイコンのダブルクリックで起動させたいということなら、
javaコマンドを実行するVBScriptを書くといいんじゃない?俺はやった経験がある。
一応シェルスクリプトも用意して、マルチプラットフォームを謳ってみるとよいかと。
0240デフォルトの名無しさん
NGNG大抵の人は、Win用のbatファイルと、UNIX用のshファイルを、起動用に
準備しているね。
ダブルクリックでJarが起動できるのは、Windowsが拡張子Jarに対して
javawを実行するようにレジストリでマッピングされているからでぇす。
拡張子xlsのファイルでエクセルが自動的に起動するのと、おんなじでぇす。
でもって、それはWindows独自の機能でぇす。
0241デフォルトの名無しさん
NGNGそれを本気でやりたいなら、インストーラ作りませう。
Windows用にはlnkファイルを作って、デスクトップやスタートフォルダ
やプログラムフォルダに張っとけばオケ。
0242デフォルトの名無しさん
NGNG新しくオブジェクトを入れたときに前のオブジェクトまで連動して値が変わってしまいます。
なんでなんでしょう??
MyClass[] mc = new MyClass[3];
for (int i=0; i<mc.length; i++) {
mc[i] = getMyclass();
if (i != 0) System.out.print(mc[i].getValue() + " "); // ここの値と
System.out.println(mc[i].getValue()); // ここの値が一緒になる
}
タスケテ キヴンヌ
0243デフォルトの名無しさん
NGNG> 新しくオブジェクトを入れたときに前のオブジェクトまで連動して値が変わってしまいます。
文脈から察するに
if (i != 0) System.out.print(mc[i-1].getValue() + " ");
ではないのか?
0244デフォルトの名無しさん
NGNGぐはっ!
カキコミスです。
ソース上はそうなっていますです
0245242
NGNGMyClass[] mc = new MyClass[3];
int wk[3];
for (int i=0; i<mc.length; i++) {
mc[i] = getMyclass();
wk[i] = i;
if (i != 0) System.out.print(mc[i-1].getValue() + " "); // ここの値と
System.out.println(mc[i].getValue()); // ここの値が一緒になる
if (i != 0) System.out.print(wk[i] + " "); // ここの値と
System.out.println(wk[i]); // ここの値は異なる
}
と、なっています
0246デフォルトの名無しさん
NGNGじゃぁ getMyclass() が同じインスタンスを返しているのだろう。
↓のコードを入れて見れ。
if(i != 0 && mc[i] == mc[i-1]){
System.out.println("同じインスタンス");
}
0247242
NGNG「同じインスタンス」は表示されませんでした・・・
ヽ(TДT)ノ
0248デフォルトの名無しさん
NGNGじゃあ getValue() が同じ値を返すようなインスタンスを getMyclass() が
返しているのだろう。てかそもそも getMyclass() ってなにやってんの?
0249デフォルトの名無しさん
NGNGシングルトン…だったら、>>247にはならんよな。
0250242
NGNGいろいろ加工してプロパティに保存するクラスです
class MyClass {
private static int prValue;
public static int getValue(){return prValue;}
public static void setValue(String str) {
//いろいろなしょり
}
}
大雑把に、こんな感じです。
0251デフォルトの名無しさん
NGNGプ
0252デフォルトの名無しさん
NGNG貴様。eclipseにコピペして実験してみた俺が馬鹿みたいじゃないか
とりあえず動かしたいなら>>250のstaticを全部外せ
本でも読んでstaticの勉強しろ
ついでに何でstaticをつけたのか教えてくれ
■ このスレッドは過去ログ倉庫に格納されています