トップページ⇒tech
982コメント338KB

ネタ心者歓迎!今更ながらにJava相談室 その4

■ このスレッドは過去ログ倉庫に格納されています
00011NGNG
                        
 || ̄ ̄|   ∧_∧
 ||Java|  (     )   ∧∧    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ||__|  ( ○  )  (   ) < 俺達の旅はここから始まる。
   ||    │ |  │   /  |    \___________
((二二)) .(_(__)〜(___ノ

( ゚Д゚) < カキコする前に>>2-10をチェックしとけゴルァ!!
>>2 過去スレの一覧
>>3 Javaの基礎と よくある質問 (初心者はここをチェック!)
>>4 Java関連スレいろいろ
>>5 Javaを撲滅させたい方、死滅を心配してる方、Cとの違いを知りたい方はこちらへ
* 諸般の事情により、リンクがずれる事もあります。
0360デフォルトの名無しさんNGNG
WebSphere自体が文字コードの処理をやってくれてるはず。
弄ると逆にうまくいかない。
Tomcatだと自分でコーディングしないといけないけどね。
0361デフォルトの名無しさんNGNG
JDKでコンパイルして、コンパイルエラーになると
エラー個所のソースの行数を表示してくれますよね。
Antを使ってコンパイルすると、この行数が表示されなく
なってしまう(build.xmlの設定次第なのでしょうが)のですが、
エラー時にソースの行数が表示されるのは、どのような条件の時
なのでしょうか?
0362332NGNG
>>353
技術支援業務ってなんかかっこいいな。コンサルみたいなもんか。
いまだに、コボラーを飼ってる会社って凄いなあ。
プロジェクトは失敗する、に5000DIVISION!
0363 NGNG

>>356
それはJava Scriptですか?
0364デフォルトの名無しさんNGNG
J2EE1.3のJMSやJTAを業務システム開発で使ってる人って、います?
面白そうなんだけど、仕事で使うとなるとコンセンサス得るのが
大変そうな気がしまして…
0365 NGNG
Jなんとかって3文字のは嫌いだ。
良くある方法に名前つけちゃって、肥大化したライブラリなぞ見る気に
ならない。
0366デフォルトの名無しさんNGNG
JCB
JRA
JFK
0367デフォルトの名無しさんNGNG
最後のは J.F.K. だ
0368デフォルトの名無しさんNGNG
>>365
アンタみたいな奴が、「そんなの簡単そうだから自分で作る」とか
言い出して、独り善がりで間抜けなライブラリを生み出すおろかな
行為が、日本では多く見られます。

ウチの上司もソレなんだよ…なんでだろうね?糞上司のオナニー
ライブラリなんか保守していくのやだぞ、まじで。
0369 NGNG
>>368
sunのことかな?
0370 NGNG
メッセージのAPIにネットトランザクションのAPIか
おめでてーな。
俺ならメソッド3つか4つで終わるな。
つうかメッセージの方はいちいちAPI作らんわ。
0371 NGNG
あ、死滅スレと間違えてたり・・・。ゴメンネ
0372デフォルトの名無しさんNGNG
>>370
どうやるの?
Publish-Subsclibeモデルだの2フェーズコミットだのを?
0373 NGNG
んなものは必要ない。
グローバルなメッセージプールとロックとメッセージ送るのと
受けてなんか起動するメソッドあれば十分。
0374デフォルトの名無しさんNGNG
かくして壮大な車輪の再発明は続く、、、。
0375デフォルトの名無しさんNGNG
>>356

String str = request.getParameter( "text" );
if(request.getCharacterEncoding() == null){
  isvalid = new String( str.getBytes( "8859_1" ), "JISAutoDetect" );
}

多分これで Tomcat も WebSphere も通るコードになる。サーブレットエンジンが適切な
文字エンコーディングを認識できていれば文字コード変換しなくてもよいということ。
0376デフォルトの名無しさんNGNG
ちょっと手が空いたので楽しみにしてた Struts のフレームワークを使ってみたら
俺らとその周辺で散々再発明しつくされたされたフレームワークでやんの。
俺が仕事で JDK1.1.6 の頃作ったヤツよりヘボいフレームワークだったよ。がっかり。
0377デフォルトの名無しさんNGNG
へぇぇぇ、すごいすごぉい!
0378デフォルトの名無しさんNGNG
マウスをクリックした時、mousePressed, mousedReleased, mousedClickedは
どのような順番で呼び出されるんですか?
0379デフォルトの名無しさんNGNG
>>378
自分の手でやっても
0380デフォルトの名無しさんNGNG
隣のプロジェクト、IBM-MQモドキを再発明している途中です。
ソース見たら、間抜けきわまるライブラリでした。本気で売る
つもりなのかな?
0381デフォルトの名無しさんNGNG
>>373
その程度の事ならRMIでそのままやるだけじゃん。メソッド作るまでもない。
(つうか、それ用のメソッド作ってる人はアホだと思う。)
その上の層をいちいち自分で実装するのか、ライブラリにして標準化して
おくのかの差でしょ。
0382デフォルトの名無しさんNGNG
JMSって、JDBCみたいな単なるインターフェイス定義でしょ?
実装はIBM-MQとかで、そういう商品に対するブリッジドライバが提供される
だけだと思ってたんだけど、違うのかな?
0383デフォルトの名無しさんNGNG
アプレットで、AWTのボタンを使用しています。
Button button1 = new Button("ちんぽ");
といった感じで、ボタンに文字列を表示させてます。

普通にIEで実行(標準の古い規格のJVM)すると、ちゃんと表示されていました。

しかし、昨日JavaPlug-in(1.3)を入れたら(Java2Dもやりたいので)、
ボタンの文字が ロロロ のように、四角に化けてしまいました。
この化けかたって、UNICODE<->SJIS間の化け方だと思うのですが、
なぜPlug-inを入れただけでこんなになってしまうのでしょうか?
Sunのfaqとか見てもいまいちわかんないし・・・

しかし、Javaplug-in入れたとたんに、いきなり動作が重くなったんだけど・・・
こんなもんなの?
0384デフォルトの名無しさんNGNG
>>383
最新のJavaPlug-inは、Appletを感知した時になにかのデーモンを立ち上げる
ようになっているようなので、ソレの起動に時間が掛かってるとおもわれます。
タスクトレイに変なのがでるでしょ?2回目起動からはそんなに遅くないと思う
んだけど。

マシンのロケールが日本語になってないと、画面表示のときにUNICODE→
SJISエンコードしてくれないよ。
0385383NGNG
>>384
立ち上げもそうなんだけど、
実行中も重くなっちゃったんだよね。
例えば、文字のスクロールとかさせてるんだけど、前はいつでもスムーズだったのに、
plug-in入れてからは、ちょっとスクロールバー動かしたりすると
ガクガクしちゃったり・・・

ロケールは、見直してみます。
JVMの設定?
0386 NGNG
>>383
まちがって英語版のプラグイン入れてるからだよ。
International版いれればOK。
0387 NGNG
↓ここにInternational版もある。
java.sun.com/j2se/1.3/ja/jre/download-windows.html
0388デフォルトの名無しさんNGNG
RunnableとThreadの違いは何?
0389デフォルトの名無しさんNGNG
>>388
クラスとインターフェースの違い。
Runnableのほうが応用が利く。
0390383NGNG
international版いれて解決しました
ありがとう

これのサイレントインストールって、サーバー側にissファイルを置いておくと、
アクセスした人はなにも操作しないで、勝手にインストールしてくれるのですか?
それは違う?
0391デフォルトの名無しさんNGNG
Jpegを読み込みたく、下記のようなものを作ったのですが
小さいサイズのものは読めるのですが
大きいサイズ(10M程度)のものがOutOfMemoryが出てしまいます
なにか、回避策はありますか?

private BufferedImage getImage( InputStream inf ){
  JPEGImageDecoder id = null;
BufferedImage inbuf = null;
  //画像の読み込み
try {
id = JPEGCodec.createJPEGDecoder( inf );
//BufferdImageへの変換
inbuf = id.decodeAsBufferedImage();
} catch ( Exception ex ) {
ex.printStackTrace();
}
return inbuf;
}
0392388NGNG
以下はあるプログラムの一部ですが、バグがあるらしく
Human Remove!!
と表示されません。何でですか?
ちなみに、vec_time, vec_planの要素数は同じです。
エラーメッセージは
java.util.NoSuchElementException
at java.util.Vector.firstElement(Unknown Source)
at (クラス名).run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
です。

public void run(){
Integer now, goal;
Integer wait;

try {
do {
wait = (Integer)vec_time.firstElement();
vec_time.removeElementAt(0);
now = (Integer)vec_plan.firstElement();
vec_plan.removeElementAt(0);
goal = (Integer)vec_plan.firstElement();
ev.set_now(now, goal);
th.sleep(wait.intValue());
}while(vec_plan.size() != 1);
System.out.println("Human Remove!!");
th.sleep(3000);
}
catch(InterruptedException e) {
System.out.println(e);
}
}
0393デフォルトの名無しさんNGNG
>391
-Xmxオプションつけて実行すれば最大メモリ使用量増やせるよ

java -Xmx128m Hoge
とか
0394デフォルトの名無しさんNGNG
removeしたらelementが無くなったに1票
0395393NGNG
>>391
あんがとです、出来ました
0396391NGNG
ぐはぁ
↑間違えた

>>393
ありがと。
0397デフォルトの名無しさんNGNG
>392
while(vec_plain.size() > 1) {
//...
}
て書き直せばよいかもね
0398デフォルトの名無しさんNGNG
StringのメソッドindexOf(String s, index i)ってあるじゃないですか。
これをsを大文字小文字無視でやりたいんですけど、どうしたらよいでしょう?
0399  NGNG
一度コピーして全部大文字か小文字に変換せよ。
0400デフォルトの名無しさんNGNG
小文字だとドイツ語のエスツェットが正しく比較できない。大文字に変換せよ。
0401***********NGNG
リフレクションAPIを使ってprivateなFieldへのアクセスしたいんだけど
上手く出来なくて・・・。
プログラム全体はこれです。

import java.lang.reflect.*;
import java.security.*;

public class AccessPri {
private int x = 32;
public AccessPri(){}
public static void main(String[] args){
try{
Class cls = Class.forName("AccessPri");
Field[] fields = cls.getDeclaredFields();
Constructor c = cls.getConstructor(null);
Object object = c.newInstance(null);
for(int i=0; i<fields.length; i++){
MyAction m = new MyAction(fields[i],object);
AccessController.doPrivileged(m);
System.out.println(m.get().toString());
}
}catch(Exception e){e.printStackTrace();}
}
}
class MyAction implements PrivilegedAction {
Field field;
Object object,rturn;
public MyAction(Field f,Object obj){
field = f;
object = obj;
}
public Object run(){
try{
rturn = field.get(object);
return rturn;
}catch(IllegalAccessException e){e.printStackTrace();return null;}
}
public Object get(){
return rturn;
}
}

実行するとField.get(Object)の所で
IllegalAccessException
がどうしても出ちゃう・・・。
これじゃダメなの?
0402デフォルトの名無しさんNGNG
原則としてprivateなフィールドには触れないよ
http://java.sun.com/j2se/1.3/ja/docs/ja/api/java/lang/reflect/Field.html#get(java.lang.Object)
0403***********NGNG
原則以外にアクセスできるらしいと・・・
http://www.gimlay.org/~javafaq/S031.html
やり方書いて欲しかった・・・。
0404デフォルトの名無しさんNGNG
>>403
見たけどちゃんと書いてあるよ…

まぁ読んで意味わからない人は
使わない方が良いと思うけど。
0405デフォルトの名無しさんNGNG
久しぶりに先行者見たらディテールがきれいになってパワーアップしてるみた

http://mydomain9.justnet.ne.jp/~hinden5/senkousha/gamesnow2.html
0406 NGNG
>>405
作成者自作自演
0407デフォルトの名無しさんNGNG
>>404
確かに俺は使いたくないよ・・・。
でも先輩が
「取ってくる事出来るんでしょ、じゃあ、とって来て!」
って・・・。
しかも期限が来週・・・。
お願いします。
さっき書いたプログラムでどこがいけないか教えて!
0408 NGNG
>AccessController と PrivilegedAction を使用すればできますが...。

0409デフォルトの名無しさんNGNG
>>408
使い方は>>401でいいんですか?どこか間違ってますか?
0410デフォルトの名無しさんNGNG
SecurityManagerをリインストールしちまえ。
ReflectPermissionをノーチェックにしてしまえばなんでもし放題。
0411410NGNG
>>407
仕事でそんなことさせるような先輩はぶち殺して首にしておくのが
最良の解決策と思われ。
0412401NGNG
>>411
確かにそれが最良w
privateにアクセスするのは
やはりあまり良くないし。
普通 public だけで十分だよ。
SecurityManagerをいじるってのは
自分のPCでしか使えないから
私が求めるのとは少し違うかな?
最終兵器はサポート外かな?
でも誰か知ってたらお願い。
0413デフォルトの名無しさんNGNG
>>普通 public だけで十分だよ。
アクセスメソッド書けよ、
とツッコミ入れてる原理主義者が何人かいると思われ。
0414410NGNG
>>412
System#setSecurityManagerで、いかがわしい?自作SecurityManagerサブクラスを
インストールしてしまうことが可能だよ。ブートストラップ位置自分で決められるん
でしょ?アプリケーションサーバとかじゃなければどこでも可能だよ。可能なんだけど、
やろうとは思わんが。
0415410NGNG
privateにアクセスするのが悪いんじゃなくて、
そんな必要があるような設計のクラスが存在することがイカレテル。

だれがそのクラスをつくったのか?何でアクセスする必要があるのか?
理由を記述せよ。
0416401NGNG
あるクラス(なんでもいい)に値を変えてメソッドを動かして
仕様通りに動いているか確認するのを作ってます。
確認するのにprivateの値を見れたら
確認がしやすくなるという理由により
privateなFieldにアクセスしたいのです。
その方法をきぼんぬ。
0417410NGNG
>>416
ああ、単体試験用ね。じゃあ、仕方ないね。

起動オプション-Djava.security.policy=ファイル名

で、AllPermissionを許すPolicyファイル食わせるか、mainメソッドの入り口で

System.setSecurityManager(new SecurityManager(){
 public void checkPermission(Permission p)throws SecurityException{
  return;
 }
});
とやって、パミッションチェックなしのSecurityManagerインストールしちまえ。
0418デフォルトの名無しさんNGNG
>>417
410じゃないんだけどさ、
試してみたけど、ダメっぽいんだけど。

------------ AllPermission.policy ---------
grant {
 permission java.security.AllPermission;
};
-------------------------------------------
で
java -Djava.security.policy=AllPermission.policy クラス名
ってやったけど Field介して private フィールドへのアクセスすると
IllegalAccessException 食らうっす。
setSecurityManagaerもやったけど。
J2SE 1.3.1_02 と J2SE 1.4 と IBM の JDK 1.3 で全滅。

なんか手順間違ったかな?
410の人は出来た?
0419ななしNGNG
相談じゃねえんだ。提案だ、聞いてくれ。

逝った瞬間にペニスが破裂していた......そんな感覚の
ORB、「HORB」を使ってみてくれ。
http://horb.etl.go.jp/horb-j/
0420デフォルトの名無しさんNGNG
>>413は本当は何について話しているのかまったくわからないのに
話に参加したくてたまらないSヨですか?
0421401NGNG
こっちも出来ない・・・。
JDK1.3と1.2とJ2SE1.3でやったけど、
アクセスの所で
IllegalAccessExceptionが出ちゃう・・。
0422デフォルトの名無しさんNGNG
>>419
オレは使い始めているんだが、
申し訳ないがその例えの意味するところが全然分からない。

すまんな。
0423デフォルトの名無しさんNGNG

Windows XP で、JDK1.3 と JRE を入れて使っています。

IE6.0 で、JAVA アプレットのページを見ると、
JAVA 仮想マシンをダウンロードするようにいわれます。

ここまではよいのですが、このとき、
仮想マシンを DL しなければならないのしょうか?

それとも既に入ってる JDK や JRE を使って、
XP+IE6 でも Java アプレットを見れるようにできるのでしょうか。

(あるいは、そもそもスレ違いだと思うので
 どこで聞いたらいいか教えてください・・・)
0424デフォルトの名無しさんNGNG
>>423
JREが最新のモノ (1.3.1_02)であれば
コントロールパネルから
Java Plug-in 1.3.1_02
を選択、
基本->Java Plug-in の有効化をチェック
ブラウザ->Microsoft Internet Explorer をチェック
で有効にならんか?
出来ない場合はもっと詳しい人に聞いてください。
0425デフォルトの名無しさんNGNG
あと、ブラウザがどのJavaプラグインを許してるかだよね。
調べるよりDLした方が速かったり・・・。
0426デフォルトの名無しさんNGNG
mozillaの場合は
jre/bin/NPOJI610.dll
を
mozilla/bin/plugin/
にコピーしたら動いた。
0427デフォルトの名無しさんNGNG
んんん?難しい事する必要はないと思うが…

import java.lang.reflect.*;
import java.security.*;

class TestClass{
 private Integer val = new Integer(10);
}

public class TestReflect{
 public static void main(String args[])throws Exception{

  Class cls = TestClass.class;
  Field fld = cls.getDeclaredField("val");
  fld.setAccessible(true);
  System.out.println(fld.get(new TestClass()));
 }
}
0428427NGNG
fld.setAccesible(true)するのに、

java.lang.reflect.ReflectPermission "suppressAccessChecks"

の許可が必要らしい。SecurityManagerがインストールされていないなら
気にしなくていいようだけど…
0429418NGNG
>>427
できました。感謝。
setSecurityManager しなくてもいーのか…
0430418NGNG
しっかし、こんなに簡単にアクセスできちゃっていーんだろうか?
ちょっと不安。とか思う。
JavaFAQ の情報は…?
JDK 1.2時代の奴なのか?
でも 421で JDK1.2で失敗してるらしーしなぁ…
0431401NGNG
>>427
出来たよ〜。良かった〜w。
これで先輩に怒られない。w
マジでありがとう!
でも簡単にできてびっくりしてる。w
0432423NGNG
>>424-426
ありがとうございます。

>>424
使っている JRE は 1.3.0_c で、これだと古いですね。
「ブラウザ->Microsoft Internet Explorer をチェック」
というのがありません。

>>425
ダイアルアップ接続なもので、DL はためらっていました。


まあ、アプレット見れないとヤフオクの「詳細残り時間」が
見れないで困る程度なのでしばらくはこのままで、
折を見て最新の JRE を DL する方向で考えたいと思います。
どうもありがとうございました。
0433デフォルトの名無しさんNGNG
>>432
JavaWorldとかで、JDK1.3の最新版がCDでついてくる奴買ったら?
JDKにJREついてくるから。
0434デフォルトの名無しさんNGNG
>>433
423はJavaプログラマじゃないと思われ。だからJavaWorldは買わないと思う。
Java相談室であってJavaプログラミング相談室じゃないから、
こういった質問もありだと思うけど。
0435デフォルトの名無しさんNGNG
でも、ム板なんですけど、いちよう。。。
0436デフォルトの名無しさんNGNG
>Java相談室であってJavaプログラミング相談室じゃないから

アフォ発見
0437デフォルトの名無しさんNGNG
タイプセーフenumパターンってどうなの?
0438デフォルトの名無しさんNGNG
ファイナライザガーディアンって強そう
0439デフォルトの名無しさんNGNG
なんかFFに出てきそう。
0440デフォルトの名無しさんNGNG
>>426タン
MozillaでアプレットみられるようになったYo!
あんた神! thanks!!
0441391NGNG
Graphics2D#scale( )で画像のサイズを変更したいのだが
アスペクト比を保持してサイズ変更は出来んもんかのぉ
算数苦手なんだよなぁ
誰か、やり方教えてちょ
0442デフォルトの名無しさんNGNG
appletで、外部フォントを使用したいので、sunのドキュメントを参考に、
次のようにしました。
「xxx.xxx.xxx.xxx/xxx/」は、applet本体が置いてあるサーバーの場所です
そこにフォントファイル .ttfも置いてあります。

try{
 URL url = new URL("http://xxx.xxx.xxx.xxx/xxx/giko.ttf");
 InputStream is = url.openStream();
 testfont = Font.createFont(Font.TRUETYPE_FONT, is);
} catch( Exception e ){}

そしたら、createFontの段階で、
java.security.AccessControlException: access denied (java.net.
SocketPermission xxx.xxx.xxx.xxx resolve)
とエラーが発生してしまいました。

なにが悪いのかわかりません。
サーバーの設定関係が原因なのでしょうか?

サーバーは、winNT+IIS+JRUN(他にサーブレットも使用しているので)
です。
appletは、win2000+java plug-in(最新)を組み込んだIE6で
実行しています。
0443デフォルトの名無しさんNGNG
>>442
Applet.getCodeBase() とか
Applet.getDocumentBase() とか使ってもダメ?
0444 NGNG
サーバーの設定関係が原因なのでしょう。

0445デフォルトの名無しさんNGNG
Windowsでlook&feelをAquaにすることはできるのですか?
できるのなら誰か教えてください.
0446デフォルトの名無しさんNGNG
アポーが意匠権を行使したためマクOS以外でマクのLock&Feelは使えません。
Swingのβの頃まではマク風Look&Feel(旧)もついていたんだけどね。
0447デフォルトの名無しさんNGNG
>>445 こんなのみつけた
SkinLF
ttp://www.l2fprod.com/software/index.html
0448デフォルトの名無しさんNGNG
例えばあるボタンをクリックする。
そしたらカーソルがある座標に移動する。
ということをやりたいんだけど、どうしたらいい?
0449デフォルトの名無しさんNGNG
>>448
ロボットクラス使ってみるとか。
0450デフォルトの名無しさんNGNG
JPanelの上にawtの部品をおいた場合ってダブルバッファの恩恵はうけられるんでしょうか?
0451デフォルトの名無しさんNGNG
>>450
JPanelの上にAWTの部品なんか置くな。バグの元。
ダブルバッファリングどころかコンポーネントの重ね合わせの描画に
失敗するようになる。

ちなみに、Swingはコンポーネントがデフォルトでダブルバッファリング
してる。AWTはしてない。
0452デフォルトの名無しさんNGNG
javaの軽いエディタでおすすめの教えてください。
0453450NGNG
>>451
そうでしたか。
ダブルバッファリングは子コンポーネントも恩恵得られる訳じゃないのですね。
要はこれが知りたかったんです。
0454448NGNG
>449
Robotでやってみたら、移動した。
これってスクリーンの座標に飛んでくんだね。
コンポーネント上の指定した座標に行く場合はどうしたらいいんでしょう?

例えばフレームがあって、その上方にボタンがある。
それを押したらカーソルがフレームの中心に移動する。
フレームがスクリーン上のどこにあるに関わらず。
そういうのやりたいんだが。
0455デフォルトの名無しさんNGNG
ドキュメント
http://java.sun.com/j2se/1.3/ja/docs/ja/index.html

APIマニュアル
http://java.sun.com/j2se/1.3/ja/docs/ja/api/index.html

iモードAPI,マニュアル
http://www.nttdocomo.co.jp/p_s/imode/
の作ろうimodeコンテンツ

開発ツール
http://www.vector.co.jp/soft/win95/prog/se153698.html

Javaの全てがわかるページ
http://home.catv.ne.jp/dd/chiba/ken/Java/JavaMain.html

iアプリのテクニック
http://www.atmarkit.co.jp/fmobile/rensai/doja07/doja07.html
0456449NGNG
>>454
そのフレームの中心の座標ってのはわかってるんだよね。
そしたらSwingUtilitiesのconvertPointToScreenを使って
コンポーネント座標系からスクリーンの座標系に変換して
あとはロボットで移動でいけると思う。
0457448=454NGNG
>456
ありがとう。やってみる。
0458デフォルトの名無しさんNGNG
どなたか教えてください。
JPopupMenuで項目を選択->クリックしたときに、同時に
そのコンポーネントのmouseClickedが反応してしまうんですが、
これを解決するにはどうすればよいのでしょう?
0459デフォルトの名無しさんNGNG
おしえて。
JPEGエンコーダーで、Windowのイメージをファイルに落としたら
白黒になっちゃった。 カラーにするにはどうするの?
0460デフォルトの名無しさんNGNG
1.4でたにょー
■ このスレッドは過去ログ倉庫に格納されています