【初心者】Java質問・相談スレッド62【大歓迎】
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
05/02/14 23:02:22質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/
これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、
wikiからのリンクをおたどりください。
以下のエラーが表示されて、途方にくれているあなたは、下のページへ。
「コマンドまたはファイル名が違います」
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
「Exception in thread "main" java.lang.NoClassDefFoundError: 」
http://www.wikiroom.com/java/?path,classpath
前スレッド
【初心者】Java質問・相談スレッド61【大歓迎】
http://pc5.2ch.net/test/read.cgi/tech/1107056382/
/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */
また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝なく存じます。
JavaScriptの質問は、ここでは受け付けていません。
Web製作板をご利用ください。http://pc5.2ch.net/hp/
次スレは>>980がお願いします
0002古代帝國富士皇朝総帥・伯壬旭
05/02/14 23:15:27さあ、皆の者質問するがいい!!!
0003これも追加しといて〜
05/02/14 23:18:20「単独で実行できるファイル」を作るには
a)ttp://jaist.dl.sourceforge.net/sourceforge/jsmooth/jsmooth-setup-0.9.7.exe
これをDL&インストールして起動後、対象とするJarを選択する。
b)バッチファイルを作って、バッチファイルにコマンドラインと同じことを記述する
c)jarファイルにMain-Classを指定したmanifestファイルを追加する(Windowsならダブルクリックで起動可)
d)c)で作成したjarに対するショートカットファイルを作って、アイコン設定する。
jarに関する文献↓
ttp://java.sun.com/j2se/1.4/ja/docs/ja/guide/jar/jar.html#JAR%20Manifest
0004デフォルトの名無しさん
05/02/15 00:47:28いや、バッチファイルだとjavaw使ってもプログラム実行中
DOS窓出っぱなしなのが漏れ的にはイヤソなので。
ちなみに
> type hoge.vbs
Dim shell
Set shell = WScript.CreateObject("WScript.Shell")
shell.Run "javaw -jar hoge.jar", 0, False
でhoge.jar起動。
0005デフォルトの名無しさん
05/02/15 01:13:25d)をちょっと変えて、
%windir%\system32\javaw.exe -cp hoge.jar MainClass
というショートカットを作り、作業フォルダを空にして、hoge.jarと同じ場所に置けば、
manifestファイル不要。アイコン設定可能。
98系はどうなるか知らん。
0006デフォルトの名無しさん
05/02/15 01:36:38Frameクラスを継承しないで解答欄には以下のように書きました(略してあります)
Frame f = new Frame("aaaa") ;
f.show() ;
この問題の場合、フレームクラスを継承して
public class xxxx extends Frame{
public FrameTest(){} }
public static void main(String args[]) {
new FrameTest().show() ;
}
としなければ間違いになるのでしょうか?
"使って"という言い回しが良く分かりません。
教えてください。
0007デフォルトの名無しさん
05/02/15 01:53:25継承した場合でも、継承せずにFrameクラスをそのまま使ったとしても、使ったと言えると思う。
俺が出題者なら別にどっちでもよいと思う。
ただ、
>問題文に"フレームクラスを使って作成せよ"
ここだけ見ただけの話だからな。
「Frameクラスの〜メソッドをオーバーライドして・・・」
とか問題文にあったら継承してないとダメ。
0009デフォルトの名無しさん
05/02/15 02:24:12正解になるとまで入っていないだろうが。
問題文さらさないとなんとも言えん。
0010デフォルトの名無しさん
05/02/15 09:33:21JDKを複数入れてる人は %windir%\system32 の java.exe と javaw.exe を消してる可能性が高い。
0011デフォルトの名無しさん
05/02/15 09:38:54確かに。俺も消してる。pathから勝手に探すように記述できればいいのだが。
0012デフォルトの名無しさん
05/02/15 10:49:30掛けたいのですがどういう風にすれば良いのでしょうか?
入力桁数の制限は掛けれたんですが・・・
よろしくおねがいします。
0013デフォルトの名無しさん
05/02/15 10:53:20http://pc5.2ch.net/test/read.cgi/tech/1068349883/
0014デフォルトの名無しさん
05/02/15 11:01:300015デフォルトの名無しさん
05/02/15 11:07:59即レスどうもっす。
まだまだ右も左もよく判ってないような奴なんで、
こちらで質問した方が良いかな…って。
敷居が高そうなんで(;^_^A アセアセ・・・
0017デフォルトの名無しさん
05/02/15 11:20:350018デフォルトの名無しさん
05/02/15 11:56:07addVerifyListener.
0019デフォルトの名無しさん
05/02/15 14:35:56携帯で使うjavaとパソコンで使うjavaで書き方はかわりますか?
パソコンでjava使えたら携帯で使う時も同じプログラム使えますか?
0020デフォルトの名無しさん
05/02/15 14:39:46書き方は変わらない。
同じプログラムは使えない場合が多い。
0021デフォルトの名無しさん
05/02/15 14:42:47文法や、基本的なクラスは、同じと言えるけど、
できあがったプログラムの全く同じものが動くとは思わないほうが良い。
ソースの記述は同じでも、配布の仕方とかは全然違う。
環境に依存しないような単なるロジック程度なら使える。
0022デフォルトの名無しさん
05/02/15 14:43:12なるほど、どうもありがとうございました!!
0024デフォルトの名無しさん
05/02/15 14:47:04とても丁寧にありがとうございます。
携帯とパソコンでは携帯はマウスがないし、とか
そういう問題で同じようにはできないっていうことなのでしょうか?
パソコンで使うjavaが使える人が
携帯で使うjavaを記述し動作させることは
さほど困難なことではないのでしょうか?
無知でごめんなさい・・・。
0025デフォルトの名無しさん
05/02/15 14:48:54ごめんなさい・・・w
送信してからレス読んだもので。
0026名前は開発中のものです。
05/02/15 15:10:220027デフォルトの名無しさん
05/02/15 15:39:28> パソコンで使うjavaが使える人が
> 携帯で使うjavaを記述し動作させることは
> さほど困難なことではないのでしょうか?
容量制限がでかいしオブジェクト指向しずらいしJakarta使えない
から携帯電話Java開発は嫌い。
漏れはDB駆使したサーバサイト開発大好き
0028デフォルトの名無しさん
05/02/15 15:39:340029デフォルトの名無しさん
05/02/15 15:40:040030デフォルトの名無しさん
05/02/15 15:46:03いろんな縛りでやりづらくなるっていう感じですか・・・?
携帯電話javaは面倒が多いということなのですかね・・・。
0031デフォルトの名無しさん
05/02/15 15:49:05「J2ME SDK DoJa」あたりでぐぐって、実際にAPIリファレンスと開発環境を落として
いじってみれば、なんとなくどんなものかは感じられると思う。
公式ページに容量の制限とかも記述されてるし。
DoJaでぐぐったらドコモが一番上じゃなくて少しびっくりした。
0032デフォルトの名無しさん
05/02/15 15:55:07早速ググって見ます。
本当に親切で嬉しい・・・。
とにかく調べてみます!!本当に本当にありがとうございました!
0033デフォルトの名無しさん
05/02/15 15:56:23携帯電話開発を頼まれるとJavaらしい仕事をしている気分に慣れないぞ。
変数の再利用ばかりする羽目になる。C時代のメモリ節約開発を思い出させる。
疲れるのでそんな仕事は逃げたほうがまし。
Vodafoneのメガアプリには期待しているんだけどね。
けど1MBでもまだまだ足りない気分だな。100MB程度あれば
携帯電話でクラス作り放題継承し放題例外処理使いたい放題外部API使いたい放題
デザインパターン使いたい放題
となることを期待しているのだが何年後のことだろうか。
0034デフォルトの名無しさん
05/02/15 16:14:14コーディングが嫌なんて贅沢すぎる。
昔は過酷な環境で1クロック1メモリを惜しんで組んだもんだよ。
制限された環境だからこそ、逆に燃える位の気概がなくてどうするのか。
最近のプログラマには職人気質が足りないね。
0035デフォルトの名無しさん
05/02/15 16:15:07そう遠くない未来だと思う。
ttp://www.wince.ne.jp/snap/cnBoard.asp?PID=856
の話題には驚かされた。でも、携帯にHDって壊れやすそうな希ガス。
どちらにしろ、あと数年はこのままなんだよね…。
0036デフォルトの名無しさん
05/02/15 16:16:020037デフォルトの名無しさん
05/02/15 20:45:35http://home.att.ne.jp/gold/naoki/AL2/frAL2jp.html
sort table をクリックしても画面に×印がでてappletの読み込みに
失敗してしまいます。ステータスバーには、sort table notinited と表示されます。
自分なりに調べて、IEのツール、オプション、詳細設定でJava2のチェックマーク
をはずしたりしたのですが、うまくいきません。
何かご存知の方いらっしゃいますか?
ちなみに当方の環境は、IBMのX40、winXP、IE6.0、
Java(TM) Plug-in: バージョン 1.4.1、JRE のバージョン 1.4.1 Classic VMです。
003837
05/02/15 20:47:290039デフォルトの名無しさん
05/02/15 20:50:08hostpot前のやつか
0040デフォルトの名無しさん
05/02/15 21:11:43コントロールパネルでは、アイコンにはIBMJavaPlugin
とあり、Wクリックすると、バージョン情報は
Java(TM)2 Runtine Environment,Standard Edition1.4.1
デフォルトの仮想マシンのバージョン1.4.1
Java(TM)Plug-in 1.4.1
となっています。
Sunの方でも調べたのですが、
http://forum.java.sun.com/thread.jspa?threadID=499482&messageID=2368828
似たような症状の方がいるようなのですが、まだ解決していないみたいです。
何か情報がありましたらアドバイスお願いいたします。
0041デフォルトの名無しさん
05/02/15 21:13:45JREに自社で手を加えたJITコンパイラを組み込んだVMのことをいう。
#俗にIBM JDKっていったら昔からこのVMが入っているやつのことをいった。
で、ClassicVMに対してJ9VMってのがあって、こっちは比較的最近
IBMのJDKに組み込まれた100%IBMオリジナルのVM。整数演算だったら
SunのHotspotよりも速いね。1.3.1の後期buildからJDKに含まれる
ようになったかな。-Xj9オプションをつけて起動するとこちらに
切り替わる。ただしJRE単体のパッケージには含まれていない。
0042デフォルトの名無しさん
05/02/15 22:01:33>>37のはSun純正でもエラーでとるで
0043デフォルトの名無しさん
05/02/15 22:14:16教えてください
Stringクラスのフィールドって
char value[]
int offset
int count
int hash
などありますよね(ソースで確認)
でもjavadoc見ても載って無いんです(Objectクラスにも載ってない)けど
これってどういうことですか?
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/lang/String.html#field_summary
0044デフォルトの名無しさん
05/02/15 22:30:53外にも、sunパッケージなんて全部載ってないんですよ。
0045デフォルトの名無しさん
05/02/15 22:42:262年で4倍だから6〜7年後には100MBは達成される
0047デフォルトの名無しさん
05/02/15 23:11:52MSのVMなら動く。
MSのVMでしか動作しないクソアプレットだということだ。
0048デフォルトの名無しさん
05/02/15 23:12:52え!?そうなの!?
private宣言のフィールドは載ってない、って勝手に思いこんでた
ソースコード確認してないからprivateなのかもわかんねーけど
0049デフォルトの名無しさん
05/02/15 23:13:05privateなフィールドで外部からアクセスできないからじゃないの?
アクセッサもないし。
0050デフォルトの名無しさん
05/02/15 23:13:39変数なんて知らなくてもメソッドがあるだろ?
とSunは言いたいんだろう
0051デフォルトの名無しさん
05/02/15 23:14:58違うだろ。
privateフィールドなんか載ってるわけない。
結構重要なStringであっても、誰も使えないし、載せる意味なし。
0052デフォルトの名無しさん
05/02/15 23:15:470053デフォルトの名無しさん
05/02/15 23:18:44ついでに言うと、「あんまし見て欲しくないな〜」なとこってこともある。
何も秘密主義とかいうことではなく、
「デバッグや機能追加で内容を変えても晒してなければ周知の必要がない」
→「晒してない部分は手を入れやすい」
という話。これが「カプセル化」(かなり乱暴なくくりで言ってるが)。
0054デフォルトの名無しさん
05/02/15 23:27:3744は大ウソですよ。
もともとpackage以下のメンバは、基本的にJavaDocには載せないのです。
ユーザーはそれを扱うべきではないからです。
0055デフォルトの名無しさん
05/02/15 23:32:06強引に論点を変えてないか?
0056デフォルトの名無しさん
05/02/15 23:40:17>>43のように喜んだとしても、次のバージョンにはそんなもの影も形もないかもしれんわな。
公開インターフェースが変わらない限り中身は変え放題だからな。
実際、Stringは1.4で大改変されてるしな。
lang.mathとかは1.3あたりで内部実装が結構変わってるんじゃなかったっけ。
005743
05/02/15 23:41:40privateは公開する必要ない・・・そっか(`・ω・´)言われて気づいたっす
javadocと照らしあいながら初めてデバックしてみての疑問でした
うす、うす
0058すみません
05/02/16 00:09:47Field Type Null Key Default Extra
*****************************************************
no varchar(20) PRI
a_name varchar(20) YES NULL
と定義している場合JAVAのソース上に
insert into hoge_table(no) values(12345);
は処理されるのに対して
insert into hoge_table(a_name) values('12345');
だと弾かれるのでしょうか?
JDBCに関連しての質問です。
0059デフォルトの名無しさん
05/02/16 00:20:34公開しないようにprivateにしているんだがな。
内部実装の詳細を外部に公開しないのはCの頃からかわらない。
ただシリアライズ可能なクラスの場合は
シリアル化するときに内部実装の詳細を外部に公開する必要があるので
privateなフィールドでもjavadocに載ってる。
0060デフォルトの名無しさん
05/02/16 00:21:54逆です
0061デフォルトの名無しさん
05/02/16 00:23:41主キーが Null になるのはダメだ。
0062すみません
05/02/16 07:13:19具体的いにはどの様に修正すれば、宜しいのでしょうか?
御伝授頂きたく。
0063デフォルトの名無しさん
05/02/16 08:56:28フィールドnoはNULL値が許されないように定義されているので、
INSERT文でなんらかの値が入るように指定する必要がある。
そのためには、適切な値をINSERT文で指定する。
または、フィールドnoの定義にAUTO_INCREMENTを追加して、
INSERT時に適当な値で埋めてくれるようにする。
これはJDBCじゃなくてMySQLの問題なので、板違い。これ以上はDB板いけ。
0064デフォルトの名無しさん
05/02/16 09:42:50普通のインターネットアドレスには送信できるのですが、何かわかるかたいらっしゃいましたらご教授願います。
0065デフォルトの名無しさん
05/02/16 09:49:340066デフォルトの名無しさん
05/02/16 09:49:42エラーメッセージを書かないのは釣り。
0067デフォルトの名無しさん
05/02/16 09:50:31全部は違わない
006864
05/02/16 10:12:46javax.mail.SendFailedException: Invalid Addresses;
nested exception is:
class com.sun.mail.smtp.SMTPAddressFailedException: 550 <"x.400形式のアドレス">... Cannot mail directly to files
at com.sun.mail.smtp.SMTPTransport.rcptTo(SMTPTransport.java:1130)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:525)
at javax.mail.Transport.send0(Transport.java:151)
at javax.mail.Transport.send(Transport.java:80)
以下のようなコードで実験しています。
Properties p = new Properties();
p.put("mail.smtp.host", "SMTP_HOST_NAME");
Session session = Session.getDefaultInstance(p, null);
MimeMessage mimeMessage = new MimeMessage(session);
mimeMessage.addFrom(InternetAddress.parse("送信元"));
mimeMessage.setRecipients(Message.RecipientType.TO,InternetAddress.parse("宛先"));
mimeMessage.setText("本文", "iso-2022-jp");
Transport.send(mimeMessage);
0069デフォルトの名無しさん
05/02/16 10:15:16Invalid Addresses とか
Cannot mail directly to files って書いてあるから分かりそうなもんだが
0070デフォルトの名無しさん
05/02/16 10:17:34他に使えるのあったらSMTP_HOST_NAMEを変えてみ
007164
05/02/16 10:35:06メールのシステムはExchangeサーバを使用していて、指定しているアドレスは、以下のような形式になっています。
/o=ドメイン名/ou=JAPAN/cn=Recipients/cn=ドメインアカウント名
SMTP_HOST_NAMEにプロキシサーバのアドレスを指定すると前述したエラーになります。
SMTP_HOST_NAMEにExchangeサーバを使用するとエラーは出ませんが、メールも届かないと言った状況です。
0072デフォルトの名無しさん
05/02/16 10:45:14Exchangeサーバ内のメールのルーティング追跡というのをしる
007364
05/02/16 10:59:44Exchangeサーバのログを見せてもらうことにします。
0074デフォルトの名無しさん
05/02/16 14:07:59現在、RedHat linuxのエンタープライズバージョンを使用しての開発を
やっているのですが、JDKをインストールする際のbinファイルとrpmファイル
では、JAVAのプログラムの挙動が変わってしまうのです。
内容としては、String#getBytes()メソッドを呼び出した場合の
デフォルトキャラクタセット文字列が異なるということなんですが、
rpmで入れた場合だとUSになってしまい、binだとEUC-JPなんです。
実は開発をbinでやり、ユーザはrpmでインストールしてしまって
判明したことなのですが、原因がどうしてなのかを報告する必要が
出てしまいました。
binとrpmの違いって他にもありそうな気がするのですが、どなたか
そういった情報をお持ちの方はいないですか?
0075デフォルトの名無しさん
05/02/16 14:19:47俺はわからんが、もっと環境を書くべきではないのか?
バージョンとか
007674
05/02/16 14:56:21そうですね。
もう少し、説明します。
JDKのバージョンは1.4.2_b28を使っています。
linuxに関しては日本の環境になるようにインストールしてあるのですが、
他のスクリプト等でlocaltimeを実行すると日本の時間が取得できています。
JDKのインストールは、オプションなしで実行していますので、こちらでの
指定が必要なのかもしれません。
binの場合、インストールのオプションに-localinstallというのを付けられるよう
ですが、binの挙動が想定通りなので、rpmにロケールを認識させられれば
いいのですが・・・
今は、JVMのそういった情報がどこに格納されているかを調べています。
java.util.prefsパッケージ配下にあるクラスからアクセスできる情報が怪しい
と睨んではいるのですが、まだ分からない状態です。
0077デフォルトの名無しさん
05/02/16 15:07:52クラスは既にJVMの上で動くことが前提だから関係ないかと。。。。
JDKインストールディレクトリ/jre/libにある、
ナンチャラ.properties あたりをのぞいてみたら?
0078デフォルトの名無しさん
05/02/16 15:08:59rpmならeraseしてbinからいれ直してみれば?
007974
05/02/16 15:20:02ありがとうございます。
そちらをチェックしてみます。
>>78
いえ、rpmとbinは違うっていう事象はこちらでも確認しました。
プログラムの修正でどちらでも動くようにはしたのですが、
取引先から、経緯報告(始末書とも言います)を求められていまして・・・
0080デフォルトの名無しさん
05/02/16 15:32:14LANGの設定は大丈夫なんだよね?
008174
05/02/16 15:44:12LANG=ja_JP.eucJP
となっています。
サーバ自体はいいのですが、なぜにデフォルトキャラクタセット文字列が
変わるのかを解明したいのです。
やっぱりJava VMの仕様書を紐解くしかないのかなあ。
今、さっきrpmをrpm2cpioで分解してみたのですが、ファイル構成は
binのものと変わらないですね・・・
0082デフォルトの名無しさん
05/02/16 16:14:49javaは実行ユーザのLANGを見てデフォルト決めるけど、本番環境はrootかwwwで実行しててLANG=cか未設定、開発環境は適当なユーザで実行しててLANGが設定してあるとかじゃねーの?
008374
05/02/16 16:20:20実行はどちらの環境でもtomcatユーザとなっています。
開発環境でもrpmで入れたものに関してはデフォルトが異なって
しまうため、インストール時の設定、あるいはJVMの起動時の設定
がパッケージによって異なっているのではないかと睨んでいるのですが・・・
0084デフォルトの名無しさん
05/02/16 16:24:54>デフォルトキャラクタセット文字列が異なるということなんですが、
rpmとbin、それぞれ、どうやって確認しているの?
当然、同じ確認方法なんだろうな?
008574
05/02/16 16:55:58こちらに関しては、String#getBytes()の挙動が変化することに
よって、確認しています。
また、System.getProperties()から取得できるパラメータの違いも
確認できました。
rpm:
key:[user.country] value:[US]
key:[file.encoding] value:[ANSI_X3.4-1968]
key:[user.language] value:[en]
bin:
key:[user.country] value:[JP]
key:[file.encoding] value:[EUC-JP-LINUX]
key:[user.language] value:[ja]
やはり、設定がずれていますね・・・
0086デフォルトの名無しさん
05/02/16 17:26:56違うという事実は分かった結果よりも、どうやって確認しているのかもっと情報をだせ。
なぜ違いが出るのか、分かる人がいるかもしれないじゃないか。
テストプログラム作って確認しているということだな。
そのプログラムは、rpmとbinで、それぞれ、どうやって動かしているの?
当然同じ動かしかただろうけど、tomcat上で動くものなのか?単なるjavaアプリケーションなのか?
0087デフォルトの名無しさん
05/02/16 17:28:05○違うという事実は分かった。 実行結果よりも、〜
008874
05/02/16 17:55:24情報が小出しになってしまっていてすいません。
確認はtomcat上のJSPを利用して確認しています。
rpmとbinでの切り替えはCLASSPATHの設定を変更する
ことによって行っています。
その際、tomcatの再起動も行っていますので、残るといったことは
ないはずです。
008974
05/02/16 17:58:08みなさん、いろいろとアドバイスありがとうございました。
また、顔を出しますので、今日は失礼します。
0090デフォルトの名無しさん
05/02/16 18:24:080091デフォルトの名無しさん
05/02/16 21:16:20なんでお前が始末書書いてんの?
0092デフォルトの名無しさん
05/02/16 21:31:43おまえみたいな奴が調子にのって
読みにくいソースコードをまき散らして
引き継ぎ人が多大な迷惑を受けるんだ。
はっきりいってウザイんだよ。
重複したコードが無駄に多すぎるわ
ゴミが多すぎるわ
余計な仕事を増やすな。くだらねえ読みにくいソースコードの
ために残業代も出ずに夜遅くまで残ってソースコードを解析する
苦労を考えろ。適切なアジャイル開発もできずにくだらんことでメモリが勿体なすぎると
抜かす奴は燃えるどころかハードコーディングだらけのスパゲティコードに
無駄な労働力を増やすだけの厚かましい存在だ。
最適化を後回しにすることもできない
設計能力もないデザインパターンも自動化ツールも使いこなせないCOBOLerの
ような考え方が古い人間は
迷惑だからこの業界から出て行け!!
0093デフォルトの名無しさん
05/02/16 21:35:42rpmを yum update
でアップグレード汁
0094デフォルトの名無しさん
05/02/16 21:36:56/etc/javaか
/usr/javaあたりに何か設定ファイルは無いか?
とりあえず文字コードはソースコードもコンパイルオプション指定も
UTF-8にしておけ
0095デフォルトの名無しさん
05/02/16 21:38:151.4.2_b28
このbは何を意味する?
ベータ版かと思ってしまう。
1.4.2_07または5.0_update1は入れないのか?
0096デフォルトの名無しさん
05/02/16 21:39:20export LANG=ja_JP.UTF-8
で上書きしたらどうなる?
0097デフォルトの名無しさん
05/02/16 21:41:18<meta>タグでの文字コードの指定は?
<%@ page %>タグだったかな? そこでの文字コード(charset)の指定は?
System.setProperty()で無理矢理プロパティ帰られない?
0098デフォルトの名無しさん
05/02/16 21:43:33そのTomcatはJakarta純正のか? Tomcatはrpmで入れたのか?
バイナリで入れたのか? makeして入れたのか?
JAVA_HOMEは設定しているか?
それともGNU絡みでGCJでコンパイルされたネイティブで動く
Fedora Coreに付属している不安定なTomcatか?
0099デフォルトの名無しさん
05/02/16 21:44:29まだまだ不安定だから。
0100デフォルトの名無しさん
05/02/16 22:02:36ところで、これってjre/lib/charsets.jarがクラスパスにない場合に似てるんだが、
自前で設定しているっていうクラスパスに間違いはない?
0101デフォルトの名無しさん
05/02/16 22:56:00確かに不安定だね
システム全体がハングアップ同然になることもある・・・
0102デフォルトの名無しさん
05/02/17 00:26:392.6.10-1.737_FC3 + Sun JDK 1.4.2_06-b03 で Tomcat 動かしているがすこぶる好調だ。
で、Tomcat の起動は init.d の起動スクリプトでやっているのだろ? tomcat ユーザの
.bashrc だか何だかで LANG 設定しても利かないから。
> rpmとbinでの切り替えはCLASSPATHの設定を変更することによって行っています。
PATH のことか?
なんかここで聞こうと思ったんだが忘れてしまったよ。
0103デフォルトの名無しさん
05/02/17 00:34:590104デフォルトの名無しさん
05/02/17 02:20:44というプログラムをJavaを使って作っているんですが、ボールが弧を描きながらゴールに入るとこがよくわかりません。
ifとかflagを使うと聞いたんですがどうすればいいですか?
0105デフォルトの名無しさん
05/02/17 03:32:28釣りとしか思えない内容だがマジレスすると
キミの今のレベルではここで答えてもわけがわからないだけだと思うよ。
一冊本でも読んで出直してきた方がいい。
0106デフォルトの名無しさん
05/02/17 07:00:44数学の教科書を開いて 2 次方程式について調べて見よう。
0107デフォルトの名無しさん
05/02/17 09:04:14物理の教科書も開かせて力学も調べさせないと
010874
05/02/17 09:46:02昨日は、早々に落ちてしまいすいませんでした。
>>90
現在、/usr/java/java2sdkをJAVA_HOMEに設定しています。
こちらはシンボリックリンクになっており、実体をbinとrpmとで
切り替えて、動作確認をしています。
>>91
いえ、rpmで入れるっていうのをマニュアルに書いてしまったので・・・
ですので、なぜ開発環境とずれるようなことを書いたのか、また、
この事象の原因は何かをまとめないといけないのです。
>>93 >>95
えっと、今回は正常動作させることはできているのですが、
rpmとbinの挙動の違いの根拠がどこにあるのかっていうことを
検証しないといけないんです。
010974
05/02/17 09:47:36*.propertiesでfindをかけたんですが、プロパティファイルではシステムに
存在していないようです。
ファイルは/usr/java/java2sdk以下にしか置いていないので、このディレクトリ
以下に何か存在するのだと思っているのですが・・・
>>96
動作は変わらないですね。
>>85で出したプロパティの値も、環境変数によって左右されないようです・・・
>>97
metaタグおよび、JSPの先頭で<%@ page contentType="text/html; charset=EUC-JP" %>
を指定してあります。
表示もStringのデータも問題ないのですが、getBytesでバイト変換した場合の挙動で
rpm版の場合のみ、マルチバイト文字が"?"に変換されてしまいます。
setPropertyでプロパティを変更した場合は、rpmとbinの挙動は同じになりました。
file.encodingの値を見ているようです。
>>98
Jakartaプロジェクト純正です。
こちらに関してはJakartaのHPにあったバイナリをそのまま配置して動作させています。
linuxはFedoraではなく、Enterprise版を使用しています。
011074
05/02/17 09:55:32CLASSPATH=$JAVA_HOME/li/tools.jar:$J2EE_HOME/lib/j2ee.jar
という指定になっています。
一度、charsets.jarを直接指定して、実験してみます。
>>102
シンボリックリンクの切り替えのことでした。
tomcatの起動スクリプトも自前で作っているのですが、環境変数として
LANGはexportしてないですね。
0111デフォルトの名無しさん
05/02/17 10:32:13>昨日は、早々に落ちてしまいすいませんでした。
この言い回し懐かしい。。。テレホ時代思い出した。
0112デフォルトの名無しさん
05/02/17 10:40:45そうだのう
ISDNで64Kbpsの時代だったなあ
それにしても、質問者は2chに似合わず、礼儀正しい人だのう
0113デフォルトの名無しさん
05/02/17 10:42:05この環境変数CLASSPATHはどこで記述しているの?
だいたい、Tomcat使うのに、環境変数CLASSPATHって、普通設定するもんなの?
俺は、Tomcatの起動スクリプトに任せてるけど。
大体は、Webアプリケーション単位でWEB-INF/libに置くか、
Tomcat全体に通したい場合は、common/libに放り込む。
#だからといって、rpmとbinでの違いになるかは知らんけど。
>こちらはシンボリックリンクになっており、実体をbinとrpmとで
>切り替えて、動作確認をしています。
その実体の中も比較してみたら?まずはファイルの有無単位で。
0114デフォルトの名無しさん
05/02/17 10:46:05・tomcatについているスクリプト使っている
・自作スクリプトで、classpath自分で通してorg.apache.catalina.startup.Bootstrapを起動している
0115デフォルトの名無しさん
05/02/17 10:54:12環境変数や-cpで指定するユーザクラスとは関係ないよ。
-X〜で上書きはできるけど。そういやちょっと昔のJREってcharsets.jar
が同梱されている国際版とされていないやつに分かれてたけど、
そういう話だったりして。
0116デフォルトの名無しさん
05/02/17 10:54:27両方とも
file.encoding:ANSI_X3.4-1968
user.country:US
user.language:en
になったぞ。
テストプログラムはこんなの
Properties p = System.getProperties();
for ( Iterator i = new TreeSet( p.keySet() ).iterator(); i.hasNext(); ) {
String key = (String)i.next();
System.out.print( key );
System.out.print( ":" );
System.out.println( p.getProperty( key ) );
}
011774
05/02/17 11:05:20環境変数はtomcatの起動スクリプト内に記述してあります。
実際の起動、終了は$TOMCAT_HOME/binにある、
startup.shとshutdown.shを環境変数設定後に呼び出しているだけです。
ファイルの有無のチェックは、これからやってみます。
>>115
そうだったんですね。
指定したことがなかったので、試してみましたが変化はなかったです。
>>116
わざわざありがとうございます。
テストプログラムは似たような感じですね。
116さんの結果では、もしかしてbinの方はインストール時の環境を
どこかで持ってしまうっていうことなんでしょうか?
私の場合、rootでLANG=ja_JP.eucJPでのインストールとなっています。
LANGを違う国に変更した場合の、挙動を見てみます。
011874
05/02/17 11:07:12起動スクリプトは以下のような感じです。
. /etc/rc.d/init.d/functions
export JAVA_HOME=/usr/java/j2sdk
export J2EE_HOME=/usr/java/j2sdkee
export CATALINA_HOME=/usr/local/jakarta/tomcat
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$J2EE_HOME/lib/j2ee.jar
export PATH=$PATH:$JAVA_HOME/bin:$J2EE_HOME/bin
case "$1" in
start)
echo "Starting tomcat"
$CATALINA_HOME/bin/startup.sh
sleep 10
;;
stop)
echo "Stopping tomcat"
$CATALINA_HOME/bin/shutdown.sh
echo
;;
restart)
$0 stop
$0 start
;;
esac
0119デフォルトの名無しさん
05/02/17 11:08:16binでインストールした際には、JARファイル何個かをcreatingしてたのでそうかも。
0120デフォルトの名無しさん
05/02/17 11:39:00application.xmlの書き方が良く分からない・・・。
0121デフォルトの名無しさん
05/02/17 11:45:56>>18さん
亀レスですいませんが、ありがとうございました。
0122U ◆CZtFsGiu0c
05/02/17 14:19:52application.xmlなんて今どき自力で書くようなもんじゃないと思うけど、
http://www.beasys.co.jp/e-docs/wls/docs81/programming/app_xml.html#1007302
こんなとこでどう?
012374
05/02/17 14:33:06ファイルの有無をdiff -rsでやってみました。
binの場合のみ、$JAVA_HOMEの直下に.systemPrefsという
ディレクトリが作成され、その下に.system.lockと.systemRootModFile
という二つの空ファイルが作成されていました。
他のファイルに関してはバイナリレベルでidenticalと表示されています。
>>116
実際にインストール時のログをファイルに取って、作成ファイルを
確認してみました。
jarファイルが作成されているようです。rpmでは、.packという拡張子で
ファイルが格納されており、それが展開されているだけではと思います。
これらのファイルもrpmとbinでは違いがありませんでした。
また、LANGをCとja_JP.eucJPにして、binを展開した場合のディレクトリ
およびファイルの比較をしてみましたが、こちらも違いがありませんでした・・・
そこで、rpm版で確認したのですが、rootになって環境変数を変更して、
挙動を確認してみました。
次にまとめます。
012474
05/02/17 15:07:56RPM:file.encoding=EUC-JP-LINUX
BIN:file.encoding=EUC-JP-LINUX
LANG=Cで$CATALINA_HOME/bin/startup.shで起動
RPM:file.encoding=ANSI_X3.4-1968
BIN:file.encoding=ANSI_X3.4-1968
LANG=ja_JP.eucJPで/etc/rc.d/init.d/tomcat startで起動
RPM:file.encoding=EUC-JP-LINUX
BIN:file.encoding=EUC-JP-LINUX
LANG=ja_JP.eucJPで$CATALINA_HOME/bin/startup.shで起動
RPM:file.encoding=EUC-JP-LINUX
BIN:file.encoding=EUC-JP-LINUX
となりました。
前回、実施した結果と異なった状態になっています・・・
(前回はRPMでEUC-JP-LINUXは出なかった)
一度、サーバ全体のインストールから、確認をしたいと思います。
0125120
05/02/17 16:04:31情報ありがとう。
一応そのサイトは見つけたんだけど、タグの意味が載ってるだけでは
俺の頭では作れなかった・・・。でも、ホント情報サンクス。
ちなみに、application.xmlって自力で作らなくて良いの?
俺はてっきり自分で書くのかと思ってたんだけど、もし自動で
作成する方法があるなら、良ければ教えて下さい。
使ってる環境はWeblogic7.0です。
0126U ◆CZtFsGiu0c
05/02/17 16:59:107.0だとWorkshopは使えないね。Eclipse + LombozならEarの生成機能があるはず
だけど、開発環境は何を使っていますか?
でも、application.xmlって大して書くことないから、手で書いてもそんなに大変
じゃないと思うけど。
0127デフォルトの名無しさん
05/02/17 21:01:14(問題)Swingで表示した文字のフォント表示が擦れてしまいます。
感覚的には指定したポイントの文字を縮小して表示を潰した後、
元のポイントに引き伸ばした感じ。
dialog.plain を指定-> WinOS的には、MSゴシックが指定される。
dialog.boldのフォントが汚い問題とは、フォント種も表示結果も違うので
別の問題と判断してる。
Java1.3.1/Windows2000/数十台中1台のみ発生するので、
端末固有の問題なんだろうけど、原因不明じゃ癪なので…
0128デフォルトの名無しさん
05/02/17 21:22:12PlayerクラスとDeckクラス(場の山)があるとして,
Playerオブジェクトにカードを一枚ドローさせたいとする.
このときPlayerオブジェクトが,その内部に他のPlayerオブジェクトと共有する形でDeckオブジェクトを持っていると,
player1.draw()とやるだけでカードが一枚取得できるので嬉しいのですが,
OOP的にこれはアリですか?
現実に照らしあわせて考えると,,人(Player)は場の山(Deck)を直接所有しているわけではないので,
一枚カードを引くという動作は,あえていうなら player1.draw( deck.getCard() ); な感じがするんですが,
別に現実通りに構築しなくても……と思いつつも,PlayerがDeckを所有するという違和感が気になりまして.
0129デフォルトの名無しさん
05/02/17 21:32:45drawの中でdec.getCard()を呼び出すようにして
player1.draw(dec);
でいいんじゃない?
0130129
05/02/17 21:33:570131デフォルトの名無しさん
05/02/17 21:50:23真っ赤で分厚いFedora Core2の本に
ちょっとしたコラムとして、GCJで動くTomcatの紹介をしている記事があった。
あの本の著者関係者は、ネイティブ版Javaをマンセーしているかのようだった。
TomcatまでGCJで動かすなんてキモイ。
0132デフォルトの名無しさん
05/02/17 22:00:48只で使えるeclipseがないときは、IDEに拒絶反応しめしてたJava厨に似てる。
0133デフォルトの名無しさん
05/02/17 22:01:220134デフォルトの名無しさん
05/02/17 22:22:12ClassName instance = ClassName();
こんな文法でも別に問題ない気がするんだが。
0135デフォルトの名無しさん
05/02/17 22:36:53次のコンパイルエラー教えてください。
Controller02.java:37: シンボルを解決できません。
シンボル: メソッド RequestDispacher (java.lang.String)
場所 : javax.servlet.ServletContext の インタフェース
RequestDispatcher rd = context.RequestDispacher( target );
^
エラー 1 個
問題になってる部分です。
String target = "/View02.jsp";
ServletContext context = getServletContext();
RequestDispatcher rd = context.RequestDispacher( target );
rd.forward( req, res );
0136デフォルトの名無しさん
05/02/17 22:38:59面白いやつだな
0137デフォルトの名無しさん
05/02/17 22:52:03サーブレットなんて難しいものを勉強する前に
Javaの基本を勉強した方がいいよ。
0138デフォルトの名無しさん
05/02/17 22:52:310139デフォルトの名無しさん
05/02/17 22:54:08Perl厨は馬鹿だから
そういう考え方しかできない
0140デフォルトの名無しさん
05/02/17 22:56:31命名規約を守っているAPIのメソッド名が大文字で始まると思っているのか愚か者め。
0141デフォルトの名無しさん
05/02/17 23:10:26135です。わかりました。うまくいきました。サンクス。
0142デフォルトの名無しさん
05/02/17 23:27:380143デフォルトの名無しさん
05/02/17 23:43:12そのルールで行く場合、次のプログラムでは何が表示されるの?
(見やすくするために、タブの変わりに全角スペースで字下げしてます)
public class ClassName {
public static void main() {
ClassName instance = ClassName();
}
public ClassName() {
System.out.println("Constructor");
}
public static ClassName ClassName() {
System.out.println("Static Method");
return new ClassName();
}
}
0144134
05/02/17 23:50:24> public static ClassName ClassName() {
ここと、
> return new ClassName();
ここでコンパイルエラー。
0145デフォルトの名無しさん
05/02/17 23:52:07NumberFormat nf = NumberFormat.getInstance();
nf.setMinimumIntegerDigits(4);
nf.setGroupingUsed(false);
nf.format(10);
0146デフォルトの名無しさん
05/02/17 23:58:26つまり>>143が言いたいのは
ClassName instance = ClassName();
これでは、インスタンスを作成するのか、メソッドを呼んでいるのか
判断できないということ。
ちなみにどんなエラー?
0147デフォルトの名無しさん
05/02/18 00:01:14ありがとうございます。お手数かけました。
0149143
05/02/18 00:10:21なるほどね。
クラス名にカッコつけて書いたら、それだけでインスタンス生成式扱いってことね。
よってクラス名と同じ識別子をメソッド名として使うことは許さん、と。
それならそれで筋が通ってるような気がする。
>>146
「判断できない」とまで言わないけど、判断するのに、その識別子が
メソッド名として使われているのか、クラス名として使われているのかを
確認しないといけなくなる、ってことだよね。
>>143
public static void main() {
じゃなくて
public static void main(String[] args) {
だろがよ?え? ww
0150デフォルトの名無しさん
05/02/18 00:44:39今でもバイトコード上ではコンストラクタは <init> という名前のメソッドでしかないしな。
0151デフォルトの名無しさん
05/02/18 00:54:31まさに同じ主張をしてた人がいたなあ。
彼は、コンストラクタ呼出しに無意味にnewを付けなきゃいけない点について
Javaの唯一汚ないところだと言ってたよw
0152デフォルトの名無しさん
05/02/18 00:57:38僭越ながら全てのPerl厨に替わって申し上げる
まともなモジュール書く香具師ならちゃんとnewサブルーチン作るYo!!(つ´д`;)
0153デフォルトの名無しさん
05/02/18 01:08:59タグの部分だけを抜き出したいときってどうすればいいのでしょうか?
ファイルを読み込んで一行ずつ出力しようとすると
どうしても全行出力されたりしてうまくいきません
0154デフォルトの名無しさん
05/02/18 01:11:371 2 3 4 5 6 7 8 9 a b c d e j k A B C D E J Kが
それぞれ
31 32 33 34 35 36 37 38 39 61 62 63 64 65 66 6A 6B 1 42 43 44 45 4A 4B
に対応してるんですけど、javaでの変換方法が分かりません。
16進数とかHex表示などの機械語みたいなんです。
例えば下の61をaに変換するプログラムを作りたいのですが。
ご教授願えますでしょうかm(_ _"m)
0155デフォルトの名無しさん
05/02/18 01:49:54public static void main(String[] args) {
char c1 = 0x61;
int i1 = (int)c1;
System.out.println("文字コード " + c1 + " は");
System.out.println("10進数の " + i1 + " と等しく、");
System.out.println("8進数の " + Integer.toHexString(i1) + " と等しく、");
System.out.println("16進数の " + Integer.toOctalString(i1) + " と等しく、");
System.out.println("2進数の " + Integer.toBinaryString(i1) + " と等しい。");
}
}
酔っ払ってるので超適当。コピペを繰り返すのは悪いコードの見本です。
0156デフォルトの名無しさん
05/02/18 01:50:46SAXってやつを使えばいいんじゃないかと思う。(自信ないけど。)
0157デフォルトの名無しさん
05/02/18 02:16:030158デフォルトの名無しさん
05/02/18 02:53:580159デフォルトの名無しさん
05/02/18 02:58:380160デフォルトの名無しさん
05/02/18 03:02:320161デフォルトの名無しさん
05/02/18 03:13:100162デフォルトの名無しさん
05/02/18 03:26:220163デフォルトの名無しさん
05/02/18 03:27:46あと5年早く生まれてれば知ってるだけで引く手数多だったのに、残念!
0164デフォルトの名無しさん
05/02/18 03:40:14Pって何?
0165デフォルトの名無しさん
05/02/18 04:43:03http://pc5.2ch.net/test/read.cgi/prog/1089814727/
初学者でも3ヶ月位で取ってるみたい。
0166デフォルトの名無しさん
05/02/18 12:06:13問題の難易度はそこそこだけど。
合格ラインが、52%以上の正解だから、半分しか理解していなくても簡単に受かる。
#難しいというか引っ掛けだらけ。、
#「そんなもんコンパイルすれば分かるじゃん」という問題ばかり
0167デフォルトの名無しさん
05/02/18 12:26:16そりゃ当然、Javaを知ってるだけじゃ意味無いだろう。
ある程度使えないと。って違う?
0168デフォルトの名無しさん
05/02/18 12:36:19どの程度知ってるかは知らんが
学校で習った程度とかだとだめじゃないかな
今は具体的に自分で何か作ったないと厳しいと思う
0169デフォルトの名無しさん
05/02/18 12:39:52どこまで知ってるかだね。
標準仕様だけでなく、今現場で必要とされているフレームワークやライブラリ、ツールを
熟知して、デザパタやJ2EEパターンなども知っていて、それらを必要に応じて組み合わせて
アーキテクチャ設計が出来るぐらいまで知っていれば仕事も就職先もあるよ。
・・・ってかウチが欲しい。
末端プログラマとしてコーディングができます。っていうだけだったら、いらない。
「Javaできても仕事がない」って言う奴はその程度の奴だろ。
0170デフォルトの名無しさん
05/02/18 12:57:19>末端プログラマとしてコーディングができます。っていうだけだったら、いらない。
>「Javaできても仕事がない」って言う奴はその程度の奴だろ。
Javaに限った話ではないな、C言語なんかでも、学校で習った程度で
就職しようとしてる人がいるからな。
みんなができるなら、それ以上のものがないといけないというのに
0171デフォルトの名無しさん
05/02/18 15:00:35>標準仕様だけでなく、今現場で必要とされているフレームワークやライブラリ、ツールを
>熟知して、デザパタやJ2EEパターンなども知っていて、それらを必要に応じて組み合わせて
その求人も現在では実は少ないw 単純に考えれば分かるが、
プロジェクトに船頭は二人いらないから。なまじ知ってるのが多いと
返って揉めたり、独自仕様を強調する香具師が出てくるしw
末端コーダーの方が量だけは求められるが、今はどこも飽和状態だからね。
つまりコーダーもマネージャースキルの持ち主も就職は厳しいよ。
これからはますますそうなる。少ないパイを取り合ってるのだし。
0172デフォルトの名無しさん
05/02/18 15:05:09つーか、そんなに欲しいか? そのマネージャースキルの持ち主って?
むしろ、自信の無い末端コーダーの方が必要だったりする。
ちゃんと言われた通りにコーディングしてくれるし。なまじスキルが
あると、勝手に機能を追加したり自称改善してくるのがいるからなー
ピラミッドの底辺は大量に獲得しなきゃならないしね。
0173デフォルトの名無しさん
05/02/18 15:17:21これから入る底辺は言われた通りにもコーディングできないかも知れないがな
しかし話がJavaと関係なくなってしまったな
0174デフォルトの名無しさん
05/02/18 15:41:26と言ったけど、プロジェウトにもモロに当てはまるな。
スキルと自信(自己主張)は完全に比例するし、スキル高いのが多いと
ミーティング時に揉めて進捗率が悪くなる事がある。最終的に完成度が
高くなってもスピードの方が重要だから、多少理不尽でも黙って従って
黙々と開発してくれる方が全体の為になる。スキル高くてもそれを表面に
出さずに従順にこなしてくれる人が一番ベストだが、現実にはそんな人は
いないからなー。プログラマはただでさえクセの強い人が多いしw
0175デフォルトの名無しさん
05/02/18 16:02:31このスレにもたくさんいるよな、そんな野郎。
0176デフォルトの名無しさん
05/02/18 16:04:27コーディングしか出来ない日本人は失職する傾向にある
0177デフォルトの名無しさん
05/02/18 16:08:57烏合が集まってプロジェクトが変な方向に行こうとするのを察知して
それを事前になんとか必死で止めようとする意味もある。
無駄な努力だと悟ればそういう椰子はさっさと退職してそのチームには
ゴミだけが残る。
0178デフォルトの名無しさん
05/02/18 16:12:280179デフォルトの名無しさん
05/02/18 16:20:02顧客名を <font color="red">田中</font> と、HTMLのタグをつけて入れてみたら、
顧客名一覧画面で、田中という文字だけが赤い文字で表示された。
「ユーザが入力した値を表示する際には、タグのようなものが入っているかもしれ
ないことを考慮して、ブラウザエスケープする必要があるのではないか」
とミーティングで発言したら、「言われたことだけさっさとやれ、納期が迫ってるんだ」
という意味のことをプロジェクトマネージャーに言われた。
そんなことを思い出したYo!
0180デフォルトの名無しさん
05/02/18 16:30:21明らかに変な仕様の時に、何も言わないと軽蔑される事も多い。
言うべき時は言わなきゃダメだよ。
自己主張は今の時世では特に重要だ。生意気と思われる位がちょうどいい。
フレッシュマンでもそうだ。あまりおとなしいと返ってバカにされる。
全体の為にもならず自分の為にもならない。
0181デフォルトの名無しさん
05/02/18 16:34:36○「却って」
0182初心者
05/02/18 16:39:55アニメーションなどで1つのスレッドがsleepしている間にもう一つのスレッドに計算をやらせ、
計算が終わったらもう一つのスレッドでrepaintするとしたほうが時間的に
効率化されますでしょうか?つまり1つがsleepしている間はスレッドが動いて
いないから別のスレッドが動いたほうが効率的だと思ったのですが・・・
0183デフォルトの名無しさん
05/02/18 16:41:31お前生意気
0184デフォルトの名無しさん
05/02/18 16:46:04その通り
0185デフォルトの名無しさん
05/02/18 20:27:080186デフォルトの名無しさん
05/02/18 20:47:46toString()
0187デフォルトの名無しさん
05/02/18 20:54:40即レス、サンクス
0188デフォルトの名無しさん
05/02/18 23:50:08能力はまるっきりなのに、書籍の知識を鵜呑みにして
有能気取りのバカが、このスレにも常駐してる
0189デフォルトの名無しさん
05/02/18 23:59:43質問スレでやる内容じゃない。
0190デフォルトの名無しさん
05/02/19 01:32:44bufferedReader =
new BufferedReader(
new InputStreamReader(
new FileInputStream(file),
"EUC-JP"));
こう書いているのですが、"EUC-JP"の部分がネックで
例えば対象ファイルがShif_JISだった場合、文字化けしますよね。
エンコードを自動判別するロジックってどう書けばよいでしょうか。
0191a
05/02/19 01:34:33接続させるにはどうすればいいでしょうか?
(接続図)
クライアント→WEBサーバー(Applet)→DBサーバー
※WebサーバーとDBサーバーは別のハードウェア
※DBサーバーへの接続はJDBCを使う
処理を分散させたいため、WebサーバーとDBサーバーを別々にしましたが、
これだとAppletからDBサーバーへ接続しにいくところでエラーが出ます。
調べたところ、Javaのセキュリティ仕様によりクライアントと接続先の間
でしか接続できず、それ以外とは通信できないらしいです。
何かいい回避策はないでしょうか?
0192デフォルトの名無しさん
05/02/19 01:46:00JISAutoDetectで満足できないなら自分で判別ロジックをこさえるしかないかと。
nkfとかのソースを参考にしてもよいかもしれず。
0193デフォルトの名無しさん
05/02/19 01:48:17Webサーバーにサーブレットコンテナを載せて
アプレット - サーブレット - DB
てのはどうだろう。
0194デフォルトの名無しさん
05/02/19 02:08:571、あきらめて、WebもDBも同じマシンに置く。
2、Webサーバが置かれているサーバ内に、JDBCプロキシを動かす。
このプロキシは、指定されたポートでAppletからの接続を待ち、Appletに対してDBサーバのふりをする。
本当のDBサーバに対しては、このプロキシがJDBCクライアントとしてアクセスする。
3、DBサーバが置かれいているサーバ内に、HTTPプロキシを動かす。
このプロキシは、多分きっと80番ポートでクライアントからの接続を待ち、クライアントに対してWebサーバのふりをする。
本当のWebサーバに対しては、このプロキシがHTTPクライアントとしてアクセスする。
4、アプレットをやめて、Javaで書かれたプログラムを各クライアントマシンに配布する。
5、Appletが、どこにでもホイホイ繋ぎに行くように各クライアントマシンの設定を甘くする。
(そんなことが可能かどうかはシラネ。mozillaならOpensourceなので、不可能ではないかもw)
0195デフォルトの名無しさん
05/02/19 03:06:04なんか変態がいるね
0196デフォルトの名無しさん
05/02/19 03:09:39JWSでアプリ配布とかまっとうな方法が出てこないのか...
0197デフォルトの名無しさん
05/02/19 03:42:29てか(*∂ー∂*)イラナイワ
0199デフォルトの名無しさん
05/02/19 04:38:59バカレスまにうけるなよ
0200デフォルトの名無しさん
05/02/19 05:17:16設計に重大なミス(例えれば建築物が崩壊するような)があることが多い
ドカタであろうが設計ミスは指摘してよい
情報処理技術者試験があくまで認定試験であって
一級建築士並みの資格試験になっていないのも問題
0201デフォルトの名無しさん
05/02/19 05:45:400202デフォルトの名無しさん
05/02/19 05:50:20ここはデザパタのコンポジットパターン使うのが正しいとか
納期を無視して設計変更を力説する椰子
勝手に正しいとか言ってるアホは速攻無視したが
0203デフォルトの名無しさん
05/02/19 05:53:430204デフォルトの名無しさん
05/02/19 09:31:24こちとら趣味ではなく、エンドユーザーからお金をもらってやってるんだから。
0205デフォルトの名無しさん
05/02/19 10:56:55Java プログラマ全体の質が落ちたのか
0206デフォルトの名無しさん
05/02/19 11:10:15どこで落ちたと判断したんだ?
0207デフォルトの名無しさん
05/02/19 12:28:220208デフォルトの名無しさん
05/02/19 12:38:18単にJavaプログラマの裾野が広がっただけでは?
0209デフォルトの名無しさん
05/02/19 12:38:290210デフォルトの名無しさん
05/02/19 12:52:230211デフォルトの名無しさん
05/02/19 14:21:30趣味設計を擁護するわけではないが、少なくともおまえは使えない人材っぽいな。
契約終わればサヨウナラ作業がメインの三流下請けだろ? 指摘に対して思考停止
してる時点でエンジニアとしては終わっている。
0212デフォルトの名無しさん
05/02/19 14:46:17会社も多いし。品質と納期のために最善の努力をしてくれる協力会社見つけてるから俺は
良いけど、納期守っても一回作り逃げした会社は次から安く買い叩くことにしている。
雑談失礼、次の質問
↓
0213デフォルトの名無しさん
05/02/19 16:31:55何から勉強したらいいですか?
0214デフォルトの名無しさん
05/02/19 16:34:48言語自体がわからないのであればどこがわからないかとかわかると思うのだが
0215デフォルトの名無しさん
05/02/19 16:35:19Javaの仕事ばかりやってるんだが
0216デフォルトの名無しさん
05/02/19 16:36:19質問の仕方
0217デフォルトの名無しさん
05/02/19 16:37:40どこまでJavaを使えるのか分からないので答えられないな
0218デフォルトの名無しさん
05/02/19 16:47:26> >標準仕様だけでなく、今現場で必要とされているフレームワークやライブラリ、ツールを
> >熟知して、デザパタやJ2EEパターンなども知っていて、それらを必要に応じて組み合わせて
>
> その求人も現在では実は少ないw 単純に考えれば分かるが、
> プロジェクトに船頭は二人いらないから。なまじ知ってるのが多いと
> 返って揉めたり、独自仕様を強調する香具師が出てくるしw
慣れてくると揉めねえよ。仲悪くなる奴はいるが。
職場を変えれば見知らぬ奴と人間関係を簡単にやり直せる。
経験を積むことで沢山知っていようが揉める可能性は低い。
おだやかに対応するだけでどうにかなるもんだよ。
相手が独自仕様をおしつけてきたらとりあえずそれでやってみる。
そいつが馬鹿な手法をとってきたらとりあえずそいつの言うとおりに
してそいつがいかにして馬鹿であるかを証明してみればいい。
そしてあとからこちらが知っているもっと良い方法を実際にやってみて
そいつに見せびらかす。そうすれば喧嘩になる可能性も減り
そいつ自信、自分の手法が悪かったと反省して新しいやり方を受け入れるようになる。
馬鹿で古くさい開発手法を押しつけてくる輩には成功事例を実際に
そいつの目の前で見せつければイチコロよ。
0219デフォルトの名無しさん
05/02/19 16:47:42あとはマネージャやチームリーダの部下を管理する、采配する能力次第だな。
顧客から仕事をとってくる営業SEのコミニュケーション能力に依存してしまうところもあるが。
営業SEが馬鹿だと無駄な仕事が増えて悪循環になり後始末が大変なことになる。
結局こちらが営業にかわって直接顧客とコミュケーションを密にとることになるが
営業SEが馬鹿なのでもう手遅れな事態になっていることも多々。
現場で感じることは仕事をとってくる馬鹿な営業SEをどうやって説得するか
技術もろくにしらずにこちらがなんでもできると勘違いしている
素人な顧客といかにしてうまくつきあっていくか
テストの自動化をいかにして効率化するかが重要だってことがわかってくるよ。
どうだろうな。今プログラマは停滞しているところだと思うよ。
給料がITバブル時代とくらべかなり下がったことは否めないけどね。
マネージャクラスのスキルが低すぎる、あるいはそのクラスの人手が
不足している現状があると思うよ。
DBの設計能力のある人間も不足しているしね。
0220デフォルトの名無しさん
05/02/19 16:51:53> >>172
> これから入る底辺は言われた通りにもコーディングできないかも知れないがな
学生アルバイトとして働いているがうちの職場はそうでもなさそうだぞ。
給料安い代わりにほとんど好きなようにやらせてくれる。
一般的ばJavaコーディング規約を守っていればオブジェクト指向を使うも
学生アルバイトだろうが
勝手にクラスやパッケージや定数を追加するも自由。
プロジェクトによっては言語を勝手に選んでも言い場合もある。
他の職場では勝手にクラスを追加することも許されないところもあった。
0221デフォルトの名無しさん
05/02/19 17:01:47> ナポレオンは「一人の凡将が率いる軍は、二人の名将が率いる軍に勝る」
> と言ったけど、プロジェウトにもモロに当てはまるな。
> スキルと自信(自己主張)は完全に比例するし、スキル高いのが多いと
> ミーティング時に揉めて進捗率が悪くなる事がある。最終的に完成度が
揉める原因た大抵上司や会社部署、チームの風潮にあるな。
上司/マネージャが部下を評価する方法がいい加減で現実的でないと醜い昇給争いに巻き込まれる。
とにかく急げ、短期間でやれと主張する上司に囲まれたプロジェクトでは
そういう喧嘩が起きやすい。
だがマネージャやチームリーダが過去に苦いプログラミング経験を持っており
急ぐことの危険性を知っていれば揉める可能性は低い。
それから、上司の中にできないことをできると言っている奴がいて、
それを部下に押しつけるような様子だと揉め事の原因になる。
できるかわからないことを、まだ試してもいないのに「できる」と
主張すると揉める。
要は、プログラマのスキルを正当に評価できる人間がマネージャになれば
解決するってこと。ある奴がある言語で作ったプログラムを短期間で完成させたが
言語を変えただけで開発速度が大幅に衰えることがある。
そこで、ある上司は前者のそいつの行動をみると凄い奴と思ってしまうが
他の上司で後者の行動した見たことが無いのはたいしたことが無い奴だと思ってしまう。
たいしたことがないと思われるとそいつはムキになる。おれの功績を見てくれないと、
そこで自分の得意分野を押しつける。
そもそも、上司がもっと客観的に部下を評価すればこんな事態には陥らないはずなのである。
言語やツール、開発環境の違いがその人の開発速度に影響を与えることを
わかっていない上司はプログラマのスキルを正当に評価できる能力が弱いため
喧嘩に原因を作りやすい。
0222デフォルトの名無しさん
05/02/19 17:02:50>> これから入る底辺は言われた通りにもコーディングできないかも知れないがな
>
>学生アルバイトとして働いているがうちの職場はそうでもなさそうだぞ。
>給料安い代わりにほとんど好きなようにやらせてくれる。
なんかすご〜く的外れな回答なんですけど
0223デフォルトの名無しさん
05/02/19 17:05:00既にスレ違いっぽい気がしますがいかがなもんでしょう?
続きはマ板の適切なスレに移動されてはいかが?
0224デフォルトの名無しさん
05/02/19 17:06:08>そこで、ある上司は前者のそいつの行動をみると凄い奴と思ってしまうが
>他の上司で後者の行動した見たことが無いのはたいしたことが無い奴だと思ってしまう。
>
>たいしたことがないと思われるとそいつはムキになる。おれの功績を見てくれないと、
>そこで自分の得意分野を押しつける。
それお前の体験談?
0225デフォルトの名無しさん
05/02/19 17:13:06> 自己主張ばかりで納期も守れない、勘違い野郎が一番やっかい。
若い世代にはかなり多いぞ。
上司の部下を評価するスキルにも依存するが。
30代の世代でもいなくはない。たとえばUnixとCに精通した
システムプログラミングに熟練した者は非常にプライドが高い。
サーバ管理スキルも凄腕でSolarisやPerl/CGIにもかなり精通している。
そういう人が以前いたがJavaをやりたがっていなかったのに
チームリーダを兼ねてJavaをやらされる羽目になった。
その人はJavaServletをよくわかっていなかった、
オブジェクト指向もわかっていなかったため
かなりイライラしていた。言語がJavaに変わっただけで
自分の能力が上手に発揮できないためだ。
それだけでそのプロジェクト内では
若手のJavaプログラマに負けてしまうのだ。
彼はいつも自分のC, UNIX,シェルスクリプトのスキルを自慢していた。
若手のプログラマにUNIXに関する問題を出して
どれだけスキルがあるか試していた。
と同時にそうすることで自分の威厳を保とうともしていた。
負けず嫌いな彼はそれによっって自己主張を繰り返していた。
若手の者が知らないことがあると即座に馬鹿にして満足していた。
Javaソースコードにsuper()やthisというものがあっても
彼は即座には理解できないでいた。
CやCGIでできたことをJava,やServletで真似しようとしたら
何かが違う。そのことで彼はかなり頭を悩ませていた。
0226デフォルトの名無しさん
05/02/19 17:15:01ちょっとだけそういう空気に飲まれたことがある。
そこにいた人間はほとんどが体験している様子だったな
どこにだって正当に評価してくれない上司はいる。
かれを説得するのはたいへんだ
0227デフォルトの名無しさん
05/02/19 17:15:49【初心者】Java質問・体験談スレッド63【大歓迎】
0228デフォルトの名無しさん
05/02/19 17:16:58> いや、あまり従順でも返って能力を疑われるしな。
> 明らかに変な仕様の時に、何も言わないと軽蔑される事も多い。
> 言うべき時は言わなきゃダメだよ。
いまどき何も言わない奴なんかいない。
おかしいとおもったら
なぜこういうことをするのかくらい聞くべきだ。
「こういう事例もあるけどなぜそんなことをするのか」とも聞くべきだ。
0229デフォルトの名無しさん
05/02/19 17:18:20されど実際に動いているものを
見せる奴は吠えても頭は強く能力がある。
0230デフォルトの名無しさん
05/02/19 17:19:55> ただの下請けのドカタが、建物の設計にまで口出してきたら、嫌だよなぁ
> てか(*∂ー∂*)イラナイワ
マネージャや顧客が無能だと下請けのドカタに口出しされる羽目になる
マジな話。
0231デフォルトの名無しさん
05/02/19 17:21:08そりゃそいつのスキルが無いんだよ
勉強を欠かさず新しい技術にも付いて行けるのが
ほんとにスキルのある香具師
0232デフォルトの名無しさん
05/02/19 17:22:28物理学から勉強しましょう
0233デフォルトの名無しさん
05/02/19 17:23:58もう3,4年前の話だよ。
そのUnixヲタも今頃かなりJavaに熟練していると思う。
・・・・そうでなかったりして。
システムプログラミングマンセーなひどだったからね
Perlのスキルだけは伸ばしているかもな
0234デフォルトの名無しさん
05/02/19 17:26:04どんなスレが適切なんだかわからぬよ。
よかったらおすすめなスレをあげてくれ。
マ板はアニヲタや寒いオヤジギャグ放つオッサン絡みの糞スレ
が多すぎて萎える。
いつもくだらんレスばかりが目立つ。
奴らは言っていることがいつも寒すぎる。
0235デフォルトの名無しさん
05/02/19 17:26:15UNIXのソースコードって汚いのが多いからね
0236デフォルトの名無しさん
05/02/19 17:26:53>>223はお前を同じ目で見ているのだろう
0237デフォルトの名無しさん
05/02/19 17:28:36ム板に新スレたてれば?
0238デフォルトの名無しさん
05/02/19 20:17:25System.setOutで標準出力先をファイルに指定したとして、
その標準出力先を画面(デフォルト)に戻したい場合は
どのようにすればよいてしょうか?
0239デフォルトの名無しさん
05/02/19 20:20:54最初に PrintStream stdout = System.out; とかして退避しといて
必要な時に System.setOut(stdout); で戻すとか。
0240デフォルトの名無しさん
05/02/19 20:22:05PrintStream out = System.out;
System.setOut(out);
0241デフォルトの名無しさん
05/02/19 20:39:390242238
05/02/19 21:08:07ありがとうございます。
しかし、>>241氏のように変えない設計にする必要がありそうです。
0243デフォルトの名無しさん
05/02/19 21:24:07C言語の場合、関数を使って変数の値を変える場合、アドレスを渡すというのが
一般的ですよね?
int a;
func (&a);
・
・
void func (int *a)
{
*a = 1;
}
javaの場合、メソッドを使って変数の値を変えるのはどうすればいいのでしょうか?
メソッドの戻り値を使うというのにも限界があると思いますし・・
同一クラス内のメソッドであればメンバ変数を使うのもアリかと思いますが、
他のクラスの場合はどうするのが一般的なのでしょうか?
0244デフォルトの名無しさん
05/02/19 21:30:520245デフォルトの名無しさん
05/02/19 21:35:16しかしメソッドを使って変数の値を変えるという考え方をやめて
変えるべき値を返すようにしてください。そのCの例でいうと
× int a; func(&a); ・・・ void func(int *a) { *a = 1; }
○ int a; a = func(); ・・・ int func() { return 1; }
複数の値を返したいときは複数の値を持ったしかるべきクラスのインスタンスを返すようにする。
0246243
05/02/19 21:45:49ありがとうございます。
戻り値を使うというのは楽だと思うのですが、2つ以上の変数の値を変更したい
場合には使えないですよね?
そういう場合は面倒でもオブジェクトを使うしかないってことですね?
0247デフォルトの名無しさん
05/02/19 21:51:04どっちにしろ同時に2つ以上の変数を変更したいってことは一般的に言って
その変数らに何らかの関連があるわけだから、オブジェクトとしてまとめる設計にすべきだ。
0248デフォルトの名無しさん
05/02/19 21:52:110249デフォルトの名無しさん
05/02/19 21:54:53> その変数らに何らかの関連があるわけだから、オブジェクトとしてまとめる設計にすべきだ。
なるほど。
もっともですね。
オブジェクト指向が分かっていないので、単にCの関数がメソッドになっただけという
コードになりがちなんです。
0250デフォルトの名無しさん
05/02/19 22:42:13JavaBeansというのを勉強すべし
0251デフォルトの名無しさん
05/02/19 23:22:00記憶しましたか? 自分はまずlang、io、util、text、nioを覚えようと
してるのですが、一応英単語を覚えるのよりは楽なんですが、似たような
名前とパラメータが多いので結構こんがらがります。
皆さんのAPI学習法を教えてください。
0252デフォルトの名無しさん
05/02/19 23:24:06何を無職だと?
俺は学生アルバイトだが
0253デフォルトの名無しさん
05/02/19 23:25:09暗記するんだったら
作りたいプログラムをさっさと作れ。
0254デフォルトの名無しさん
05/02/19 23:27:080255251
05/02/19 23:28:020256デフォルトの名無しさん
05/02/19 23:40:38どのパッケージにどんなクラスがあるかと、それらクラスの概要だけ頭に入れたら
後は必要なときにAPIリファレンスを参照する。
本当にしょっちゅう使うような事柄ならそれで勝手に覚える。
……という呑気なやり方でやってますが(汗)
0257デフォルトの名無しさん
05/02/19 23:44:33暗記なんかする必要はない。
どこを調べればどんな物があるのかをわかってさえいればよい。
で、必要なことはすぐに調べられるように環境を整えておくこと。
無駄なことに頭を使うな。効率が悪い。ダメプログラマの見本だぞ。
0258デフォルトの名無しさん
05/02/20 00:00:24JavaのAPIリファレンスはダウンロードできるんだし、EclipseなりNetbeansなり
使ってれば、コード補完機能がメソッド名を補ってくれる上に引数まで表示して
くれるんだし。
そんなことより、各クラスでどんなことが出来るのかを俯瞰的に覚えていった
ほうが、あとでAPIリファレンスを見るのが楽になっていい。
0259デフォルトの名無しさん
05/02/20 00:01:42実戦では別の技術が必要なんだよ。
0260デフォルトの名無しさん
05/02/20 00:08:51けど、暗記しとかないと、暗記バカに、バカにされるとです。
ひろしです。
0261デフォルトの名無しさん
05/02/20 00:27:150262デフォルトの名無しさん
05/02/20 00:28:59必要なときにマメにドキュメント参照するようにしているいます。
暗記しようとする人なんて始めて見たナー。
0263デフォルトの名無しさん
05/02/20 00:35:59なんか言ってる様で、実は何も言っていないコードの見本。
0264デフォルトの名無しさん
05/02/20 00:40:340265デフォルトの名無しさん
05/02/20 00:41:35劣等感のあまり、自分から素性をバラしちゃダメだよw
0266251
05/02/20 00:44:34自分も別に全部を丸暗記しようと思ってる訳じゃないです。
ただ基本APIだけは押さえとこうと思ったのです。
基本覚えてないと組みようがないですし。
しかし、APIの暗記なんかしないって意見にも
ちょっと驚きです。皆さんは趣味プログラマですか?(学生)
0267デフォルトの名無しさん
05/02/20 00:49:34わざわざ覚えようと思って暗記はしない。
はじめのうちは、使うたびに参照しても、使っているうちに覚えてくるもんだろ。
基本のAPIなんかは、そんな感じで覚える。わざと覚えないようにしているわけではない。
0268デフォルトの名無しさん
05/02/20 00:55:54趣味でやってるようなやつほど暗記しようとしがちだね。
仕事でやってたら否が応でもよく使うものは覚えるから。
0269257
05/02/20 00:56:28>皆さんは趣味プログラマですか?
30代。J2EEが主要範囲のプログラマ→アーキテクトだが、
今は開発の現場ではなく、コンサルタント・執筆・翻訳・講演などが仕事。
丸暗記は意味がない。
この辺のクラス(とかライブラリとかツール)を使うとこんなことができたはず、
ぐらいに覚えておけば、あとは実際に使う場面になってリファレンスとかサンプルを見ればいい。
0270デフォルトの名無しさん
05/02/20 00:56:53という本を参考にしてJSPプログラムを実行したのですがうまくいきません
SDK 1.4.2
Tomcat 4.1(http://localhost:8080/で起動確認済み)
本には、Tomcat 4.1\webappsの下に
jsp10/day01-1フォルダを作ってintro.jsp(簡単なソース)を置く
ブラウザでhttp://localhost:8080/jsp10/day01-1/intro.jspを入力
と書いてあるのですが
「HTTP Status 404 - /jsp10/day01-1/intro.jsp」と出ます
intro.jspをTomcat4.1\ROOTの下において
http://localhost:8080/intro.jsp
だとしっかり表示されるのでタイプミスとかは無いと思います
どうしたら最初にフォルダで実行できるでしょうか?
0271270
05/02/20 00:58:53○どうしたら最初のフォルダで実行できるでしょうか?
0272デフォルトの名無しさん
05/02/20 01:04:48まともなプログラム一つ書けない馬鹿がいたな
0273デフォルトの名無しさん
05/02/20 01:07:23Tomcatのリリースツール使えばいいやん?
0274デフォルトの名無しさん
05/02/20 01:14:27奴に Java 教えてたことがあったけど、本人的には機能を暗記することで満足してしまって
それ以上先に進もうとしなかったので別の仕事に回したよ。
> どうしたら最初のフォルダで実行できるでしょうか?
最初のフォルダって何? Tomcat4.1\webapp ってディレクトリをドキュメントルートにしたいなら
Tomcat4.1\conf\server.xml を修正すれば良いが、そういうことか?
0275デフォルトの名無しさん
05/02/20 01:17:56あの著者の本や記事は信用しない方がいい。
重要な説明がごっそり抜けていたり、限定される条件にも
かかわらず当たり前のように書いてあることがあるから。
/jsp10の下に WEB-INF という名前のフォルダを作れ。
フォルダの中はとりあえずは空でもいいから。
0276270
05/02/20 01:19:54すいません、とりあえず参考書どおりに
〜\tomcat4.1\webapps\jsp10\day01-1\intro.jsp
で動かしたいです
>Tomcat4.1\conf\server.xml を修正すれば良いが、そういうことか?
参考書には設定ファイルなどの編集については一切書いてないのですが・・・
恐らくそういうことだと思います
0277デフォルトの名無しさん
05/02/20 01:23:41妄想ばかりだと、そのうち本当に頭が逝かれちゃうぞ。
社会的には、もう逝かれてるだろうけど。
0278デフォルトの名無しさん
05/02/20 01:25:10レス番間違えてる?
0279デフォルトの名無しさん
05/02/20 01:27:58そういや昔はWEB-INFのフォルダなくても動いていたね
ふるいのよんでるんじゃないの?>>270は
でもその場合404エラーだったかな
0280270
05/02/20 01:29:22できました。
有難うございます
>あの著者の本や記事は信用しない方がいい。
そうなんですか・・・
実は最初のMySQLのインストールの説明も間違ってた
入門書で環境設定間違えられるとつらい・・・
ムカつくけど一通りは読もうと思います
有難うございました
0281270
05/02/20 01:33:06>>279
いや、最新版っすよ。去年の11月刊行
フォルダ作成くらい書いて欲しいです、マジで
正誤表もみたけどMySQLのインストール、JSPの実行
両方とも載ってなかった
これからもこんなミスが続くんだろうか・・・
0282デフォルトの名無しさん
05/02/20 01:34:10悪書なら読まずに速攻で捨てた方がマシ
0283デフォルトの名無しさん
05/02/20 02:24:02282に禿同
時間が勿体ないし、下手するとおかしな知識を覚えてしまうかも
0284デフォルトの名無しさん
05/02/20 03:38:24なってしまったけど、どのAPIを把握しておくといいかというと、
java.lang.*
Object, String, System, 例外クラス, ラッパークラス, 場合によってはRuntime
java.io.*
各種ストリームとリーダー/ライター
java.util.*
コレクションとと正規表現とプロパティ
あと、StringBuffer(1.5ならStringBuilder)
(個人的には日付とjava.textも)
あたりを使えるようになるといい。
UI作るなら
java.awt.*
java.awt.event.*
javax.swing.*
javax.swing.event.*
だが、ちと込み入るのでここでは深入りしないでおく。
0285デフォルトの名無しさん
05/02/20 03:39:15とまぁこういう香具師でもJavaで飯は食える。
0286デフォルトの名無しさん
05/02/20 03:39:330287デフォルトの名無しさん
05/02/20 04:08:24あなたが回答しないからですよ
0288デフォルトの名無しさん
05/02/20 05:38:05とりあえずどれか一つ覚えておけばよいですか?それとも
全部のやり方知ってないとだめですか?
0289デフォルトの名無しさん
05/02/20 09:16:13Javaのプログラム書くのに最適なソフトウェアってどれですか?
私は今XEmacsをつかってますが、フリーなだけあって使い勝手やインタフェイスなんかもイマイチです。
やっぱりボーランドとかコードワリアーとかのほうがいいでしょうか?
ほかにも使ってる人で、これだっていうのがあれば感想お願いします。
0290デフォルトの名無しさん
05/02/20 09:56:400291デフォルトの名無しさん
05/02/20 09:57:150292デフォルトの名無しさん
05/02/20 10:03:21あなたが書いている「よい」および「だめ」という表現が
それぞれ何を意味しているかによると思います
0293デフォルトの名無しさん
05/02/20 10:06:24「ボーランドとかコードワリアー」とか書いてるあたり「釣りっぽい」という事実に気付いたり。
0294デフォルトの名無しさん
05/02/20 10:18:19>>289
Eclipse使ってみたら?
少し重いけどフリーだし高機能だよ。
http://pc5.2ch.net/test/read.cgi/tech/1106406752/
0295デフォルトの名無しさん
05/02/20 10:33:30仕事でやるなら、一つのプロジェクトで統一しておいた方が見通しはよい。
全部知っているにこしたことはない。
ちなみに俺は一つしか覚えてないけど、仕事では特に困らない。
0296デフォルトの名無しさん
05/02/20 11:46:40おまえは辞書の中身をいちいちすべて暗記するほどの馬鹿なのか?
百科事典を丸暗記したと豪語したライブドア堀江級のヴァカだな
0297デフォルトの名無しさん
05/02/20 11:48:35なぬ?
藻前はあのJ2EEエンタープライズアーキテクトか!!!?
0298デフォルトの名無しさん
05/02/20 11:52:28おい、
暗記はとりあえずjava.lang.*だけでええだろ。
あとは必要に応じてdoc見ながら使いながら
覚えればいい。
暗記するよりも例外処理、
マルチスレッドの使い方、
デザインパターンやフレームワークの使い方を覚えた方が
効率がいい、
0299デフォルトの名無しさん
05/02/20 12:13:510300デフォルトの名無しさん
05/02/20 12:31:13英単語と同じで暗記はツライけど、初めに基礎APIを一通り覚えて
おくと上達が早くなる。普通に考えれば分かると思うけど。
0301デフォルトの名無しさん
05/02/20 12:48:210302デフォルトの名無しさん
05/02/20 13:02:590303デフォルトの名無しさん
05/02/20 13:35:53API名と機能をざっと頭に入れるのは有効だと思うけど、
引数の内容とかまで一所懸命覚えてたら馬鹿だと思う。
0304デフォルトの名無しさん
05/02/20 14:03:530305デフォルトの名無しさん
05/02/20 15:31:570306デフォルトの名無しさん
05/02/20 15:39:150307デフォルトの名無しさん
05/02/20 15:45:25多分、ほとんどいないんじゃないんかね。
初めて使うライブラリとかは、ざっと見渡すくらいはするかもしれんけど。
0308デフォルトの名無しさん
05/02/20 15:53:52java.lang.IndexOutOfBoundsException: No group 4と出ます。
$を取るとエラーが出ないのですが、これはどう回避すればよいのでしょうか?
0309デフォルトの名無しさん
05/02/20 15:58:17ここに書き込みさせていただきました。
お願いします。
1、Enterprise Java Beans と Java Beans ってどう違うのでしょうか?
Beanのうち、自分で作成するのではなく、初めから予めインターフェースなど
で使用が決まっているものをEnterpriseって言うのですか?
2、strutsってなんでしょうか?フレームワークが何なのかがよく分かりません。
3、EclipseでJSPのデバッグ、JSPエディタを使用したいのですが、
Eclipse3.0でLombozが認識されません。lomboz.097.b202をEclipseのplugin
にコピーして再起動しましたが、Eclipseの設定メニューにLombozが
出てきません。
4、Eclipseでサーブレットのデバッグ?をしようとしたが、ブレーク
ポイントでブレークしません。
すみません。スレ違いでしょうか?
0310309
05/02/20 15:59:11の間違いです。
0311デフォルトの名無しさん
05/02/20 16:02:39$を\\$とする
0312デフォルトの名無しさん
05/02/20 16:04:20>使いたい時以外で勉強のためにAPIを見たことある人いる?
勉強の為というか、暇つぶしでなら
API リファレンスを眺めることはあるけど?
0313デフォルトの名無しさん
05/02/20 16:08:41今、やってみましたが、ダメでした。
java.lang.IndexOutOfBoundsException: No group 4
at java.util.regex.Matcher.group(Unknown Source)
at java.util.regex.Matcher.appendReplacement(Unknown Source)
at java.util.regex.Matcher.replaceAll(Unknown Source)
at java.lang.String.replaceAll(Unknown Source)
...
となってしまいます・・・
0314デフォルトの名無しさん
05/02/20 16:09:16コードを見せてくれー
0315デフォルトの名無しさん
05/02/20 16:12:44API のドキュメントを見て確認しなくて良くなるわけだろ、それってすげーよ。
丸暗記ってことは、次の質問にも答えられるってことだよね。
・java.io.Serializable インタフェースのサブインタフェースを全て挙げる。
・java.awt.event.KeyEvent クラスで定義されているフィールドを全て挙げる。
そんな風になれたら、すげー楽しいだろうな。
0316デフォルトの名無しさん
05/02/20 16:16:01それくらい Eclipse の補完機能で十分じゃないか?
0317デフォルトの名無しさん
05/02/20 16:17:50readFileメソッドで文字列読み込んで、それString listPageStr内の##LEFTの部分と置換するだけなんです…
String str = this.readFile(filePath);
listPageStr = listPageStr.replaceAll("##LEFT",str);
0318デフォルトの名無しさん
05/02/20 16:21:19あ、できました。
\\$でなく、\$でいけました。
お騒がせしました!
0319デフォルトの名無しさん
05/02/20 16:22:51大学受験の時は誰でも3000以上の英単語を覚えるのだから
それに比べれば楽じゃないか?名前も覚えやすいし(混同しやすいけど)
0320デフォルトの名無しさん
05/02/20 16:24:080321デフォルトの名無しさん
05/02/20 17:41:28実行可能なjarファイルに使用としています。
外部のクラスパスを扱う方法は調べてわかりました。
しかし、JVMの引き数としてdllファイルを与えたいのですがその方法が分かりません。
jarファイルをコマンドラインで実行するのではなく、ダブルクリックで実行したい
のでマニフェストにパスを記述したいと考えています。
方法ありますでしょうか?
---------------------
Manifest-Version: 1.0
Main-Class: MainRun
0322デフォルトの名無しさん
05/02/20 17:49:230323デフォルトの名無しさん
05/02/20 17:51:59はい。
問題なく動きます。
0324デフォルトの名無しさん
05/02/20 17:58:181.
> Beanのうち、自分で作成するのではなく、初めから予めインターフェースなど
> で使用が決まっているものをEnterpriseって言うのですか?
違う。
・EJBはEJBコンテナ上でしか動作しない
・呼び出し側とは別VM上(別ホスト上)でも動作可能
・EJBコンテナの機能で分散配置、分散トランザクション、宣言型トランザクションなどの機能を利用可能
2.それじゃ、「フレームワーク」を調べましょう。とりあえずはアプリケーションのひな形、ぐらいに覚えておけ。
3.4.Eclipseスレで聞け
0325デフォルトの名無しさん
05/02/20 18:09:52ttp://forum.java.sun.com/thread.jspa?messageID=3123713
0326デフォルトの名無しさん
05/02/20 18:12:340327デフォルトの名無しさん
05/02/20 18:50:36ありがとう御座います。
まんまの議論ですね…。試してみます。
0328デフォルトの名無しさん
05/02/20 19:16:49publicとprotectedとprivateのどれを使うのが適切ですか。
0329デフォルトの名無しさん
05/02/20 19:42:520330デフォルトの名無しさん
05/02/20 20:05:25どっちも同じだろw
0331デフォルトの名無しさん
05/02/20 20:08:040332デフォルトの名無しさん
05/02/20 20:12:35じゃ、それぞれ回答頼む。
0333デフォルトの名無しさん
05/02/20 20:14:43あとはスーパーのメソッド次第で選択肢が変わる
とは言ってもpublicの場合、サブで選択はできんが
0334デフォルトの名無しさん
05/02/20 20:18:320335デフォルトの名無しさん
05/02/20 20:20:14スーパーがprotectedならサブの方はpublicにできるよ
0336デフォルトの名無しさん
05/02/20 20:20:44一概に「こっち」と言い切る方がおかしい。
0337デフォルトの名無しさん
05/02/20 20:21:27Superがprivateの場合はSubでオーバーライドしようとしても結局Superのメソッドが実行される。
それ以外のケースはSuperの可視性以上にする必要がある。
特にコンパイルエラーにはならないが、実行しても上書きされてないじゃなかったっけ。
0338デフォルトの名無しさん
05/02/20 20:24:05J2SE5.0をインストールしたのですが、binフォルダにjavacがありません。
間違ったインストールファイル使ったとは思いません。
なぜでしょう
0339デフォルトの名無しさん
05/02/20 20:43:14SDK(JDK)じゃなくてJREをインストールしたんじゃないの?
0340デフォルトの名無しさん
05/02/20 21:23:54いや、ものの本についてた「jdk-1_5_0-windows-i586.exe」をインストールしました。
0341デフォルトの名無しさん
05/02/20 21:51:31何かいいサイトないですか?日本語で。
0342デフォルトの名無しさん
05/02/20 21:57:45jreのディレクトリのほう見てるんじゃないの?
0343338
05/02/20 22:19:12解決しますた。
スレ汚しすまそ。
0344デフォルトの名無しさん
05/02/20 22:25:52自演java厨?
java厨のフリをした他言語厨?
0345デフォルトの名無しさん
05/02/20 22:29:08どこをどうミスってどう直したら直ったとか書いとくと後の人のためにもなるのになーとか思った。
0346338
05/02/20 22:48:08はずかしくて・・・
デフォルトのインストールフォルダではなく、違うインストールフォルダにインスコしたときに
JDKとJREを同じところにインスコしてしまもjg;さmじょあjbg;あj
0347デフォルトの名無しさん
05/02/20 23:00:57ん?同じ場所にインスコしたらダメなの?
そういえば俺も1回目おかしかった・・・2回目はいけたけど。
0349309
05/02/20 23:44:29どうもです。
1.
>Beanのうち、自分で作成するのではなく、初めから予めインターフェースなど
>で使用が決まっているものをEnterpriseって言うのですか?
違うのですね・・・。
>EJBはEJBコンテナ上でしか動作しない
>呼び出し側とは別VM上(別ホスト上)でも動作可能
なるほど。
>EJBコンテナの機能で分散配置、分散トランザクション、
宣言型トランザクションなどの機能を利用可能
よく分かりません。勉強します。
ありがとうございました。
0350デフォルトの名無しさん
05/02/21 01:08:33もしprivateでもオーバライドされるんだったら下手にメソッドを作れないから怖すぎる。
外部からは見えてないのに、サブクラスで何かメソッド作ったら挙動が変わるなんて
冷静に考えてもそんな仕様にするわけがないだろ。
0351デフォルトの名無しさん
05/02/21 01:22:16ただの暗記の場合は、こんなあいまいな理解になってしまう。
0352デフォルトの名無しさん
05/02/21 01:32:17知らんかった。
0353デフォルトの名無しさん
05/02/21 01:45:32便宜上、add とその派生メソッド、remove および setLayout は、必要に応じて
contentPane に転送されるようにオーバーライドされています。つまり、次のように記述できます。
frame.add(child);
0354デフォルトの名無しさん
05/02/21 02:13:43つまりコンパイルエラーが出る訳ですね
0355デフォルトの名無しさん
05/02/21 02:22:23frame.getContentPane().add
frame.add
API的には、frame.addの方がAWTと同じ使い方になるから、こっち使うべき?
0356デフォルトの名無しさん
05/02/21 02:31:35↑大半のSE
0358デフォルトの名無しさん
05/02/21 02:35:58ソースを持っていく事が、これから先本当に無いなら、frame.add でも
いいんだろうけどね。
あと、2chに書き込んだり、相手がどのバージョン使ってるかわからん
場合は、当然 frame.getContentPane().add(child); と書いたほうが、
「それ、動かなかったよ」「ああ、うちは tiger だから」みたいな無駄な
やり取りが無くて済むかも。
0360352
05/02/21 02:48:18質問スレ汚しすまんでした。
0361デフォルトの名無しさん
05/02/21 04:11:32メモリ使用が怪しくて動作が何度も構築と実行を繰り返していると
PCが異常に重くなっていきます。
「java.lang.OutOfMemoryError: Java heap space」などの表示もでます。
これはNetBeansの問題ではないのでしょうか?
0362デフォルトの名無しさん
05/02/21 04:47:42社会人としては既に終わってるね。
0363デフォルトの名無しさん
05/02/21 08:09:48人生なんて結果論。
0364デフォルトの名無しさん
05/02/21 08:52:51System.outとか使いますよね。
この出力に、色を付ける方法ってないですか?
自前でStream書いて置き換えればできます?
それと…コンソールのTitle部分を変更することってできます?
教えてエロイ人…
0365デフォルトの名無しさん
05/02/21 09:16:21住人たちに問いたい。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
大きさ比べ
A=□B=□C=□ #□←テキストボックス
┌--------┐
大きい順に│並び替え│#←スイッチ
└--------┘
□>□>□ になる
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
次の数列を第10項まであらわせ
4,9,14,19,24,29,34,49,44,49
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
2つ目はただテキストで書くだけじゃだめだぞ。
スマソ オレニハ ジカンガナイ…
0366デフォルトの名無しさん
05/02/21 09:18:16意味不明なんですが
0367デフォルトの名無しさん
05/02/21 09:20:240368デフォルトの名無しさん
05/02/21 09:24:23それはコンソールの設定による。Javaとは関係ないよ
0370デフォルトの名無しさん
05/02/21 09:34:47むむ。
Javaからコードで変更かけたいんですよ。
たとえば…
System.out.println("エラー");
っていう表示の部分だけ、赤にして、
以降はまた白に戻すとか。
Titleに、稼働中のclass名を表示とか。
やっぱ無理なのかなぁ。
JNIでCを経由して、Win32APIで、とかだとできるかもしれないけど…
あまり面倒な方向に行かずに、Java内部で完結させたいんですよ。
0371デフォルトの名無しさん
05/02/21 10:10:49ズレは自分で修正してください
public class Test{
public static void main(java.lang.String args[]){
System.out.println("<HTML><BODY><PRE>");
System.out.println("大きさ比べ");
System.out.println("");
System.out.println("A=□B=□C=□ #□←テキストボックス");
System.out.println(" ┌--------┐");
System.out.println("大きい順に│並び替え│#←スイッチ");
System.out.println(" └--------┘");
System.out.println("");
System.out.println("□>□>□ になる");
System.out.println("</PRE></BODY></HTML>");
}
}
0372デフォルトの名無しさん
05/02/21 11:05:42JCurcesでも使ったら?
0373デフォルトの名無しさん
05/02/21 11:06:150375デフォルトの名無しさん
05/02/21 16:49:34public class VT100ColorTest {
public static void main(String[] args) {
String escReset = "\u001b[0m";
String escRed = "\u001b[31m";
String escGreen = "\u001b[32m";
System.out.println("normal");
System.out.println(escRed + "red" + escReset);
System.out.println("normal");
System.out.println(escGreen + "green" + escReset);
}
}
参考にしたサイト。
http://hp.vector.co.jp/authors/VA016670/escape_code.html
http://www9.plala.or.jp/sgwr-t/c_sub/ascii.html
0376デフォルトの名無しさん
05/02/21 18:55:27コマンドプロンプト(NT系)だと使えないよ。
ansi.sysはcommand.comからしか使えないし。
0377デフォルトの名無しさん
05/02/22 00:46:51出力先(コンソール?)の仕組みと言うか仕様の問題じゃないのか。
>>370のように、出力先がVT100ならVT100の仕様に合わせて出力すれば
カラーになるんだし、出力先がカラー化不可能なものならどうガンバったって
無理だろ。
0378デフォルトの名無しさん
05/02/22 01:14:360379デフォルトの名無しさん
05/02/22 01:16:28SetConsoleTextAttribute()
を呼び出す
0380デフォルトの名無しさん
05/02/22 01:18:480381デフォルトの名無しさん
05/02/22 01:30:230382デフォルトの名無しさん
05/02/22 01:45:21BeanShellなんか参考になるんでない?
0383デフォルトの名無しさん
05/02/22 02:52:52<data>
<item>
<no>1</no>
<lang>日本語</lang>
<message>こんにちわ 世界</message>
</item>
<item>
<no>2</no>
<lang>英語</lang>
<message>Hello World</message>
</item>
</data>
というxmlファイルがあった時
<data>〜</data>の中身だけ抜き出してStringなどに代入する方法とかありますでしょうか?
一行ずつ読み込むと一番上の行とか制御が難しく
0384デフォルトの名無しさん
05/02/22 02:54:540385デフォルトの名無しさん
05/02/22 03:00:00DOMやSAXの話でなく、ただStringとして扱うなら
String source = ファイルから読む処理。
Matcher mat = Pattern.compile("<data>(.+)</data>").matcher(source);
String content = mat.group(1);
とするとか。。。
0386デフォルトの名無しさん
05/02/22 03:04:51DOMとかってXMLの内容を読み込んで設定云々ではなく
ただXMLファイルの中に書かれてるのを何もいじらずに
そのまま表示することって出来るのでしょうか?
ググったりしたのですが
どうもよくわからなかったのですが・・・
0387デフォルトの名無しさん
05/02/22 03:49:21こんな感じで。
ttp://www.hellohiro.com/xmldom.htm
0388デフォルトの名無しさん
05/02/22 04:02:39<message>Hello World</message>
↓
Hello World
みたいにタグが読み込まれてしまうようです
また
Document doc = builder.parse(new File("helloworld.xml"));
でxmlファイルを取得した後
Element root = doc.getDocumentElement();
の部分でAPIなどを見てもタグの中身を抜き取って表示させる
メソッドみたいなものが少し見つからなかったですが
もし、違う方法があるのなら教えてください
0389デフォルトの名無しさん
05/02/22 04:22:03<data>〜</data> までの間を何の解釈も処理もなくそのまま文字列として取得したいのなら、
一回ファイルを全部 String として読み込んで >>385 の方法で出来るんじゃない?
0390デフォルトの名無しさん
05/02/22 04:35:55同意。
SAXを使った方法で書いてみた。
http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=21666
一番外側に出てくる data タグの内側を表示する。
タグ内に属性があらわれること等は考慮してない。
>>383 のXMLには属性が使われてなかったので。
0391デフォルトの名無しさん
05/02/22 09:05:54ファイルの先頭がD2PACKFILEで始まる圧縮ファイルで、
その中にテキストファイルが埋め込まれてるようなんですが・・・。
0392デフォルトの名無しさん
05/02/22 09:08:580393デフォルトの名無しさん
05/02/22 11:21:50タグの中身をそのまま取得したいってのは、言うなればBeanのソースコードを
取得したいってのと同じ意味だから、XMLの使い方自体を勘違いしてる
としか思えない。
0394デフォルトの名無しさん
05/02/22 12:00:28雑誌記事でも構いません
0395デフォルトの名無しさん
05/02/22 12:01:16まぁ要件を聞かずにそう断定してもしょうがない。
0396デフォルトの名無しさん
NGNG2 月末が期限として出された課題の中でどうしても解らない問題があり大変困っています.
皆さんのお力を貸していただきご教授いただけないでしょうか?
出されている課題の内容は, Java 言語で書かれたコンパイラの機能拡張が目的で,
"%"( 余りの計算 ) 機能を追加させたいのですが記述方法が解らず悩んでいます.
コンパイラのソースコードは,
http://book.gihyo.co.jp/s-com/ からダウンロードできるようになっております.
この本を読んだことがない方でも, 拡張方法のプログラムが解る方からの返信もお待ちしております.
0397デフォルトの名無しさん
05/02/22 12:31:10【初心者】Java の宿題ここで答えます 5.0【歓迎】
http://pc5.2ch.net/test/read.cgi/tech/1107350368/l50
0398デフォルトの名無しさん
05/02/22 13:22:16try {
Socket = new DatagramSocket( Frame.PORT );
RecieveStream = new byte[Frame.MAXPACKETLENGTH];
Packet = new DatagramPacket( RecieveStream, Frame.MAXPACKETLENGTH);
}
catch (SocketException e){
System.err.println( "Cant't Create Recieve Sockets" );
System.exit(-1);
}
StoredPackets = new Vector();
}
public PacketSender(UnitDataStreamStore uds, OrderStreamStore ods) {
Uds = uds;
Ods = ods;
try {
Socket = new DatagramSocket();
}
catch( SocketException e ) {
System.err.println( "Can't Create Send Socket." );
System.exit(-1);
}
}
0399398
05/02/22 13:22:55した。上はその2つのコンストラクタです。
受け取るクラスはrunメソッドを持っていてデータが来るかどうかを見
張っているので、これで通信が可能と安易に思ったのですが、2番目に
呼び出す方にSocketErrorが出ます。
ソケットを二つ作れないのでしょうか?
0400デフォルトの名無しさん
05/02/22 13:44:22原因がわからないときはe.printStackTrace();で原因を調べる
それでもわからなかったら、環境やそのprintStackTrace()の
出力を見せる。
それに変数名でSocketはやめたほうがいい
socketに変えておく
0401400
05/02/22 13:45:500402398
05/02/22 14:04:02ありがとう。
java.net.BindException: Address already in use: Cannot bind
出ました。
Addressって指定したのはPort番号だけだからその事なんでしょうか?
0403400
05/02/22 14:24:50printStackTraceでもっといろいろ出てただろう
どのメソッド内で、ソースのどこら辺で起きたとか
どこで起きてるかも分からないし、そこのソースが
無いと特定は難しい。
0404デフォルトの名無しさん
05/02/22 14:28:12ポート番号、何番指定したんだ?
「既に使われてるから割り当て無理」って書いてあるだろ。
0405398
05/02/22 15:01:51at java.net.PlainDatagramSocketImpl.bind(Native Method)
at java.net.DatagramSocket.bind(Unknown Source)
at java.net.DatagramSocket.<init>(Unknown Source)
at java.net.DatagramSocket.<init>(Unknown Source)
at java.net.DatagramSocket.<init>(Unknown Source)
0406398
05/02/22 15:11:41(;´Д`)
0407デフォルトの名無しさん
05/02/22 15:18:4010000番台以上のあいてそうなポート使うようにした方がいいぞ。
0408デフォルトの名無しさん
05/02/22 15:22:240409デフォルトの名無しさん
05/02/22 15:28:19失神したのかも
0410398
05/02/22 15:30:30なんかわかった気がします。
PacketSenderクラスがデータを送るときに、
DatagramPacket packet = new DatagramPacket( SendStream, SendStream.length,server, Frame.PORT );
とパケットを作ってるんですが、その前にコンストラクタが呼ばれた段階では、
sSocket = new DatagramSocket();
とInetAdressを指定していないので、localホストにバインドする事になり、
エラーが出るのでしょう。
送る相手のアドレス入れてみます。
0411398
05/02/22 16:06:0210001はエラー
その他は落ちました_| ̄|○
0412398
05/02/22 16:54:21UDP通信始める前に、TCP通信をしているんですが、作ったソケットを全て
closeしてないために起こるエラーでした。
私の予測は全く関係ありませんでした…
0413デフォルトの名無しさん
05/02/22 17:33:21appletでシリアルポートたたいたり印刷をしたりしなければならなくなりました。
当然セキュリティの関係で普通ならできないのですが、
「署名付のapplet」
なるものなら何とかなりそうだ。というところまで調べはつきました。
しかし、JVMのバージョンが古いものしか使えないような情報ばかりです。
いま、サンプルコードをでっち上げてテストしようとしているところなのですが、
そもそもJVM1.4以降などのappletでそんなことが可能なのでしょうか?
今回の開発では閉じられた環境の中で使用するものという条件付ですので、
セキュリティそのものの是非についてはおいといて、可能かどうかご存知の方が
いらっしゃいましたら教えていただけないでしょうか。
0414デフォルトの名無しさん
05/02/22 18:42:560415デフォルトの名無しさん
05/02/22 18:45:54OutputStream out = new FileOutputStream("hoge.exe");
out.write(......);
out.close();
とかすれば書き出せるよ。って事でなくて?
0416デフォルトの名無しさん
05/02/22 18:55:03書き出せます。過去に何度か同様の質問に回答しました。
具体的な方法については過去ログを参照してください。
0417デフォルトの名無しさん
05/02/22 18:56:08っていわれたんですが、この場合どのバージョンをインればよいのでストすしょうか?
0418デフォルトの名無しさん
05/02/22 18:57:07情報が不充分です。「javaをインスコしろ」と言った友人に聞いてください。
0419デフォルトの名無しさん
05/02/22 19:03:13最新版でも入れておけ
0420デフォルトの名無しさん
05/02/22 19:11:51Java Web Start って、従来型のアプレットのように
html(ブラウザ)に張り付いて動作させるっていう使い方もできるんですか?
0421デフォルトの名無しさん
05/02/22 20:55:40んーと、Webサーバとクライアントブラウザが別々のマシンなの?
別々のマシンだとして、叩こうとしているシリアルポートは
サーバマシンなの?クライアントマシンなの?
サーバマシンならばHORBなどの分散処理を上手く使えば可能。
クライアントマシンならば不可能・・・だと思う。
もしできてしまったらとっても危険。悪意のあるサイトを閲覧しただけで
HDDをフォーマットされたりしちゃうからね。だから仕様上できない。
おいらが知ってる方法はActiveXくらいかな?あれなら署名付き
じゃなくてもクライアントが許可すればローカルマシンを操作できちゃう。
署名付きappletってのは本当にJavaAppletなの?
話は逸れるけれど、古い情報ばかりというのはJava1.1という意味かな?
M$とSunがケンカした結果、デフォルトのWindowsのJVMは1.1相当しか
搭載されていない。だからアプレットはJava1.1で作る場合が多い。
0422デフォルトの名無しさん
05/02/22 21:13:08可能です。セキュリティポリシーファイルを作成しコントロールパネルの Java Plug-in から
実行パラメータを指定してやれば大丈夫。
http://www.ep.u-tokai.ac.jp/~nakazato/API/1.3.0/docs/ja/guide/security/PolicyFiles.html
0423デフォルトの名無しさん
05/02/22 21:28:16http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/plugin/developer_guide/security.html
これ読んで出直してきてください。
0424デフォルトの名無しさん
05/02/23 00:02:05> 署名のないアプレットはすべて、標準のアプレットセキュリティモデルで実行されます。
「標準のアプレットセキュリティモデル」って何か知ってるか? ドキュメントだけ読んで
分かった気になる典型的な莫迦だな。
今すぐ ${user.home}\.java.policy ファイルに
grant {
permission java.security.AllPermission;
};
と書き Yahoo! のトップページでも取ってくるアプレット書いて見れ。
0425デフォルトの名無しさん
05/02/23 00:11:510426デフォルトの名無しさん
05/02/23 01:10:060427デフォルトの名無しさん
05/02/23 01:13:130428デフォルトの名無しさん
05/02/23 01:16:510429デフォルトの名無しさん
05/02/23 01:26:27クライアントPCに接続されたカードリーダーでカードの情報引き出してをアプレット経由で
サーバーへ送信とかやってたな・・・
0430デフォルトの名無しさん
05/02/23 01:31:50普通に使うだろう。めんどくさいし。金融系のシステムでさえみたことあるわ
0431デフォルトの名無しさん
05/02/23 01:40:05クライアント PC のアセット環境アップデートなんて一度や二度は設計したことあるだろう。
Web デザイン専門や場末プログラマはどうか知らんが。
そもそも何のセキュリティ対策も無く一台のクライアントでイントラとインターネット兼用して
いるような環境があるとしたらそっちの方が問題だな。
0432デフォルトの名無しさん
05/02/23 01:56:31クライアントのポリシーファイルいじるよりも、
署名付きでやったほうが、クライアント側の導入の手間がないから良いんじゃないの?
0433デフォルトの名無しさん
05/02/23 02:08:19署名されていれば、なんでもかんでも信頼してしまうわけじゃないでしょ。
0434デフォルトの名無しさん
05/02/23 04:29:000435デフォルトの名無しさん
05/02/23 04:30:49全部信頼してしまう状態にしてしまうのは改悪以外のなにものでもないだろ
0436デフォルトの名無しさん
05/02/23 05:18:200437デフォルトの名無しさん
05/02/23 06:00:040438デフォルトの名無しさん
05/02/23 08:00:47toolkitのgetDesktopPropertyを使えば
タイトルバーの高さとかその他のOS側の情報を取得できる、
と、思うんですが、
肝心の指定すべきpropertyNameがわかりません。
プロパティ名と対応する情報の一覧とかどっかにありませんか?
0439デフォルトの名無しさん
05/02/23 09:11:36タイトルバーの高さとかって java.awt.Container#getInsets() で取ってくるのでは?
0440デフォルトの名無しさん
05/02/23 09:48:42これのMockStrutsTestCaseだと、アクションサーブレットを継承して作った
クラスのinit()は呼び出して貰えないんだろうか。
自分の記述がタコなのか、さっぱり初期化メソが呼び出して貰えなくてのう。
とりあえず、CactusStrutsTestCaseでも試して見ようかななんて思ってる俺ガイル。
0441デフォルトの名無しさん
05/02/23 09:59:38つーか、strutsの場合、自分で作る初期化部分はpluginでやるべきじゃね?
0442440
05/02/23 10:19:16プラグインがどこかもさっぱり理解してないんだが。
inアクションにそんな事書いてあったなぁ。
他人が作った物を引き継いでるもんで、もうね(・ω・)
まぁ、俺が作っても大差ないぼこぼこプログラムになったとは思うんだけれども。
カキュタスはサーブレットをnewするような記述をどっかで見かけたから期待しつつ調査中。
0444デフォルトの名無しさん
05/02/23 10:56:35↓こんなプログラムを作って desktopProperties を取り出してみたが空っぽの Map が
取れただけだったな。そもそもプロパティ名って環境依存だから公式発表無いんじゃないか。
import java.awt.*;
import java.lang.reflect.*;
import java.util.*;
public class a{
public static void main(String[] args) throws Exception{
Toolkit tk = Toolkit.getDefaultToolkit();
Field field = Toolkit.class.getDeclaredField("desktopProperties");
field.setAccessible(true);
Map desktopProperties = (Map)field.get(tk);
System.out.println(desktopProperties);
}
}
0445デフォルトの名無しさん
05/02/23 13:18:15困ったらソース嫁。
今MockStrutsTestCaseのソース読んでたら、setUp()にこんなコードがあった。
if (actionServlet == null)
actionServlet = new ActionServlet();
つまりActionServletクラスで決め打ちになってて、
残念ながらweb.xmlを読みそこで指定されたクラスを使うような作りにはなってない様子。
一応、変数actionServletは、MockStrutsTestCaseのprotectedなインスタンス変数なので、
自前で初期化する余地はある。ガンガレ。
それから、ActionServlet#init(ServletConfig)は、
デフォルトの実装ではactionPerform()実行時に行われるみたい。これも注意。
読み違えてるかもしれんが、参考になれば。健闘を祈る。
0446デフォルトの名無しさん
05/02/23 13:32:43署名付のappletで全て解決しました。
というのも、署名付のappletを信頼してしまうと、通常のローカルのアプリケーションと同じように
ローカルリソースにアクセスできてしまいます。
もちろん通常のアプリケーションと同じように動いちゃいけないんでしょうが、お客さんがOKしているので
あとは関係者に「責任者がOK」したっつ〜ことを連絡して、なんかあったらそいつのせいにしてねっていう
根回しだけしておきます。
ちなみにpolicyの問題は特にありませんでした。
もちろん全て駄々もれのpolicyなのである意味問題だらけですが(笑)
みなさんご協力ありがとうございました。
0447440
05/02/23 13:34:37ありがとん(・ω・)ガンガルよ。
ただいまカキュタス使おうとしてコネコネコネコネ。
日本語訳が進んでてありがたーいけど、それでも頭がパンクしそう。
0448デフォルトの名無しさん
05/02/23 14:33:28クライアント数が少ないイントラなら、
「全クライアントのポリシーファイル設定」なんて大した労力じゃないんだろうね。
0449デフォルトの名無しさん
05/02/23 18:32:04class HashtableTest {
public static void main(String args[]) {
Hashtable numbers = new Hashtable();
numbers.put("one", new Integer(1));
}
}
を javac -Xlint:unchecked HashtableTest.java すると、
警告: [unchecked] raw型 java.util.Hashtable のメンバとしての put(K,V) への無検査呼び出しです。
と出てくるのですが、どうしたら回避できますか?
0450デフォルトの名無しさん
05/02/23 19:14:26ソースを変えずに、
javac -source 1.4 -Xlint:unchecked HashtableTest.java
とするか、あるいは、ソースを、
Hashtable<String, Integer> numbers = new Hashtable<String, Integer>();
みたく変える。
0451デフォルトの名無しさん
05/02/23 20:10:34クラスパスには全てJARファイルがあります。
set clspath=c:\lib //JARファイルのパス
それで
javac -classpath %clspath% source.java
がコンパイルできないのですが、どうするのでつか?
0452デフォルトの名無しさん
05/02/23 20:13:570453デフォルトの名無しさん
05/02/23 20:14:22クラスパスは、クラスの置いてあるフォルダを指定するか、
JARファイルのパスを指定するかのどちらかです。
○ JARファイルのパスを指定する。(複数ある場合はセミコロン区切りで)
○ クラスの置いてあるフォルダを指定する。(パッケージ考慮して)
× JARファイルを置いてあるフォルダを指定する
0455デフォルトの名無しさん
05/02/23 22:56:16おまえ、社会人入学した30代以降の大学院生に対して失礼だぞ。
現役でも博士課程は30ちかくなるしな。オーバードクターで30超えることもある
0456デフォルトの名無しさん
05/02/23 23:00:59J2EE本がいいと思われ。
昔、JavaMail完全解説という本があったが使えなかった。
Apache James本もいいぞ。
JavaMailつかいたかったらネットでサンプルコードをみたほうが速いぞ
0457デフォルトの名無しさん
05/02/24 00:14:01おまえ読解力無いな。
>>362 はそういうことは言ってないと思うが。
卒業したのにいつまでも学生気分に浸っているから人生終わってるって言われるんだよ。
0458デフォルトの名無しさん
05/02/24 00:27:23知る限りだと、Sunのサイトと洋書のJava Nioしかないみたいです。
0459デフォルトの名無しさん
05/02/24 00:34:360460デフォルトの名無しさん
05/02/24 00:46:47みつけました<変わったハンドルの人で助かったw
ノンブロッキングのサンプルもゲットしたんで、とりあえず動かして
ちょっと変えて動かしての繰り返しで頑張ってみます。
ありがとうございました。
0461デフォルトの名無しさん
05/02/24 00:47:22その実装クラスで「A()」の実装(宣言すら)をしなくても
コンパイルエラーにならないのは何でですか?
intメソッドにすると実装しろって怒られるんですが。。。
0462デフォルトの名無しさん
05/02/24 01:03:53可能性1:
その実装クラスでは直接 A() を宣言してないけれど、
実装クラスの上位クラスで A() を宣言している。
結果として、実装クラスには継承されたメンバとして A() がある。
可能性2:
そのインタフェースの実装クラスが abstract クラスである。
まだあるかなぁ……。
# 大文字で始まるメソッド名キモイ。
0463デフォルトの名無しさん
05/02/24 01:19:21環境はRedHat+Apache+Tomcat+JavaServlet+JSPのような構成を考えております。
要求仕様として、下記の内容があがっています。
・サイト登録ユーザAとサイト登録ユーザBとの間でメールとファイル交換が可能
・両ユーザは互いに相手のメールアドレス等の情報は非公開
・メールの件名や本文などはサイト側にログとして残す
・ファイル交換用のファイルはサーバに一時的に保存される
・アップロードするファイルの制限サイズは少なくとも500MByte
・専用のクライアントアプリ等は作らない方向で
というようなものです。
簡単にやろうと思えば、Web上からのプライベートメッセージ&アップローダになると思うのですが、
サイト登録者にメールサーバ及びFTPサーバのアカウントを自動的に発行するのが、
仕組み上スマートではないかとの話があがっております。
上記を踏まえた上で質問させてください。
・メールサーバ及びFTPサーバのアカウントをServletから自動発行する事は現実的か?
・レンタルサーバ等でも可能か?
・それを行った場合の注意事項や制限事項
・HTTPでのファイルアップロードの場合文頭に挙げた環境でファイルサイズの制限等がかかるのか
・制限がかかる場合の対処法
・制限がかかる場合にレンタルサーバ等で対処できるか
お分かりになる方いらっしゃいましたらご教授お願い致します。
0464デフォルトの名無しさん
05/02/24 01:20:02ちゃうちゃう、JDK や業務ソフトや運用ソフトのセットアップしてマシン配布するだろ、って意味。
ヨドバシで買ってきたようなパソコンを勝手にイントラにつなげて業務できるようなセキュリティ
グズグズのイントラなんてありえん。
0465デフォルトの名無しさん
05/02/24 01:28:33銀行系は業務ソフトセットアップ済みのマシン配布するとか言うのは分かるが
だからと言ってセキュリティポリシーを >>424 のようにして良い訳が無い。
0466デフォルトの名無しさん
05/02/24 01:29:490467デフォルトの名無しさん
05/02/24 01:33:59それのどこがWebサービス?
「Webサービス」と「Web上で提供するサービス」を混同してないか?
0468デフォルトの名無しさん
05/02/24 01:40:34当たり前だ、どのリソースへの権限を与えるかなんてここで想定できないだろ。
誰が元の質問者の本番システムの設定を >>424 の通りに書けなんて言ってる。
出来るか出来ないかの話。
0469デフォルトの名無しさん
05/02/24 02:12:24webサービス=SOAPと混同していないか?
0470デフォルトの名無しさん
05/02/24 02:18:12ヨソの仕事は知らないんですが、
「JDK や業務ソフトや運用ソフトのセットアップしてマシン配布」
しないイントラってありえないものなんですか…?
ウチはそこまでセットアップして配布なんてめったにないよ。
ウチの仕事が小規模なんだろうな。。。
0471デフォルトの名無しさん
05/02/24 02:32:42すまん表現が悪かった。単にイントラというとファイルサーバ+簡単な Web/DB アプリくらいで済む
ものも含まれてしまうな。閉じたネットワークで専用端末使って顧客・契約情報扱うような、昔の
オンラインシステムのようなものだよ。
0473デフォルトの名無しさん
05/02/24 02:43:36467 じゃないけど、サーブレットや JSP が HTML 吐いてブラウザで表示させる類のものは
Web サービスとは呼ばないよ。
> ・メールサーバ及びFTPサーバのアカウントをServletから自動発行する事は現実的か?
サーブレットでアカウント管理用シェルを叩くのはたまにやる。前のプロジェクトの CVS
サーバをそれでやったし。
> ・レンタルサーバ等でも可能か?
root 権限がもらえる契約なら可能じゃない? レン鯖使ったことないから契約上
どう運用すれば良いか知らんけど。
> ・それを行った場合の注意事項や制限事項
サーブレットからシェルを起動するセキュリティに関してはいろいろあるから
自分で調べろ。特に、入力値をそのまま文字列連結してシェルとして起動する
のは危険極まりないから止めるように。
> ・HTTPでのファイルアップロードの場合文頭に挙げた環境でファイルサイズの制限等がかかるのか
1リクエストの制限サイズは Apache の設定で変更可能。
> ・制限がかかる場合の対処法
設定変えれ。
> ・制限がかかる場合にレンタルサーバ等で対処できるか
Apache の設定を変更する権限があるなら。root 持ってるならとりあえずOK。
0474デフォルトの名無しさん
05/02/24 02:55:44それはそれでシステム設計としては理想的だから否定する気はないんだけど、出所の
分からないマシンを勝手に繋げられるというのを嫌う客は結構居るよ。台数足りないから
って家のノート PC 持ってきたらウィルス入ってたとか、P2P ソフトが裏で何か怪しいことを
やってたとか、プレインストールソフトが一生懸命どこかと通信しようとしてたとか、基幹
に繋がっているマシンが同時に AirH" でインターネットに剥き出し状態になってるとか。
特に金融関係でそんな運用してて金融庁の監査で発覚したらエラいことになる。
0475デフォルトの名無しさん
05/02/24 03:23:270476デフォルトの名無しさん
05/02/24 03:29:270477デフォルトの名無しさん
05/02/24 03:39:040478デフォルトの名無しさん
05/02/24 03:48:200479デフォルトの名無しさん
05/02/24 04:33:12セキュリティポリシーの方が安全だよ。
0480デフォルトの名無しさん
05/02/24 05:18:02自分で作ったクラスをrt.jarを弄らずに既存のクラスパッケージにぶち込む事って出来ますか?
GridLayoutを継承したクラスが必要になったんですが、
Componentで使ってる変数がパッケージ外からだと使えんと言われたもんで。
0481デフォルトの名無しさん
05/02/24 05:21:00その必要な変数に対する getter って無いのか? 変数名を挙げてみ。
0483デフォルトの名無しさん
05/02/24 09:22:05だれがそのポリシーを管理するかだよね。アプレットの外注先
がサンプルで添付したポリシーファイルを中身読まないでクライアントに
追加させるダメダメ情シスって結構おおいよ。結果的にポリシーまで
アプレットの作成側に任せる(よく言えば信頼している)ことになるなら、
配布の手間が省けるぶん署名付アプレットのほうがましじゃんって
思うけど、めんどいから黙ってる。
0484デフォルトの名無しさん
05/02/24 09:40:37話の前提を特殊ケース (ダメダメ情シス) に合わせるのは間違いと思われ。という
漏れも詳しくないんだけど、正式に電子署名を取得するのって VeriSign みたいな
CA と契約(?)する必要があるんじゃない?
なんかそっちの方が客的にめんどくさそう (´・ω・`)
0485デフォルトの名無しさん
05/02/24 09:54:090486デフォルトの名無しさん
05/02/24 10:01:16出来るならそっちの方が楽でしょ。アプリケーションに必要な権限も JNLP に記述できるし。
ただブラウザベースの Web アプリと連携やセッション情報共有しなきゃいけない場合は
アプレットじゃないとだめだね。
0487デフォルトの名無しさん
05/02/24 10:27:17よく出てくる話だけど、テスト証明書で済ませちゃうっていうのはダメ?
良くないのは、分かってるんだけど。
しょぼいイントラのために、VeriSignまで申請するのはめんどくさいので、
小規模なイントラならテスト証明書もありかなぁーなんて思ってるんですが。やっぱダメ?
要クライアントセットアップだけは嫌なんだな。
0488デフォルトの名無しさん
05/02/24 10:34:08あんまいみはないが
0489デフォルトの名無しさん
05/02/24 10:34:21外部の敵より内部の敵の方が恐いぞ
0490デフォルトの名無しさん
05/02/24 10:50:23金と運用と使い勝手に絡むからダメかどうかは客が決めるでしょ。設計屋は選択肢を出すだけ。
1. CA に金払ってイントラから外部に繋がる穴を開ける
2. テスト証明書を使って毎回出る「この証明書は〜」ダイアログをガマンする (毎回出るんだっけ?)
3. ポリシー設定してクライアントに配布
大抵の客はイントラなら 2 か 3 だな。買って来た PC 繋げればそのまま使えるのが売りの
システムなら 2 だし、JRE 以外のアプリのインスコや配信が確立されてるなら 3 だし。
1 を選択するのはインターネット上で不特定多数に使わせる場合だけだと思う。
まぁ、初回だけテスト証明書使った AllPermission アプレットでセキュリティポリシーファイル
書き換えるという手もあるが。
0491デフォルトの名無しさん
05/02/24 11:07:05閉じたネットワークでCAへの問い合わせが出来なくても問題なし。
テスト証明書を発行したときに使った自前CAのルート証明書を
各クライアントにあらかじめ入れておけば警告は出ないから
我慢しなくてよくなるよ。
0492デフォルトの名無しさん
05/02/24 11:09:34それは結局端末セットアップが必要という話ではないのか。
0493デフォルトの名無しさん
05/02/24 11:37:261つのappletの中でCheckboxとChoiceは一緒には使えないのでしょうか?
使えるのならどうしたらよいか教えてください。
0494デフォルトの名無しさん
05/02/24 11:39:28使えます。むしろ使えないと判断した理由を教えてください。
public class A extends Applet{
public void init(){
this.add(new Choice());
this.add(new Checkbox("orz"));
}
} // 超適当、これはもうコンパイルできるかもわからんね
0495デフォルトの名無しさん
05/02/24 11:45:04ItemStateChangedのイベントのなかで両方を書くエラーが発生して、
片方だけにするとエラーなしなんです。
0496デフォルトの名無しさん
05/02/24 12:02:03ワラタ
0497デフォルトの名無しさん
05/02/24 12:03:28ご返答ありがとうございます。
Webサービスという言葉が誤解を招く表現だったようで申し訳ありません。
(このようなサービスの一般的な総称のようなものはあるのでしょうか?)
>>サーブレットでアカウント管理用シェルを叩くのはたまにやる。
>前のプロジェクトの CVSサーバをそれでやったし。
メールサーバやFTPサーバも同様の方法でできそうですね。
Sendmail(qmail)やImageMagicを叩いたりしたことはあったのですが、
別サーバのアカウント管理も気をつければ問題はなさそうですね。
また、root権限がないと今回の仕様は完全に実装できない事がわかりました。
この場合のroot権限というのはどのようなものを指すのでしょうか?
・サーバの管理者(もしくはそれに近い)権限
・ユーザ権限
・プログラムがotherではなくユーザ権限で動作する
つたない質問内容ですみません。
今まで頼り切っていたサーバ管理者さんと離れてしまい、知識とノウハウが殆どない状況です。
>>サーブレットからシェルを起動するセキュリティに関してはいろいろあるから>自分で調べろ。
>特に、入力値をそのまま文字列連結してシェルとして起動する>のは危険極まりないから止めるように。
了解しました。シェルに関する問題があった際の被害は想像を絶する規模だと自覚しておりますので、
セキュリティに関して入念に調べておきたいと思います。
また、レンタルサーバ各社の仕様等も含め調査していきたいと思います。
ご回答ありがとうございました。
0498デフォルトの名無しさん
05/02/24 12:13:56テスト証明書でも、CAの証明書でもダイアログはどっちも出るよ。文言が違うけど。
#署名してあるだけでイキナリ実行はあり得ない。
テスト証明書:
「このコードをインストールおよび実行しないことを強くお勧めします」とか
CA:
「〜はこの内容が安全であることを表明しています。〜による表明を信頼する場合にのみ・・・」
あと、どちらも以後信頼して、ダイアログを出さないようにはできるので、
>>490の1.と2.の違いは、ユーザの操作から見たら最初の違いだけ。
0499498
05/02/24 12:15:39ごめん、この辺は、Plug-inのバージョンとか、Java Web Startだったりで多少違うかも。
不確かな情報でした。
0500487
05/02/24 12:18:33>大抵の客はイントラなら 2 か 3 だな。買って来た PC 繋げればそのまま使えるのが売りの
>システムなら 2 だし、
やっぱりそれもアリですよね
ひろみちゅ からは怒られそうだけど。
0501デフォルトの名無しさん
05/02/24 12:52:34第三者にも状況が伝わる日本語でおながいします
>>497
root 権限=サーバの管理者権限。つか、それがなければ FTP 鯖立てたりアカウント
追加なんて出来ないだろ。
>>500
普通、客なら「テスト証明書」なんて怪しげなものを嫌がって 2 が選択肢から外れる
のが多いけどな。>>498 の「このコードをインストールおよび実行しないことを強く
お勧めします」なんてダイアログを利用者に出すくらいなら、「このファイルをここに
置け」って通達する方を選ぶ。どうせ JRE のインストールとか手順としてまとめるんだし。
無印 JavaHouse が Brewers と合併してからひろみちゅんとこは閑古鳥だな。
最近ずっと沈黙してないか。
0502デフォルトの名無しさん
05/02/24 12:58:35root権限を知らないやつが、Web上でアカウント管理シェルを実行する
システムを設計するなんて、怖すぎやしないか?
0503デフォルトの名無しさん
05/02/24 13:03:46ユーザ権限とか other とか理解してるみたいから、単に確認とちがうか。
0504デフォルトの名無しさん
05/02/24 14:22:140505デフォルトの名無しさん
05/02/24 14:27:04大変くだらない問いかけで申し訳ないのですが、質問させて下さい。
JAVAプログラミングの参考書を見て勉強中なのですが、
コントロールパネルを使った環境変数の設定方法について教えてください。
当方のOSはWindows Meなのですが、
コントロールパネルを使って環境変数の登録をすることは、Meでは無理なのでしょうか?
わからないながら調べたところによると、Windows Me は Config.sys を処理できないため、
環境変数を登録できない、というようなことが書いてありましたが、、、
まとめサイトを見ることができなかったので、質問してしまいました。
よろしくお願いします。
0506デフォルトの名無しさん
05/02/24 14:29:34嫁
http://support.microsoft.com/default.aspx?scid=kb%3bja%3b880124
0507デフォルトの名無しさん
05/02/24 14:34:090508デフォルトの名無しさん
05/02/24 15:14:37違うアプリケーションでパケットを送るSenderと受け取るRecieverは上手く
通信できました。
しかしそれらのコードを1つのアプリで包み、ユーザにSenderとRecieverを
選択させて同一マシンで通信しようとすると、後からSocketを作ろうとした
ほうが、Socketを作れないみたいです。
この様なプログラムを制作するためには、アプリをSender、Recieverと2つ
作って置いて、その後コードを繋いで別機で実験というような方法を取るの
でしょうか?
0509デフォルトの名無しさん
05/02/24 15:24:36ゆとり教育世代?
第三者にも状況が分かるだけの国語を勉強してもう一度おこしください。
0510デフォルトの名無しさん
05/02/24 15:25:11>>398の人ですか?
0511デフォルトの名無しさん
05/02/24 15:55:38そんなことはない
0512デフォルトの名無しさん
05/02/24 17:49:37Linuxサーバ上でJavaを実行して別APサーバのServlet呼び出して動かしたい
0513デフォルトの名無しさん
05/02/24 17:56:50HTTPリクエストを送る
0514デフォルトの名無しさん
05/02/24 18:02:49URL クラスを使って HTTP で通信しる。
openStream() した後に入力ストリームからレスポンスを取り出せる。
0515デフォルトの名無しさん
05/02/24 20:49:09ネットワーク接続や記憶領域の書き込みのためにString←→byte配列の変換をしたいのですが、ビットシフトで出来るということは分かりましたが、どうコーディングすればよいか分かりません。
toStringなどメソッドを使う方法は見つかりましたが…
教えてください
0516デフォルトの名無しさん
05/02/24 21:57:50ビットシフトは関係ないような気がする。
String → byte[] するには、getBytes() メソッド、あるいは、getBytes(String enc) メソッドを使い、
byte[] → String するには、String クラスのコンストラクタを使うとよいと思う。
以下、例。(例外処理は端折り気味)
public class Main {
public static void main(String[] args) throws java.io.UnsupportedEncodingException {
String org = "テスト文字列";
byte[] byteArr;
// 文字列 org をプラットフォームのデフォルト文字エンコーディングに従ってバイト配列に変換
byteArr = org.getBytes();
hexPrint(byteArr);
// 文字列 org を SJIS のバイト配列に変換
byteArr = org.getBytes("SJIS");
hexPrint(byteArr);
// 文字列 org を UTF-8 のバイト配列に変換
byteArr = org.getBytes("UTF-8");
hexPrint(byteArr);
// UTF-8 のバイト配列を文字列に直す
String str = new String(byteArr, "UTF-8");
System.out.println(str);
// UTF-8 のバイト配列を無理やり SJIS として文字列にしてみる
str = new String(byteArr, "SJIS");
System.out.println(str);
}
0517516 の続き
05/02/24 21:58:42public static void hexPrint(byte[] byteArr) {
for (int i=0; i<byteArr.length; i++) {
int val = byteArr[i] < 0 ? byteArr[i] + 0x100 : byteArr[i];
System.out.print(Integer.toHexString(val) + " ");
}
System.out.println();
}
}
0519デフォルトの名無しさん
05/02/25 09:42:220520デフォルトの名無しさん
05/02/25 09:48:58request → javax.servlet.http.HttpServletRequest
response → javax.servlet.http.HttpServletResponse
application → javax.servlet.ServletContext
session → javax.servlet.http.HttpSession
JSP オブジェクトって何?
0521デフォルトの名無しさん
05/02/25 10:03:11>>JSP オブジェクトって何?
すんまあせん、クラスの間違いです
回答してくださったrequestとかの事っす
でもAPIにはservletパッケージの説明ないですね
sunのサイト探したんですけどないっぽいし
http://java.sun.com/reference/api/index.html
皆さんこういう本買ってるんですかね?
http://www.pearsoned.co.jp/washo/java/wa_int98-j.html
0522デフォルトの名無しさん
05/02/25 10:03:30Syntax Reference
http://java.sun.com/products/jsp/docs.html
仕様
http://java.sun.com/products/jsp/docs.html
(多少古いけど)さくっと日本語で
http://suite.yoko.ne.jp/tsjsp/
0523デフォルトの名無しさん
05/02/25 10:07:30http://java.sun.com/j2ee/ja/jsp/download.html
>でもAPIにはservletパッケージの説明ないですね
J2EEのAPIリファレンスにある(Tomcatにも入ってくる)
http://java.sun.com/j2ee/1.4/docs/api/index.html
0524デフォルトの名無しさん
05/02/25 10:21:12もう少しsunのサイトにも目を通しておきます
0525512
05/02/25 15:14:14URLConnection conn = url.openConnection();
conn.setDoOutput(true);
conn.setUseCaches(false);
これじゃ駄目なん?
サーブレット動かんよ
0526デフォルトの名無しさん
05/02/25 15:15:41そのサーブレット、ブラウザで行ったときは、ちゃんと実行できるのか?
0527512
05/02/25 15:17:330528デフォルトの名無しさん
05/02/25 15:29:10例外がでてなければ
その続きが知りたい
0529512
05/02/25 15:35:37Javaクラスは正常終了。
でたらめなURLを入れると例外が出ることを考えると、
どうやらコネクション自体は正常に張れてるらしい。
問題はそこからでServlet内のメソッド内でSystem.outと
ログ出力やってるんだがさっぱり出力されない。
ブラウザからURL直指定するとちゃんと出るんだけど。
WebLogicのaccess.logを見るにその時はちゃんとアクセスログ出てるし。
さぱーりわからん。
doGetが呼ばれるんとちゃうのかな?
0530デフォルトの名無しさん
05/02/25 15:44:21出力ストリームをクローズしてないとか?
あと、HttpURLConnectionを使えばgetRequestMethodでPOSTかどうか
確認できるけどね
0531デフォルトの名無しさん
05/02/25 15:44:51○ >>529
失礼
0532デフォルトの名無しさん
05/02/25 16:03:15HttpURLConnection使ったら行けたっぽい!!
問題はまだイパーイあるけど後は自力で調べます。
どうもありがとー
0533デフォルトの名無しさん
05/02/25 16:19:280534370
05/02/25 18:50:58>意見を下さった皆様
ありがとうございました。
とりあえず、モノは趣味で組んでるものなので、
ここはあえて、javaw起動のjava製疑似コンソールで行ってみようかと思います。
最初からある程度出力の切替を想定して、
一番基底のクラスで一括してコンソール出力してたので、
GUIさえ立ててしまえば、それほど手間じゃないかもなぁと。
とりあえずお礼代わりに報告をば。
本当にありがとうございました。
0535デフォルトの名無しさん
05/02/25 22:16:36もう解決したみたいだが、URL クラスや URLConnection クラスが実際に通信をするのは
URL#openStream()/URLConnection#getInputStream() で取得したストリームから最初の
1 バイトを取り出した時 (その他の条件でも発生するかも)。つまりクラスの使い方によって
通信が必要ないとみなされれば通信しないので注意。
0536デフォルトの名無しさん
05/02/26 00:19:41参照の実態はポインターなのに、「pointer」という言葉を使わず、
頑なに「reference」で通しているのに、なぜ例外の名前にだけ、
「pointer」を使うのですか ?
これだけ例外なのですか?
0537デフォルトの名無しさん
05/02/26 00:26:140538デフォルトの名無しさん
05/02/26 00:27:180539デフォルトの名無しさん
05/02/26 00:34:190540デフォルトの名無しさん
05/02/26 00:55:470541デフォルトの名無しさん
05/02/26 01:05:00参照は意外と難産の末に生まれてきたという歴史がある。
実態はポインターなんて言ったら参照の母ちゃんブチキレですよ?
0542デフォルトの名無しさん
05/02/26 01:10:43詳しく教えてー
0543デフォルトの名無しさん
05/02/26 01:37:37ぬめり具合がバグの性質を表している。
0544デフォルトの名無しさん
05/02/26 01:39:48http://java.sun.com/j2ee/sdk_1.3/ja/techdocs/api/
0545デフォルトの名無しさん
05/02/26 11:31:49そんなバカにも出来る言語をと、Javaからポインターという「言葉」が隠蔽された。
0546デフォルトの名無しさん
05/02/26 11:56:540547デフォルトの名無しさん
05/02/26 12:57:55Java に無いのはポインタじゃない。
ポインタ演算だ。
0548デフォルトの名無しさん
05/02/26 14:50:53どっちもあふぉ
0549デフォルトの名無しさん
05/02/26 19:04:31wscript.exe jsファイル
を呼び出しています。
jsファイルではOfficeのWord又はExcelのとあるファイルを開き、
対象のOfficeファイルのVBAを実行しています。
そのVBAの中で、先ほどJavaアプリで作成したXMLファイルを読み込みたいのですが、
エラーでできません。
エラー内容は
"プロセスはファイルにアクセスできません。別のプロセスが使用中です。"
というものです。
Javaアプリがその作成したXMLファイルを使用中、ということなのでしょうが、
どうしたら、そのXMLファイルからプロセスを解放できるのでしょうか?
XMLファイルは
TestFileMakerクラスのmakeメソッド内で、
java.io.File#createNewFileを呼び出して作成、
といった感じです。
WinXPProSP2、Eclipse3.0.1で開発しています。
よろしくお願いします。
0550デフォルトの名無しさん
05/02/26 19:41:39javaで作ったファイルクローズしましょう
0551デフォルトの名無しさん
05/02/26 19:46:33リクエストをまたがってDBトランザクションを1つにすること可能でしょうか?
一回目のリクエストでbeginして
二回目のリクエストパラメータでCコミットするかロールバックするかを判断する
と、いうようなことです
0553デフォルトの名無しさん
05/02/26 20:10:05できるよ。普通はそんなこと、しねーけどな。
楽観的ロックでググれ。
0554デフォルトの名無しさん
05/02/26 20:16:54しないのか?
普通は必要な機能だろ?
0555デフォルトの名無しさん
05/02/26 20:24:43おまいとは開発対象としてる業務要件が違うのかもな。
俺は WebLogic、WebSphere、Tomcat で 10 以上の
Web システムを開発してきたが、リクエストをまたがるロックは
してないな。
リクエストをまたがる悲観的ロックが業務要件的に
必要なことはなかった。
0556デフォルトの名無しさん
05/02/26 21:07:25一つ目のリクエストを投げて行ロックして、レスポンスが返ったあと、
二つ目のリクエストが来なかったらどうするんだ?
0557デフォルトの名無しさん
05/02/26 21:22:20それは >>554 に聞いてやれ。
0558デフォルトの名無しさん
05/02/26 21:38:10PixelGrabber pg = new PixelGrabber(image , 0 , 0 , -1 , -1 , true);
try { pg.grabPixels(); }
catch (InterruptedException e) { }
int px[] = (int[])pg.getPixels();
for(int index = 0 ; index < px.length ; index++)
if (px[index] == ((255 << 24) | (255 << 16) | (255 << 8) | 255))
px[index] = (255 << 24);
ImageProducer ip = new MemoryImageSource(
pg.getWidth() , pg.getHeight() , px , 0 , pg.getWidth());
this.img = createImage(ip);
これで画像の中の色が白いピクセルを黒に変換できる、らしいんですが
疑問1・for文のとこ、あれでなんで全部のピクセルをチェックできるの?
疑問2・255を左にシフトしてるけど24って・・・あふれてない?
どうかご教授ねがいます!!
0559デフォルトの名無しさん
05/02/26 21:41:32PixelGrabberを調べればその疑問は解決できる
0560デフォルトの名無しさん
05/02/26 21:58:31try { pg.grabPixels(); } で全部終わるまでし続けるわけですよね?
それで疑問1は解決なんでしょうか?
0561デフォルトの名無しさん
05/02/26 22:15:37単純にクロをセットしているだけでは?
0562デフォルトの名無しさん
05/02/26 22:30:17どうも。黒をセットしようとしてるのはわかるんですが
255 << 24
これっていらなくないですか?馬鹿ですいません(・ω・` )
0563561
05/02/26 22:35:490564デフォルトの名無しさん
05/02/26 22:48:59ちがうだろ。forで設定してるんだろ。
↓ピクセルがフルビット(白)なら
if (px[index] == ((255 << 24) | (255 << 16) | (255 << 8) | 255))
↓アルファ値だけ設定する(黒にする)
px[index] = (255 << 24);
0565558
05/02/26 22:58:37> ↓ピクセルがフルビット(白)なら
>if (px[index] == ((255 << 24) | (255 << 16) | (255 << 8) | 255))
”| ”ってORですよね?0xFF0000FFとか白じゃなくても真になりません?
> ↓アルファ値だけ設定する(黒にする)
>px[index] = (255 << 24);
これは理解出来たかも。つまり0xFF000000をセットしてるわけですよね。
0566デフォルトの名無しさん
05/02/26 23:00:270567デフォルトの名無しさん
05/02/26 23:10:030xff000000 | 0x00ff0000 | 0x0000ff00 | 0x000000ff
↓
0xffffffff
0568558
05/02/26 23:14:16うわ〜やっぱりそうなのか〜。それ一応考えたんだけど納得出来なかったんですよ。
でもこれでなんとか解決できそうです。レスしてくださった方々、ありがとうございました♪
0569デフォルトの名無しさん
05/02/26 23:46:270570デフォルトの名無しさん
05/02/26 23:47:230571デフォルトの名無しさん
05/02/27 00:26:55import java.awt.event.*;
public class Color extends Frame{
public Color() {
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
public void paint(Graphics g)
{
g.setColor(Color.red);
g.drawString("コメント",20,60);
g.setColor(new Color(255,128,128));
g.drawString("コメント",20,80);
}
public static void main(String[] args)
{
Frame w = new Frame("Color");
w.show();
}
}
コンパイルするとエラーになります。どうしてですか?
0572デフォルトの名無しさん
05/02/27 00:37:170573デフォルトの名無しさん
05/02/27 00:52:04X : [JTextField]
Y : [JTextFiels]
という感じにしたいのですが、この二行のコンポーネント(1行にJLabelとJTextFledなので合計4つ)を
TitledBorder で囲みたいのですが、どうすればシンプル?に上手く出来るでしょうか?
現在は、JPanelをGridLayoutで(2, 2)に区切って、それを TitledBorderで囲っているのですが
グリッドの大きさがテキストフィールドに合ってしまうので、どうもバランスが良くないのです。
どうすればもっと上手くレイアウトできますか?
0574デフォルトの名無しさん
05/02/27 01:12:20GridLayout(Col=1, Row=2)の中に、JPanel2枚をFLowLayoutで置いて、
それぞれに、JLabelとJTextFieldを置く。
JPanel(GrindLayout) ←TitledBorder設定
JPanel(FlowLayout)
JLabel(X:)
JTextField
JPanel(FlowLayout)
JLabel(Y:)
JTextField
もしくはGridBagLayoutをつかう。
0575デフォルトの名無しさん
05/02/27 01:34:59そもそもbooleanでも | は使えるけどね。
その場合はショートカットの無いor。
0576デフォルトの名無しさん
05/02/27 01:40:46ArrayList のインスタンスを作ったあと、そこに配列の要素を1個ずつ、
add していくしかないのでしょうか。
0577デフォルトの名無しさん
05/02/27 01:45:32Arrays.asList(Object[])
0578デフォルトの名無しさん
05/02/27 01:46:520579デフォルトの名無しさん
05/02/27 01:49:03java.util.Arrays.asList()
0580デフォルトの名無しさん
05/02/27 01:49:27iniファイルって仕様決まってんの?
0581579
05/02/27 01:49:380582デフォルトの名無しさん
05/02/27 01:51:36一応
[section]
key=value
;comment line
てな感じでは。
0583デフォルトの名無しさん
05/02/27 01:55:11ありがとうございます、まず調べてみますです。
>>580
既存のUTF8で書かれたiniファイルを変更したいので…。
java.util.Propertiesでは文字コードの指定が出来ないっぽくて困ってました。
0584デフォルトの名無しさん
05/02/27 02:00:00って違うレスじゃん…orz
>>582
その通りです、仕様を自分で決めれるなら
J2SE5.0にしてProperties.storeToXML使ってみたかったです。
0585デフォルトの名無しさん
05/02/27 02:11:45http://www.koders.com/java/fidF3567C71EDFEA6EE2311A0EFF96C14E14D03F0CD.aspx
0586dahoi
05/02/27 02:34:53static BufferedImage Suka(){
File f = new File("kaiwo.jpg");
try {
BufferedImage image = ImageIO.read(f);
} catch (IOException ex) {
ex.printStackTrace();
}
return image;
}
public static void main(String args[]){
Suka suka = new Suka();
int gets = suka.image.getRGB(100,100);
int r = (gets >> 16) &0x000000ff;
int g = (gets >> 8) &0x000000ff;
int b = (gets >> 0) &0x000000ff;
System.out.println(r);
System.out.println(g);
System.out.println(b);
}
}
ごめんなさい。。。
今自分でプログラム組んでるんですけど
どうもうまく動かなくて。。。
よろしかったらどなたか教えていただけませんか?
0587デフォルトの名無しさん
05/02/27 03:01:120588デフォルトの名無しさん
05/02/27 03:10:110589デフォルトの名無しさん
05/02/27 04:31:29Sectionまで対応しててよさげなClassだったのですが、
文字コードの問題には触れていないので根本的解決にはならなかったようです。
0590デフォルトの名無しさん
05/02/27 05:01:52いろんな文字コードに対応できるとおもうんだけど。
そうは思わないかい?
0591デフォルトの名無しさん
05/02/27 12:56:42http://www.koders.com/java/fidF3567C71EDFEA6EE2311A0EFF96C14E14D03F0CD.aspx
0592デフォルトの名無しさん
05/02/27 13:22:17どこに文字コードの問題があるんだ。
文字エンコーディングを指定するだけだろ。
0593578
05/02/27 14:03:44>>592
申し訳ない、load methodがFileInputStream渡しかと思ったら
InputStreamReader渡しだったんですね。それなら文字コード指定出来ます。
しかしなんで書きのほうはPrintWriterなんだろう…。
0594デフォルトの名無しさん
05/02/27 14:39:45eclipseを使って開発するのが普通ですか?
0595デフォルトの名無しさん
05/02/27 15:09:30class monndai
{
public static void main(String args[]) throws IOException
{
System.out.println("あなたは何歳ですか?");
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
String str = br.readline();
int num = Integer.parseInt(str);
System.out.println("あなたは"+ num +"です。");
}
}
をコンパイルすると
monndai.java:11: シンボルを解決できません。
シンボル: メソッド readline ()
場所 : java.io.BufferedReader の クラス
String str = br.readline();
^
と出ます。どう直せば動きますか?
0596デフォルトの名無しさん
05/02/27 15:12:000597デフォルトの名無しさん
05/02/27 15:57:21notepadでもできる
0598デフォルトの名無しさん
05/02/27 16:14:30edlin でもできる
0599デフォルトの名無しさん
05/02/27 16:22:460600デフォルトの名無しさん
05/02/27 16:56:14ここでの普通の定義をお願いします
0601デフォルトの名無しさん
05/02/27 16:56:440602デフォルトの名無しさん
05/02/27 16:58:07いやいや、それはわかってるのですけど
昔は秀丸で開発してたんですけど
最近はどうなのかなと。eclipseなるものが
流行ってるみたいなのでどうかなと。
Javaは久しぶりなのでどうかなと。
その辺をよろしくです。
0603デフォルトの名無しさん
05/02/27 17:01:42Eclipseスレで聞いたらEclipse使ってるという回答が返ってくる可能性が高いでしょう
>>600 にもあるけど、あなたが何をもって「普通」としているのかもわからないし
0604デフォルトの名無しさん
05/02/27 17:05:19普通というのはまあ普通にシェアと思っていただければいいかと
Servlet+JSPの開発ツールで一番のシェアは?
ということになるような気がしないでもないです。
0605デフォルトの名無しさん
05/02/27 17:06:33それとももっといいのがあったりするのかなと。
その辺どうよ?ってことです。
0606デフォルトの名無しさん
05/02/27 17:07:40また秀丸じゃやだなーと。そんなわけです。
0607デフォルトの名無しさん
05/02/27 17:27:17先ず試してみようとなぜ考えないのか?
VS.NETの影響で誤解してるのかもしれないけど、Eclipseは気に入ら
なければアンインストールする事で綺麗さっぱり消えてなくなるよ?
MSの開発ツールみたいに、入れたら最後もう元には戻らないという事
はない。
0608デフォルトの名無しさん
05/02/27 17:30:51>て言うか、そこそこの経験値持ってるならEclipseが普通に使えるはず。
そこそこのマシンを持っていないので・・・
0609デフォルトの名無しさん
05/02/27 17:37:02ごちゃごちゃ言わずに Eclipse 使え。
はっきり言って Java 出来ます、Eclipse 使えません
じゃ、開発者として話しにならん。
0610デフォルトの名無しさん
05/02/27 17:46:43P3-600Mhz+440BX+384MB+Win98SEという環境だけど、起動するのに
1分くらい掛かるのと、EclipseUMLでクラス図の出力にちょいと待たされる
事があるくらいで、コーディング中に不快を感じた事はないな。
コンパイルもテストユニット単位で行うから全然問題ないし、マシンに対す
る要求は高くないと思うが?
0611デフォルトの名無しさん
05/02/27 17:49:54EclipseUMLでソース→クラス図というパターン自体が稀だから
普通はクラス図→ソースとなるわけで、通常使用時に関して言
えばEclipseUMLは普通に快適。
0612デフォルトの名無しさん
05/02/27 18:31:430613デフォルトの名無しさん
05/02/27 18:36:030614デフォルトの名無しさん
05/02/27 18:36:10EclipseUMLと書いてるんだから、それをそのままキーにしてググれ。
0615デフォルトの名無しさん
05/02/27 18:39:33頻度(ソース→クラス図という工程を繰り返す事はない)と状況(クラス図
生成の指示を出した後はソースを斜め読みしながら待つ)的に言って問
題ないと俺は判断する。
0616デフォルトの名無しさん
05/02/27 18:41:14いやほとんど作らん。
0617デフォルトの名無しさん
05/02/27 18:50:12ありがと
0618デフォルトの名無しさん
05/02/27 18:55:00いやね(ry
@IT:Java Solution 第11回読者調査結果
http://www.atmarkit.co.jp/fjava/survey/survey0406/java0406.html
0619デフォルトの名無しさん
05/02/27 20:23:330620デフォルトの名無しさん
05/02/27 21:17:58Interfaceを実装したabstractクラス、それをextendsした基本クラス、さらにextendsした派生クラス
っていうのと
abstractクラスを省いて、Interfaceを実装した基本クラス、さらにextendsした派生クラス
ってやるのとでは、
abstractクラスがあるのと無いので、こっちがこういう場合に都合が悪いとかありますか?
0621デフォルトの名無しさん
05/02/27 21:34:53(その例なら無くても良い ボソ)
0622デフォルトの名無しさん
05/02/27 21:46:12なくても良い、ってなんで分かるんだよ。w
一概には言えないってのには同意するが。
>>620
設計が完璧じゃない場合に、
「ここでAbstractなクラスを一段カマしてるけど、要らなくない?」とか、
「ここにAbstractなクラスを一段カマしたほうが、良くない?」ってことはあるかも。
0623デフォルトの名無しさん
05/02/27 22:04:16Abstract クラスとその下の基本クラスが意味的に大切なレイヤーを築いてるなら良いんだけどね。
0624教えてください
05/02/27 22:26:29メインのプログラムでは、素因数分解をするのですが
その際に今の場合だと 単純に2から割っていってるので
時間がとてもかかってしまっています。
やらなくてはいけないことは
素数のプログラムをクラスライブラリ形式
にしてメインで呼べばいいというのは なんとなく分かるのですが
具体的にどうしたらいいのかわかりません。
よろしくおねがいします。
0625デフォルトの名無しさん
05/02/27 22:29:04基本的にはアダプタクラスとして継承した基本クラスを提供して終わりにする場合
が多い(この場合は利便性のみを目的としたもので継承を強要しない)。
一方で、複数のブランチが見えてる場合に共通部分を括ったり、実装を特定の方
向へ導きたい時に抽象クラスを提供する場合もある。
ただし、全方位とか考えて無闇に利用してると、無駄に枝が伸びて何でも使えそう
でいて、実際には使う機会がないという事になりかねない。
インターフェイス
├アダプタ─実装クラス
├抽象クラスA─アダプタ─実装クラス
└抽象クラスB─アダプタ─実装クラス
一部の実装が必須か否か、空の実装を許容するか否か等を考慮して適時使い分
けるというのが模範的な解答になるのかな?
0626デフォルトの名無しさん
05/02/27 23:04:09使ってると思うんだけど、アダプタパターンを適用したクラスと思う人も多いから。
0627デフォルトの名無しさん
05/02/27 23:35:52出力させたい時に
Name="〜"だけを抜き出した〜の内容だけ出力させるにはどうすればいいのでしょうか?
教えてください
下記の例だと
aiueo
kakikukeko
abcde
12345
になります
File aiueo
Name="aiueo"
age="10",Name="kakikukeko"
Name="abcde"
Name="12345",age="10"
age="10"
0628デフォルトの名無しさん
05/02/27 23:44:17宿題でなければその無駄に柔軟なファイルフォーマットをどうにかすべきだが。
BufferedReader in = new BufferedReader(new FileReader("aiueo"));
while(true){
String line = in.readLine();
if(line == null) break;
// ここで読み込んだ行を解析...
}
区切りの仕様がコンマだけなのか、ダブルクォート中にコンマが現れたら
どうエスケープされるのか等等、フォーマットの仕様が明らかにされないと続きは何とも。
0629デフォルトの名無しさん
05/02/27 23:55:54ありがとうございます
順番はバラバラですが、区切りの使用はカンマだけです。
またダブルクォートの中にはハイフンやピリオドはありえますが
カンマはないです
0630デフォルトの名無しさん
05/02/28 00:00:27取り出したトークンを等号で分割し、前が Name と等しいなら、後ろの文字列のダブルクォートを
取り外す。
後は自力で
0631デフォルトの名無しさん
05/02/28 00:07:50ありがとうございます
0632デフォルトの名無しさん
05/02/28 00:23:19私もjava初心者なので、クラスライブラリ形式というのが良くわかりませんが、
以下のようなメソッドではだめですか?
private static int[] getPrimeNumbers(int max){
if (max<2 || max>65535){
throw new IllegalArgumentException("かんべんしてね");
}
int [] temp=new int[max/2+1];
int index=0;
temp[index++]=2;
for (int i=3;i<=max;i+=2){
sex:{
for (int j=0;j<index;j++){
if (i%temp[j]==0){
break sex;
}
}
temp[index++]=i;
}
}
int[] ret=new int[index];
System.arraycopy(temp,0,ret,0,index);
return ret;
}
0633デフォルトの名無しさん
05/02/28 00:32:17ためしに書いてみた。欲しかったら言ってね。使ってるJavaのVersionと。
それにしても、tiger(Java5.0) 便利。
今まで (1.4) だと、こんな風に書いていたのが、
for (int i=0; i<list.length; i++)
System.out.println(list[i]);
5.0 だと、これで済む。
for (String str : list)
System.out.println(str);
楽チン。
0634デフォルトの名無しさん
05/02/28 00:36:31大半のケースでは便利だと思うけど。
0635デフォルトの名無しさん
05/02/28 01:05:28ほらよ。
import java.io.*;
import java.util.regex.*;
public class Example {
public static void main( String[] args) {
try {
String line;
Pattern pt = Pattern.compile( "Name=¥"(¥¥w+)¥"");
BufferedReader br = new BufferedReader( new FileReader( "test.txt"));
for( line = br.readLine(); line != null; line = br.readLine()) {
Matcher matcher = pt.matcher(line);
while( matcher.find()) {
String name = matcher.group(1);
if( name != null) {
System.out.println( name);
}
}
}
} catch( Exception e) {
e.printStackTrace();
System.exit(1);
}
}
}
0636624
05/02/28 01:46:17ありがとうございます。
実際にどうやったら実行できるのかもよくわかりません。。。
このプログラムでは、素数を計算して、
それをどうやって素因数分解の時にひっぱってくればいいのでしょうか。
0637デフォルトの名無しさん
05/02/28 02:00:57うちのプロジェクトにはEclipse使いもEmacs使いもvi使いもいるけど、何も問題になってないよ。
ちなみに漏れはEmacs使い。
Eclipseは便利そうだね。
0638632
05/02/28 02:37:24パッとしないロジックですみません。
mainでnumの素因数分解をするのであれば、mainメソッドの後ろに
>>632のコードを書いて、mainで
int[] primeNumbers=getPrimeNumbers(num);
とすれば、n以下の素数の一覧が戻ってくるはずなのですが、
そういう意味ではなくて ?
0639デフォルトの名無しさん
05/02/28 03:09:39いや、奴( >>362 )は20代の学生様を30代男だと思い込みたいだけみたいだが
0640デフォルトの名無しさん
05/02/28 03:19:32発生させるのはどうやるのでしょうか?
例えばAというキーが押されたら、Bというキーが押されたというイベントを発生
させるメソッドでは、テキストエディタを開いてAと入力すると、ABと書かれることになる
という事です。
0641デフォルトの名無しさん
05/02/28 03:20:460642デフォルトの名無しさん
05/02/28 06:06:38private int foo = 0;
public void test(){
foo++;
}
}
というようなtestClassというクラスを作り、
public class jikkou() {
Map hm = new HashMap();
hm.put("a" , new testClass());
hm.put("b" , new testClass());
hm.put("c" , new testClass());
}
というようにMapに格納していった場合、それぞれのtestClassオブジェクトの
インスタンスメソッドを実行するにはどうしたらいいでしょうか?
0643デフォルトの名無しさん
05/02/28 08:51:25イテレーターでループしながら、一つずつ要素を取得して、
キャストしてメソッドを呼ぶ
0644デフォルトの名無しさん
05/02/28 09:44:58領域とBMP画像が等しいか否かを実時間で返すメソッドを定義したいのですが、
どうすればいいでしょう?
また、Javaは遅いといわれて来ましたが、このような処理は実時間で
できるのでしょうか?(マシンスペックに依存するとは思いますが)
javax.imageio.ImageIOを用いて、こんな感じになるのでしょうか…?
File f = new File("foo.bmp");
BufferedImage bi = ImageIO.read(f);
boolean hoge(BufferedImage bi, int x, int y) { //処理 }
0645デフォルトの名無しさん
05/02/28 10:41:51左上の1ドットだけ比較して、違えばそこでやめる
同じなら次の1ドット比較して、違えばそこでやめる
以上繰り返す
0646デフォルトの名無しさん
05/02/28 11:42:04どうせこういうループはすぐにコンパイルされるから速度はCとかわらんよ
遅いと思ったら使い方が悪いはずだ
0647デフォルトの名無しさん
05/02/28 11:53:180648デフォルトの名無しさん
05/02/28 11:54:550649デフォルトの名無しさん
05/02/28 13:13:381.4.1からね
WindowsならDirectDrawとかDirect3DとかGDIとか
5.0からOpenGLも使ってアクセラレーションできるようになってるけど
対応しているビデオチップがATIかnVIDIAだけなのでちと問題あり
0650デフォルトの名無しさん
05/02/28 16:28:28ハードの進歩はすさまじいから、後数年もすれば充分実用的な速度になる。
0651デフォルトの名無しさん
05/02/28 16:30:370652デフォルトの名無しさん
05/02/28 17:23:55そういわれつづけて早10年・・・
まあ、Java5は早くなったと思うけどね。
0653デフォルトの名無しさん
05/02/28 18:29:51例えば一秒間に一万回(極端ですが)の描写処理をするプログラムを作ったとしても、
表示しているディスプレイのリフレッシュレートが60だとしたら
結局画面上では一秒あたり60回しか更新はされず、残りの9940回はあんま意味無い、
という理解は合ってますか?
0654デフォルトの名無しさん
05/02/28 18:45:38すいません、コーディングの例か関連するサイトなどを教えて貰えませんでしょうか?
Java 画像 比較 とかでググっているのですが、やり方が見つからなくて…。
0655デフォルトの名無しさん
05/02/28 19:05:42JMFのMP3プラグインでアプレットから音楽mp3の再生してみたら
1GHzのCPUでも使いもんにならなかった。2GHz程度必要。orz
0656デフォルトの名無しさん
05/02/28 19:08:36っつーか普通リフレッシュレートのタイミングに合わせてバッファに描画するだろ?
0657デフォルトの名無しさん
05/02/28 19:10:54Mp3より負荷の高いOggVorbisが1GHzのマシンで負荷5%以下だぞ
0660デフォルトの名無しさん
05/02/28 22:14:09ランダムさ(?)を実現してるのですか?
0661デフォルトの名無しさん
05/02/28 22:20:45擬似乱数
0662デフォルトの名無しさん
05/02/28 22:22:160663デフォルトの名無しさん
05/02/28 22:34:40APIリファレンスに線型合同法って書いてあったはずだが。
線型合同法を知らないんだったら、やっぱりAPIリファレンスに書いてあるけど、
クヌースの本でも買って読んでくれw
0664デフォルトの名無しさん
05/02/28 22:45:26日付を求めるCalenderクラスを見つけましたが、時間を求めるにはどうすればよいですか?
ちょうどPerlやPHPのtime関数のような感じのを探しています
0665デフォルトの名無しさん
05/02/28 22:47:370666デフォルトの名無しさん
05/02/28 22:54:42メニューバー等のフォントを一括に設定する方法がわかりません。
全てのメニューのフォントをOsaka-UIの12ptに設定したいのですが、
MenuBarを司るクラスに以下の文を追加してもメニューバーの文字は変わってくれません。
JMenuBar.setFont(new java.awt.Font("Osaka-UI", java.awt.Font.PLAIN, 12));
メニューバーのアイテム一つ一つに
hoge.setFont(new java.awt.Font("Osaka-UI", java.awt.Font.PLAIN, 12));
と書いていくしか無いのでしょうか?
それとも一括でフォントを変更する方法があるのでしょうか?
よろしくお願いします。
0667デフォルトの名無しさん
05/02/28 23:05:34自分で使うメニュー類は全部そのサブクラスにしたらダメなの?
ていうかsetFont一行がそんなに面倒かなぁ。
0668デフォルトの名無しさん
05/02/28 23:08:570669デフォルトの名無しさん
05/03/01 00:20:38超初心者でスマソ
0670デフォルトの名無しさん
05/03/01 00:27:140671デフォルトの名無しさん
05/03/01 00:28:390672デフォルトの名無しさん
05/03/01 00:30:00言い方が違う。
0673デフォルトの名無しさん
05/03/01 00:30:40どーもです
0674デフォルトの名無しさん
05/03/01 00:51:170675デフォルトの名無しさん
05/03/01 00:55:52家計簿ソフトなら市販のからフリーからいくらでもあるが、どうしても自分で作りたいのなら
まず Access で作ってみ。Java 使うのは Access だけじゃどうしても出来ないことが出て
きたらで良い。それでもというならとりあえず…
・GUI アプリを作ってみる
・ファイルの入出力を覚える
あたりからやってみたらどうだろうか。
0676デフォルトの名無しさん
05/03/01 01:19:34ありがとうございます。
線形合同法という言葉初見でした。
調べてみます。
…線形計画法なら知ってますが、
全然関係ないですよね。…はい、すいません。
0677デフォルトの名無しさん
05/03/01 01:31:09とりあえず、java.util.Randomクラスの説明を読むといいよ。
計算式も書いてあるから。
0678デフォルトの名無しさん
05/03/01 02:06:19ありがとうございます!
発見しました。
が、む、難しい…
APIリファレンスってのは…
まともに読めるようになるまで
覚えることたくさんありそうですね。orz
読み進めるのに、いちいち言葉の意味をググってますが…
がんばります。
0679デフォルトの名無しさん
05/03/01 03:06:29なんてのは、必ずしも理解する必要はないよ。
すくなくともAPIを身につけようとする段階で理解しても
しょうがない。
なんか難しい計算をするとなぜかばらついた数列が
できるのね、くらいにおもっとくだけでいい。
0680デフォルトの名無しさん
05/03/01 03:16:17CellRendererPaneをつかって、中にセルに相当するコンポーネントを
持たないコンテナ(JTreeを縦書きにしたようなやつ)を作りました。
このコンテナ内で、あるセルを別なセルの上にドラッグドロップします。
ターゲットのセルを知るためにドロップ時のマウス位置が必要です。
デフォルトのTransferHandler.SwingDropTarget を置き換えて、コンテナに
自前のDroptTarget を設定して、そのdrop(DropTargetDropEvent)
メソッドのDropTargetDropEventgetLocation() でマウス位置を持ってきて
とりあえず動いているのですが、これで問題ないでしょうか。
0681デフォルトの名無しさん
05/03/01 04:56:33180という数字をファイルに保存して「B4 00 」となっている
データのファイルを読み込みます。
読み込む際にbyte型のバッファに流し込んでshort型で
値を取得したいのですが上手く行きません…
byte data[2];
short aaa;
// dataデータを読み込む data[0] = B4; data[1] = 0;
// aaaに180というshort型のデータを入れたい
宜しくお願いします…
0682デフォルトの名無しさん
05/03/01 07:42:52ここの247点という怪記録を越えることができるかな
ttp://freegame.sytes.net/~take/cgi-bin/typecreate/index.html
0683デフォルトの名無しさん
05/03/01 08:23:34aaa = 00B4;
0684デフォルトの名無しさん
05/03/01 10:49:03short aaa; byte [] data = new byte[2]; ...;
aaa = (short)(data[1] & 0xff) << 8 + (data[0] & 0xff);
バイナリはEndianの影響があるから取り扱い注意。unsigned byteが欲しい今日この頃。
0685デフォルトの名無しさん
05/03/01 11:03:32aaa = (short)(((data[0] & 0xff) << 8) + (data[1] & 0xff));
0686デフォルトの名無しさん
05/03/01 11:14:45<< より + の方が結合が強いでした orz
0687デフォルトの名無しさん
05/03/01 11:16:100688デフォルトの名無しさん
05/03/01 11:29:12SWTでGUIのアプリを作ろうとしています。
そこで、Textの入力欄が3つ(仮にtext1,text2,text3)あるんですが、
空欄があればメッセージダイアログで警告を出そうと思っています。
text1,text2,text3のそれぞれに警告のダイアログを出したいんですが、
どういう風に条件分岐すれば良いのでしょうか?
試しに書いてみたんですがうまく動かないみたいです・・・
空欄があればその都度、どのテキストボックスが空欄なのか、警告を出したいのですが・・・
根本的に間違ってます?
getText1 = text1.getText();
getText2 = text2.getText();
getText3 = text3.getText();
if(getText1 == "") {
Alert1 = new MessageBox(sShell,SWT.ICON_WARNING);
Alert1.setText("警告");
Alert1.setMessage("Text1が空欄です");
Alert1.open();
return;
}
else if (getText2 == "") {
Alert2 = new MessageBox(sShell,SWT.ICON_WARNING);
Alert2.setText("警告");
Alert2.setMessage("Text2が空欄です");
return;
}
else if (getText3 == "") {
Alert3 = new MessageBox(sShell,SWT.ICON_WARNING);
Alert3.setText("警告");
Alert3.setMessage("Text3が空欄です!");
return;
}
よろしくお願いします。
0689デフォルトの名無しさん
05/03/01 11:34:380690デフォルトの名無しさん
05/03/01 12:19:430691デフォルトの名無しさん
05/03/01 12:28:11Font font = new Font("Osaka-UI", java.awt.Font.PLAIN, 12);
UIManager.put("Menu.font", font);
UIManager.put("MenuItem.font", font);
0692デフォルトの名無しさん
05/03/01 13:24:37即レスどうもです。
直しましたけど動きは一緒みたいです…_| ̄|○
>>690さん
まだまだ初心者レベルの質問なのですが、ここではまずいですか?
向こうはチョッとレベルが高いみたいなんで…
0693デフォルトの名無しさん
05/03/01 14:31:461.4以前は、TransferHandler#importData()内で、そのコンポーネント内での
ドロップ時のマウス座標を求める術がなかったので、別途にDropTargetを
実装しなければなりませんでしたが、1.5以降は、Component#getMousePosition()
というメソッドが追加されたので、TransferHandlerだけでもドロップ時の
マウス座標によるアクションの振り分けができるようになりました。
680のやり方でも問題ないですが(と言うか1.4以前は皆それをしてた)
1.5以降はTransferHandlerだけで十分になりました。もっと早くこうしろって
感じですね。
0694デフォルトの名無しさん
05/03/01 16:50:38class A {
B b=new B();
int y=b.x;
}
class B {
int x=0;
}
としているんですが、これを相互に行うにはどうすればいいんでしょうか?
class A {
B b=new B();
int z=1;
int y=b.x;
}
class B {
A a=new A();
int x=0;
int w=a.z;
}
とすると無限ループみたいになってしまうので何かいい対処法ありませんか?
0695デフォルトの名無しさん
05/03/01 16:55:490696デフォルトの名無しさん
05/03/01 17:04:22クラスの場合は
B b=new B();ではなくextendsで継承しろということでしょうか?
その場合クラス同士が継承し合っても問題ないのですか?
0697デフォルトの名無しさん
05/03/01 17:35:47相互に行おうとするなよ
設計から考え直せ
0698デフォルトの名無しさん
05/03/01 18:22:40画像を表示させたいのですが、うまく表示されません。
そこで以下のようなことをしたら直線は表示され、
画像が表示されずに"faild"が返ってきたのですが、
なぜ表示されないのでしょうか?
g.drawLine(0, 15, 300, 15);
Image img = Toolkit.getDefaultToolkit().getImage("black.gif");
g.drawImage(img, 0, 0, Color.black. this);
boolean bool1= g.drawImage(img, 0, 0, Color.black, this);
if(bool1 == false) System.out.println("faild");
black.gifはカレントフォルダに置いてます。
0699デフォルトの名無しさん
05/03/01 18:26:24drawImageの最後の引数しらないでつかってるのかな
0700デフォルトの名無しさん
05/03/01 18:47:200701デフォルトの名無しさん
05/03/01 18:55:060702U ◆CZtFsGiu0c
05/03/01 19:29:06AとBの関係がよくわからんけどこれじゃ駄目?
class A {
B b;
int z=1;
int y;
A() {
B b=new B(this);
y=b.x;
}
}
class B {
A a;
int x=0;
int w;
B(A a) {
this.a=a;
w=a.z;
}
}
0703デフォルトの名無しさん
05/03/01 22:02:24jarsignerを利用して証明書をつけて実行させるようにしようと考えています。
2000,XPでのIE5.5,6.0での動作は確認できたのですが
NT4.0 SP5+IE5.5の環境ではApplet not initedになってしまいました。
ちなみにAppletは、Runtime#Execを行っています。
どなたかこのあたりの情報ご存知のかたいらっしゃいませんか(;´Д`)
使っているJDKは1.3.0です
よろしくおねがいします。
0704680
05/03/01 22:16:55> 680のやり方でも問題ないですが(と言うか1.4以前は皆それをしてた)
一般的なやり方なようで安心しました。まだ1.4を使用中なのでこのまま
行きます。ありがとうございました。
Component#getMousePosition() 見てきました。いいですね。
JFrame#add(Component) よりはまっとうな進化のような気がする。
0705デフォルトの名無しさん
05/03/01 22:49:23スクロールバーが表示されません。
どうすれば画像をスクロールさせられるでしょうか?
0706デフォルトの名無しさん
05/03/01 22:52:020707デフォルトの名無しさん
05/03/01 23:21:07setViewportViewです。
なんか、調べていたらどうもgetPreferredSizeをどうにかしないと駄目みたいだけど
まだJava始めたばかりなのでイマイチ理解しきれません
これを自前で処理すれば良いようだということは分かった気がしますが。
0708デフォルトの名無しさん
05/03/01 23:33:02JPanelをsetPreferredSizeで画像の大きさに合わせればでるんじゃない?
Viewportが画像より小さくなければスクロールバーは表示されないけど
0709デフォルトの名無しさん
05/03/02 11:24:18まとめて判別するために条件分岐するんじゃなくて、Textウィジット一つ一つに
VerifyListenerをつけて、そのなかでリアルタイムにチェックしたほうが
スマートじゃないかなあ。Eclipseのウィザードなんかだとそんな感じに
書いてあるよね。
0710デフォルトの名無しさん
05/03/02 19:21:48Action oldValue = getAction();
if (action==null || !action.equals(a)) {
action = a;
if (oldValue!=null) {
removeActionListener(oldValue);
oldValue.removePropertyChangeListener(actionPropertyChangeListener);
…
AbstractButtonクラスのsetActionというメソッドです.
removePropertyChangeListenerというメソッドはinterface Actionに予約さ
れていますが実際コードは書かれていません.この場合何が呼ばれているの
ですか?
0711デフォルトの名無しさん
05/03/02 19:31:40メソッドを実装したAbstractActionクラスのサブクラスを
setActionに渡すことになるだろうね。
Action quitAction = new AbstractAction("quit") { ... };
setAction(quitAction);
とか。
もちろん自分で
class MyAction implements Action {
//
public void removePropertyChangeListener(...) { ... }
}
と一から手間かけて実装したやつを渡してもいい。
どっちにせよ、渡すインスタンスのクラス階層がAction
にたどりつくまでのどこかで実装されているはず。
0712デフォルトの名無しさん
05/03/02 19:32:100713710
05/03/02 20:06:55if (changeSupport == null) {
return;
}
changeSupport.removePropertyChangeListener(listener);
}
失礼しました。AbstractActionクラスに↑がありました。ありがとうござ
います。
Propertyってお前は何々だっていうIDみたいなものなのでしょうか?
0714デフォルトの名無しさん
05/03/02 22:15:390715デフォルトの名無しさん
05/03/02 22:19:13↓こちらのソースはargs[]に入れたファイルの1行1列めの数字を読み取り
表示させるものです。
何故、String s; は new しなくていいんですか?
よろしくおねがいします。
import java.io.*;
import java.util.*;
public class temp {
public static void main(String[] args) throws IOException {
FileReader fr = new FileReader(args[0]);
BufferedReader br = new BufferedReader(fr);
String s ;
s = br.readLine() ;
double a =(Double.valueOf(s.substring(0,1))).doubleValue();
System.out.println(a);
}
}
0716デフォルトの名無しさん
05/03/02 22:57:06ありがとうございます。
1つ1つにVerifyListenerをつけるんですか、なるほど。
一度、試してみます。
で、お聞きしたいんですが、Eclipseのウィザードって何でしょうか?
Eclipse自体、便利なエディター程度にしか使えてない初心者なんで、
よろしければ教えてやってもらえませんか。
0717デフォルトの名無しさん
05/03/02 23:09:45大雑把に言えば、FileReader#readLine()の中(の中の、かも)でnewされてるから。
0718デフォルトの名無しさん
05/03/02 23:16:53たとえばEclipseでJavaプロジェクトを新しく作成しようとして、
ファイル->新規->プロジェクトってたどった時に開く
ダイアログを特にウィザードという。Eclipseに限らず最近だと
UIの一般的な用語になってると思う。688の例でいえば、
なにか次の状態に移行しようとしたときに初めて
メッセージダイアログで警告を出すんじゃなくて、
VerifyListener使って次に移行できる状態かどうか
常にモニタしてステータスバーか何かに「Text1が
空白です。」って表示しておく。それでもなおユーザが
次に進もうとしたときにVerifyListenerが設定したフラグ
見てダイアログ出すってほうが段階を踏んでいて親切でしょ。
まあそもそも条件がそろわないと次に移行できないようにボタン等を
disableにしておくのも多いけど。ウィザードはこういうのがおおいね。
0719デフォルトの名無しさん
05/03/02 23:21:00String s; は宣言だから。
0720デフォルトの名無しさん
05/03/02 23:27:47アルゴリズムの処理はすでに数年前(J2SE1.3時代)から
Cとさほどかわりなくなってきているぞ。
3D関係は条件がうまく揃わないと速くならぬ。
0721デフォルトの名無しさん
05/03/03 00:06:10ナゼいきなり消されてしまったかわかる方います? deprecatedになっていたのならともかく・・・
確かに挙動的には、Objectが呼び出し元と違うクラスのときClassCastExceptionを投げるだけなんで
呼び出し前に 明示的にキャストするほうがいいのはわかるんですけどいきなり消えたもので・・・
0722デフォルトの名無しさん
05/03/03 00:18:38もちろんSOAPだのAspectJだのをやろうと思えば幅は広がるんだけど
コア部分のJavaについてもっと詳しく知りたいかなーって
コア部分のJavaについて詳しい参考書とかWebとか教えて
あとね、アサーションについて詳しいWebページもきぼん
0723デフォルトの名無しさん
05/03/03 00:23:48分かる。分かる。
Javaは、外の言語経験があれば結構早くマスターするよね。
俺もC++出身だけど、Javaはシンプルなのはいいけど正直ちょっと
物足りない気がする。
0724642
05/03/03 00:28:18俺も初心者だけど
StringはClassだけど、特例として宣言して代入するだけでも実体化するらしい。
だから String s = new String(br.readLine());でも同じ。
一度クラスを自分で作ってみたら理解が深まると思う。
…ということでよろしかったでしょうか先輩方。
0725デフォルトの名無しさん
05/03/03 00:32:23自己レス
1.4のドキュメントにアサーションについて詳しく書かれてるね
>>723
そうなんだよね
C++みたいな細かいところまでいじれるといいんだけどなぁ
C#2.0でもやろうかな
0726デフォルトの名無しさん
05/03/03 00:34:15全然よろしくない。
0727デフォルトの名無しさん
05/03/03 00:41:54動的にバイトコードをいじるようなことをやると面白いよ。
今ではBCELとかJavassistみたいなライブラリを使わないといけないけど
将来バイトコードをいじるAPIはコアに取り入れられるという話しだし。
0728デフォルトの名無しさん
05/03/03 00:57:26別に特別でもなんでもないだろ。
Rectangle rect;
rect=c.getBounds();
とか普通だろ。
Stringの特殊性を挙げるなら、
String str=゙文字列゙;
が通ることを挙げるべきじゃないか?
0729デフォルトの名無しさん
05/03/03 01:00:14おお、BCELってあったね
リフレクションいじってたときにちょっとかじったっけ
VMの仕様とかも合わせて勉強してみるかな
0730デフォルトの名無しさん
05/03/03 01:06:155.0はもうぜんぶおっかけた?
あとJava2Dのアクセラレーションの効き具合とかは
1.4.0、1.4.1、1.4.2とおっかけていて大変だったけどたのしかったよ
0731デフォルトの名無しさん
05/03/03 03:12:26受け取る側で”来るはずなのに来ない,おかしいな?”と判断したらもう一度
”メッセージをくれ”と要求するようなプログラミングはよくやります?
0732デフォルトの名無しさん
05/03/03 03:24:080733デフォルトの名無しさん
05/03/03 03:59:03します。
その後実際に移すスクリーンにバックグラウンドを描画してからそのレイア
をコピーすると透過しません。この構想では駄目なんでしょうか?
0734デフォルトの名無しさん
05/03/03 04:31:32こんな風にJAVAで書きたいのだが何かいい方法ないかい??
0735デフォルトの名無しさん
05/03/03 04:37:320736デフォルトの名無しさん
05/03/03 05:27:07それだと Color(0, 0, 0) が不透明度 0 の分だけ書きこまれている、
つまり完全に透明な黒を書き込んでいるだけ。
g2.getComposite() のデフォルトは SrcOver なので、
g2.setComposite(AlphaComposite.Clear);
g2.fillRect(0, 0, width, height); // 色は何でも良し
g2.setColor(new Color(255, 255, 255, 127));
g2.setComposite(AlphaComposite.SrcOver);
g2.fill(shape);
こんな風にするとイケるはず。もっと詳しくは↓
http://www-106.ibm.com/developerworks/java/library/j-mer0918/
0737736
05/03/03 05:31:39g2.setBackground(new Color(0, 0, 0, 0));
g2.clearRect(0, 0, width, height);
0738デフォルトの名無しさん
05/03/03 08:23:47> JDK 5.0 で消されてしまった 各種 compareTo(Object)メソッドなんですけど
> ナゼいきなり消されてしまったかわかる方います? deprecatedになっていたのならともかく・・・
んなもんあるか? たとえばどんなクラス?
逆に追加されたcompareToなら見かけるが。Calendarクラスなど
考えられるものとしえは他のクラスに委譲されたとかだろ
一旦そのオブジェクトを他のオブジェクトに変換してからcompareToとするところかな
> 確かに挙動的には、Objectが呼び出し元と違うクラスのときClassCastExceptionを投げるだけなんで
> 呼び出し前に 明示的にキャストするほうがいいのはわかるんですけどいきなり消えたもので・・・
0739デフォルトの名無しさん
05/03/03 08:24:57どっかでみたことがあるな
Jakarta にそのてのAPIねえか?
リフレクション使うって手もあるぞ
0740デフォルトの名無しさん
05/03/03 09:50:19private String[] filelist;
を宣言して
あとから
filelist = list();
と値を代入するコードを書いてるのですが
ビルドすると
TEST.java:39: シンボルを解決できません。
シンボル: 変数 filelist
場所 : CC の クラス
filelist = list();
^
となります
list()は用意されたもので
public java.lang.String[] list()
となってます
何か手続きが足りないのでしょうか?
0741デフォルトの名無しさん
05/03/03 09:54:54ソース晒せ
宣言と使用してるのが別クラスとか言うオチじゃねーだろうな
0742デフォルトの名無しさん
05/03/03 10:00:17ありがとうございます。別クラスでした。
人のソースを改造してたので気が付きませんでした。
0743デフォルトの名無しさん
05/03/03 10:04:38jpgやアニメじゃないgifなんかは普通にあらかじめMediaTrackerに読み込んでおけるんだけど、gifアニメに関しては
どうもそれがはじめて使用されたときに読み込まれてる感があるのよね。
できないのか、それともやり方が悪いのか、助言頼む。
0744デフォルトの名無しさん
05/03/03 10:31:180745デフォルトの名無しさん
05/03/03 10:38:16そんなケースはありえません。
構築に失敗したら必ず何らかの例外が発生します。
0747デフォルトの名無しさん
05/03/03 12:16:25マルチスレッド環境で static 宣言したクラス変数を御莫迦な使い方してるのかもしれない。
0748デフォルトの名無しさん
05/03/03 16:30:04public class Hoge
{
private static int[][] hoge = new int[10][20];
}
public class Ref
{
}
クラスRefからクラスHogeのフィールドhogeにアクセスしたいのですが
どうすればいいのでしょうか?
配列サイズはRef側で直打ちでもいいのでRef側でhogehoge[][]な形で
アクセス出来るでしょうか?
教えてください
0749デフォルトの名無しさん
05/03/03 16:38:190750748
05/03/03 17:28:40アクセサメソッドでアクセスすることも出来るのですが
最終的には外部に公開しないデータなので削除するメソッドになります。
いちいち公開のたびにアクセサメソッドを削除する
のはめんどうなので外部のクラスRef内でテスト出来るようにしたいのです。
Hogeクラス内にテスト用コードを書きたくないということです
リフレクション方法を教えてください。
0751デフォルトの名無しさん
05/03/03 17:44:03HogeとRefを同じpackageに置いて
Hoge.hogeをパッケージアクセスにするってのはダメ?
0752デフォルトの名無しさん
05/03/03 17:56:55つーか、テストなら、メソッドの引数と返値の整合性をテストするだけでいいだろ
>>751
それだったらアクセサメソッドをパッケージアクセスにしろよ
0753デフォルトの名無しさん
05/03/03 17:57:42JUnitとかで使うの?できるけど面倒くさいよ。
Field f = Hoge.class.getDeclaredField("hoge");
f.setAccessible(true);//privateフィールドへのアクセスを許す
int[][] hoge = (int[][])f.get(null);//staticなので引数nullでよし
System.out.println(hoge[1][1]);
0754デフォルトの名無しさん
05/03/03 18:42:26>>718さん
ありがとうございます。
なるほど、そういう事だったんですか。
ウィザードの事はは一応、判ってたんですが、
そういう風にチェックして行くと良いって事ですか。
>Eclipseのウィザードなんかだとそんな感じに
>書いてあるよね。
と、あったのでEclipse本体で出来る何かの事を仰っていたのかと(汗)
一回調べてみます。
まだまだ初心者なんですが頑張ります。
でも、やはりSWTはまだまだ情報も少ないので初心者向きでは無いんでしょうか・・・
0756デフォルトの名無しさん
05/03/03 19:22:21JWSもSWTも順調に動いているのですが一つ問題が・・・。
それはJWSの起動方法によってカレントパスがそれぞれ違うことです。
ブラウザから起動すればブラウザの実行ファイルがある場所がカレントパスになり、スタートメニューから起動するとC:\Program Files\Common Files\System\Mapi\1041になり、デスクトップのショートカットから起動するとデスクトップがカレントパスになります。
設定ファイルやログファイルをカレントパスに保存するようにしているのですが起動方法によって設定ファイルが分かれてしまいます。
Windowsだけならどこか専用のフォルダを絶対パスで作成すればよいですがLinuxだとそうは行きません。
カレントパスに左右されず、自由に設定ファイルなどが配置できる方法があればお願いします。
0757デフォルトの名無しさん
05/03/03 19:42:590758デフォルトの名無しさん
05/03/03 19:51:15システムプロパティuser.homeに適当なディレクトリ作って保存するようにしたら?
Unixなら/home/hogehogeあたり、
Windows2000かXPなら、C:\Documents and Settings\hogehogeあたりを
返してくれるはず。
0759デフォルトの名無しさん
05/03/03 20:17:11VBのReDimみたいに配列を動的に作成したいのですが
どうしたらよいんでしょう?一次元ならList使えば出来るんだけど、、、
0760748
05/03/03 20:21:18ありがとうございます。
>>753
JUnitで使います。
シンプルなソースを貼ってもらったのでわかりやすく
全然面倒くさくありません。
751-752
製品コード内にテスト用のコードを入れたくなかったので
リフレクションが一番ベストな方法でした。
ですが、パッケージアクセスさせると思いつくほどの知識も
なかったので勉強になりました。
751-753サンクスですた
0761デフォルトの名無しさん
05/03/03 21:01:092次元のやり方がわからないという意味?
Listの中に配列入れるとか。
ListのなかにList入れるとか。
配列でも普通に動的に作成できるだろ。
int[][] a = new int[3][2];
ただRedimのように、中身の入ったサイズを変更するときは、
新しく作り直して中身をコピーする必要あり。System#arrayCopy
(それをやってくれるのがArrayListだけど)
0762デフォルトの名無しさん
05/03/03 21:06:27ありがとうarrayCopyを使ってコピーするしかないかぁ。。。
最終的にプリミティブ型の配列として持ちたいので
Arraylistとか使いたくなかったんですよ。。。
0763デフォルトの名無しさん
05/03/03 21:23:39最終的に?
途中はArrayListでもよいのであれば、
ArrayList使って最後にtoArrayで、配列にコピーできる。
0764デフォルトの名無しさん
05/03/03 22:44:08public void run() {
//処理
result = doHoge();
//処理
}
}
で、doHogeの中身が2種類ある時、どのように実装すれば良いのでしょうか?
子クラスを2個作って各々でdoHogeをオーバーライドするのか、それとも
Hogeをインターフェースにして、doHogeをabstract宣言して
2種類のクラスで実装すればいいのでしょうか?
いまいちインターフェースとabstractをどう使って良いのか分からないのですが…
0765デフォルトの名無しさん
05/03/03 22:53:39亀だがBeanShellとかGroovyのソース眺めてみては。
0766デフォルトの名無しさん
05/03/03 22:57:34デザインパターンの勉強をすればどうすればいいかわかる。
わからないときはとりあえずabstractに汁
0767デフォルトの名無しさん
05/03/03 23:00:140768デフォルトの名無しさん
05/03/03 23:19:15どもです
0769デフォルトの名無しさん
05/03/03 23:29:40出来ないときがあります。
出来ないときには「ZipException」が出るのですが、何が原因なのか
よくわかりません。
Zipデータはファイルではなく、Zip圧縮されたデータです。
-----------------
java.util.zip.Inflater inflt = new java.util.zip.Inflater();
InflaterInputStream in = new InflaterInputStream(sis,inflt,zlen);
ByteArrayOutputStream inflatedOut = new ByteArrayOutputStream();
int readLength;
while(inflt.getTotalIn()<zlen){
byte[] block = new byte[8192];
if((readLength = in.read(block,0,1)) == -1){ break; }
inflatedOut.write(block, 0, readLength);
}
inflatedOut.flush();
byte[] datas = inflatedOut.toByteArray();
inflt.reset();
inflt.end();
-----------------
StandardWrapperValve[jsp]: サーブレット jsp のServlet.service()が例外を投げました
java.util.zip.ZipException: unknown compression method
at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:140)
at org.apache.jsp.hogehoge_jsp._jspService(hogehoge.java:349)
0770デフォルトの名無しさん
05/03/03 23:44:50Arrays は JDK 1.2 から導入されたクラスなわけだが。
>>769
ZIP データの解凍で ZipFile や ZipInputStream ではなく Infrator を使用している理由は?
0771769
05/03/04 00:04:32レスありがとうございます。
Serverと通信していて、そのデータがZip圧縮されたものでZIPファイルそのものでは
無いため使えないと思ってたのですが
0772デフォルトの名無しさん
05/03/04 00:17:39ところで 8192 バイトのバッファを用意しておきながら in.read() で 1 バイトづつしか
読み込んでないよ、それ。それにバッファはループの外で確保しなきゃ一回回るたびに
無駄なバッファが使い捨てられる。
0773デフォルトの名無しさん
05/03/04 00:34:29……
byte[] block = new byte[BLOCK_SIZE];
while ((readSize = in.read(block, 0, block.length)) != -1 ){
inflatedOut.write(block, 0, readSize);
}
慣用句だとおもう。
0774767
05/03/04 00:37:50だからさ、システムとは関係無い配列コピーが
なんでSystemに入れられたのか不思議なワケよ。
初期にはSystemを単なるユーティリティークラスとして
使うつもりだったのかもしらんが、Java2になってあちこち
リファクタリングされてるのに、なんでこいつをdeprecatedにして
Arraysに移動しなかったのか? って謎なのよ。
たぶんマンドクセーからだと思うんだが。
0775769
05/03/04 00:39:05サーバの方はコンパイル済みのものしかないので
ソースの変更はできないです
クライアントだけGZIPInputStreamを使ったらこんなのがでました。
バッファのところはデバッグ中なんで変な書き方になってます
-------
StandardWrapperValve[jsp]: サーブレット jsp のServlet.service()が例外を投げました
java.io.IOException: Not in GZIP format
at java.util.zip.GZIPInputStream.readHeader(GZIPInputStream.java:132)
at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:58)
at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:68)
0776デフォルトの名無しさん
05/03/04 00:50:23んー、意味的にメモリブロックのコピーだから結構低レベルな機能として System で良いと思うけど。
まぁ主観的あるべき論ネタなので深くは主張しないけどね。
実は俺も byte は 1 バイト符号なしデータであり、「数値」として使用する 1 バイト符号付整数は別で
用意すべきだったろ、とか似たような事思ってるけどね。short⇔char のように tiny(仮)⇔byte というような。
0777デフォルトの名無しさん
05/03/04 00:53:08バイト化けってなんですか?
0778デフォルトの名無しさん
05/03/04 00:55:15nativeで実装されているからでない?
0779デフォルトの名無しさん
05/03/04 00:57:51調べるプログラムを作っています。
SHIFT_JISで、ファイルを読み込んで、1文字取得まではできました。
Character chr = new Character(line.charAt(i));
そこで質問なのですが、
その文字のコードを表示するにはどうすればいいですか?
その文字が特定の文字コード(たとえば半角かな)かどうかを
調べるには、どうすればいいですか?
いろいろ調べたのですが、Characterの中にどのように文字が収められているか
わからず、先に進みません。
よろしくお願いします。
0780デフォルトの名無しさん
05/03/04 01:07:29JNI で実装されていても引数が変わらなければクラス間の移動やメソッド名の変更は
所詮ライブラリレベルの変更なのでたいした変更負荷じゃないと思うけど。リフレクションとかで
何か問題あったっけ?
>>779
文字コードじゃなくて文字ブロックだな。
Character.UnicodeBlock block = Character.UnicodeBlock.of(line.charAt(i));
System.out.println(block.toString());
if(block.equals(Character.UnicodeBlock.BASIC_LATIN)){
...
}
0781デフォルトの名無しさん
05/03/04 01:20:28なるほど、文字コードがどのブロックに該当するかを調べるのですね。
勉強になりました。ありがとうございました。
ただ、今回自分が判定したいのは
JIS第一水準かどうか
JIS第二水準かどうか
半角カナかどうか
なので、この方法だと上記のブロックが用意されていないので
無理みたいです。(新しいブロックを作ればいいのかな?)
(質問があいまいで申し訳ありませんでした。)
そのあたり、ご存知であれば教えてもらえないでしょうか?
0782デフォルトの名無しさん
05/03/04 01:27:59JIS, Shift_JIS, EUC なら JIS 第一水準と第二水準が明確に分かれているけど、Unicode は
中国語と漢字が共用されているため、JIS とはかけ離れてバラバラに割り振られてる。
どうしてもやらなきゃならないなら Unicode のままやるのは非現実的で、一回 Shift_JIS 等の
バイト配列に変換して C/C++ でやるようにしなければならないね。
byte[] binary = line.getBytes("MS932");
0783デフォルトの名無しさん
05/03/04 01:34:01getBytesですか。なるほど。自分が知りたかったのはそれのようです。
byteに変換できれば、あとは、他の言語みたいに比較できますもんね。
ありがとうございました。
0784デフォルトの名無しさん
05/03/04 01:49:14---------------------------------------------------------
Document doc ;
OutputStream os = HttpServletResponse.getOutputStream();
OutputFormat format = new OutputFormat(doc);
format.setIndenting(true);
Writer writer = new OutputStreamWriter(out, "Shift_JIS");
XMLSerializer serial = new XMLSerializer(writer, format);
serial.asDOMSerializer();
serial.serialize(doc);
---------------------------------------------------------
上記のコードだと、例えば
<Test>1234
5</Test>
のようなテキストノード内に改行が入っていると
<Test>1234 5</Test>
と改行がスペースに置き換わってしまうのですが、
この現象の回避策はあるのでしょうか?
宜しくお願いします。
0785デフォルトの名無しさん
05/03/04 02:24:59移動が簡単だとか難しいとかでなく、
nativeで実装されているからこそ、Systemでいいんじゃないかと。
currentTimeMillis, setIn, SetOutはSystemにあるのは気にならないの?
どんなユーティリティメソッドなら、Systemにあるべきだと思うの?
0786デフォルトの名無しさん
05/03/04 02:36:31いや arraycopy() が System にあるのは変って主張してるのは俺じゃないんだが。
しかし native だからってそんな実装ベタベタな理由で設計の話するのはおかしくない?
0787781
05/03/04 04:03:46たとえば、「亜」が0x889E〜0x9872の範囲に入っているかを調べたいのですが
うまくできません。
byte[] binary = "亜".getBytes("Shift_JIS");
とした場合に、
binary[0] = -120
binary[1] = -97
となってしまいます。
これを0x889Eと比較する場合はどうすればいいのでしょう?
if (0x889E <= ? && ? <= 0x9872)
見たいな感じで比較したいと思ったのですが、
binarry[]を?に変換するところでつまずいています。
[0]が上位バイトで[1]が下位バイトだから、
binary[0]*256 + binary[1]でいいかと思ったのですが、
そうではないようですし・・・。(そもそも-120とかだし)
よい方法をお願いします。
0788デフォルトの名無しさん
05/03/04 04:33:12フォームアプリケーションの製作に挑戦してみようかと思ったのですが、製作の過程がだいぶ違います。
使い方を調べようにもヘルプは意味不明ですし取説は薄っぺらいのしかついてきてません。
どこかに「Javaの使い方」というより「J#の使い方」をまとめたようなページはないでしょうか。
0789781
05/03/04 04:38:25byteが、-127〜126だから、0以下なら+256すればいいんですね。
(((argByte[0] < 0) ? (argByte[0] + 256) : argByte[0]) * 256) + ((argByte[1] < 0) ? (argByte[1] + 256) : argByte[1])
こんな感じでうまくいきました。
ありがとうございました。
0791デフォルトの名無しさん
05/03/04 11:18:23System.arraycopy()
は、まだJITすら無かったJDK0.9とかの頃に、JVM上で配列コピーするとあまりに遅いので、
ネイティブ側でmemcpyとか使って素早く配列コピーするメソッドを用意したって理解してたけど。
そもそも設計と性能のトレードオフで性能を取ったものだから、
> native だからってそんな実装ベタベタな理由で設計の話するのはおかしくない?
こういうことも含めて性能を取って現在の形になってるんだと思うよ。
0792デフォルトの名無しさん
05/03/04 11:30:13byte[] binary = "亜".getBytes("Shift_JIS");
int ch = ((binary[0] & 0xff) << 8) | (binary[0] & 0xff);
if (0x889E <= ch && ch <= 0x9872) {
}
>>791
JITだろうが普通にコピーしたら遅いだろ。
ループでぐるぐるまわしてたら毎回範囲チェックせにゃならん。
中で何やってるかまで見て最適化なんて厳しいだろうし。
0793デフォルトの名無しさん
05/03/04 12:00:26そー思うなら java.lang.System#arraycopy とループでコピーする場合の速度比較でもやってみると良いよ。
マイクロベンチの結果はあんましあてにならんとは言うけどね。
0794デフォルトの名無しさん
05/03/04 13:34:30>>772の言うように送信データがおかしいというのが素直な結論だが。
zipフォーマットじゃないテキトーなデータを投げてみたら
(わざとエラーを出させてみたら)どうなるのかな。
同じエラーが出る?
あと、>>769はデバッグ中コードでバッファが変な書き方
だそうですが、デバッグ中じゃないコードはどうなってるの?
0795デフォルトの名無しさん
05/03/04 13:40:24int ch = ((binary[0] & 0xff) << 8) | (binary[0] & 0xff);
最後のbinary[0]ってbinary[1]じゃない?
0796756
05/03/04 13:51:12user.homeを使うことで解決できました。ありがとうございました。
ちなみにlog4jでログ出力していたのですがその出力先も
<param name="File" value="${user.home}/logfile.log" />
とすることでホームディレクトリに出力することができました。
0797デフォルトの名無しさん
05/03/04 14:41:19そういや通信相手はサーブレットだったな。
Zip データじゃなくて 500 Internal Server Error の HTML なんかが
落ちてきてるんじゃないのか? レスポンスコード 200 は確認してる?
0798デフォルトの名無しさん
05/03/04 15:57:06起動してすぐの描画がやたらと重くて困っています。
ウィンドウを手動で一度最小化して戻したり、
Javaを起動したDOS窓を最小化するとなぜか軽くなります。
あることをすれば軽くなるのでマシンスペックの問題ではないと思うのですが
このような経験がある、解決したという方、先人の知恵をお貸しくださいorz
あと円の描画(Ellipse2D)が重いようで、
円を描くときCPU稼働率が100%かそれに近い値になってしまいます。
0799デフォルトの名無しさん
05/03/04 16:27:37やってみたけど、現象が確認できない。
シリアライザのコンストラクタに、Writer を渡すのじゃなくて、
単なる OutputStream を渡したらどお?エンコーディングは、format に指定。
こんな感じで。
// 私はファイルに書いて試したけど、HttpServletResponse.getOutputStream(); でもおなじ事。
OutputStream os = new FileOutputStream(fileName);
OutputFormat format = new OutputFormat(doc);
format.setIndenting(true);
format.setEncoding("Shift_JIS");
XMLSerializer serial = new XMLSerializer(os, format);
serial.asDOMSerializer();
serial.serialize(doc);
0800デフォルトの名無しさん
05/03/04 16:40:30getWidth(ImageObserver observer)でイメージの横幅を返してくれるらしいのですが
どういったものを代入すればいいのかわかりません。
ImageObserver obs =
になんて代入すればいいのでしょうか?
よろしくお願いします。
0801デフォルトの名無しさん
05/03/04 17:00:06ImageObserver を implement してるのは Applet や Panel やらの Component サブクラス。
まぁ普通はその Image を描画しようとしてるコンポーネントだが、null でも良かったような。
元々「ネットワークで重いデータ」として、画像は非同期ロードされる設計になっている。
ImageObserver は対象画像のロード完了やロード結果をコールバックするものだが、
あまり意図したようにアプリケーションで使用されていないのが現状。
0802デフォルトの名無しさん
05/03/04 17:02:57そうだね。
java.awt.MediaTracker で読み込んだ事を確認してから処理しちゃう事も多いし。
0803デフォルトの名無しさん
05/03/04 17:20:51ありがとうございます。
自分は現在Appeletで作成していて、指定した画像の大きさをint型変数に代入したかったので
調べたところImageObserverが出てきて困ってました。
未だにImageObserverの事がよくわからないのですが、
これを使用せずに指定した画像のサイズを取得する場合どのようにすればいのでしょうか?
0804デフォルトの名無しさん
05/03/04 18:02:43Applet#getImage() とかは画像の読み込みを開始するだけで、
画像の読み込みが完了しなくても呼び出し元に返ってくる可能性がある。
画像の読み込みが完了していない場合は、getImage() とかで返された
Image は自分自身の高さも横幅もわからない状態にあるわけね。
そんなときに、ImageObserver を使うんだよね。
getWidth() で -1(前述のような画像の読み込みが完了していないので
Image が自分自身の横幅を知らない状態の場合は -1 を返す) を返されても
ImageObserver を渡しておくと、画像の読み込みが完了した時点で、横幅が通知されるってわけね。
java.awt.MediaTracker に addImage() した後、waitForAll() とかすれば読み込みが完了しているはず。
なんでこんな面倒くさい仕掛けが必要かというと、
ナローバンドが主流だった数年前のインターネット環境だと画像のダウンロードには時間がかかったから。
0805デフォルトの名無しさん
05/03/04 18:09:47簡単に言うと、getWidth(null) すれば(画像の読み込みが完了してれば)横幅が返ってくるはず。
0806769
05/03/04 18:59:01>>794
正しいデータかどうかはバイナリデータ確認するしかないですかね・・・
>>797
200が返ってきてるのは確認してますー
0807デフォルトの名無しさん
05/03/04 19:03:43Ellipse2Dってアクセラレーションきいてる描画だったっけ?
VRAM容量とか画面モードとかJREのバージョンとかいろいろと原因あるし
そもそも描画はダブルバッファつかってるのか(1.4以上はオーナーがダブルバッファデフォでしてくれたような)
不揮発性メモリつかってるかとか
稼動環境やコードの断片かいてもらわんと
0808デフォルトの名無しさん
05/03/04 19:40:02そもそも、正しく動く事もあれば間違って動く事もあるとなると
アルゴリズムが間違ってるとは思えないので
単純に通信失敗じゃないかと思うのだが
>正しいデータかどうかはバイナリデータ確認するしかないですかね・・・
それが一番確実だが・・・
サイズ見れねーか
0809デフォルトの名無しさん
05/03/04 20:11:44class main
{
A a = new A();
pointer p;
main()
{
p = a;
a = p;
}
}
のような事がやりたいのですが
Javaに参照を格納できるポインタ型みたいなものはないのでしょうか?
0810デフォルトの名無しさん
05/03/04 20:14:25ポインタというのはJavaでいう参照のことか、そうでないか?
このへんをどう理解していますか?
0811デフォルトの名無しさん
05/03/04 20:18:18いまいちナニをしたいか分からんが・・・
A a = new A();
と書いたら、a は参照型ですよ。
Cで言うポインタと思ってもらっても結構ですが、
Javaではポインタ「演算」が出来ない事に注意してください。
0812デフォルトの名無しさん
05/03/04 20:22:28class A{}
class main {
A a = new A();
A b;
main{
b = a;
a = b;
}
}
でいいんじゃね?多分こういうことがやりたいのだと思うが
意味あるかは別として
0813デフォルトの名無しさん
05/03/04 20:33:46クラスを一時的に保管したいのです
class Data_a
{
String name, adr;
}
class main{
Data data = new Data();
pointer[] p = new pointer[10];
main{
data.name='Yamada';
data.adr='tokyo';
p[0] = data; //保管
...
data = p[0]; //取り出し
}
}
このpointerに匹敵するものがあるのかなと
ただ、格納するものがdataだけと限らず他のクラスになる場合もあるので
汎用性の持ったものが作れればと思ったのです
0814デフォルトの名無しさん
05/03/04 20:40:32じゃあ、
pointer[] p = new pointer[10];
を
Object[] p = new Object[10];
にする
もしくは、dataにくる可能性のあるクラスの共通スーパークラス
を作って継承させ、
DataSuper[] p = new DataSuper[10];
にする
Objectは全てのクラスのスーパークラスです。
0815769
05/03/04 20:44:14レスありがとうございます。
>>正しく動く事もあれば間違って動く事もあるとなると
なんですが、ランダムじゃなくて、1回目は成功、2回目以降は失敗となるので
処理方法がおかしいのかと思ったりもしてますが、データ自体は同じ種類の
ものがきてるはずなのでどこが悪いのか悩んでるとこです('A`)
>>サイズ見れねーか
サイズというのは圧縮されたデータのサイズ?
最小が80ぐらいで大きいものだと36000ぐらいですが
そこから何かわかりますか?
0816デフォルトの名無しさん
05/03/04 20:49:040817デフォルトの名無しさん
05/03/04 20:50:55>最小が80ぐらいで大きいものだと36000ぐらいですが
>そこから何かわかりますか?
いや、俺が言いたかったのは単純に送り側と受け側の
データサイズを比べてみたらどうかな?ってこと。
異なってたら通信失敗、同じなら通信は成功、って事になるから。
なんだけど・・・
必ず
>ランダムじゃなくて、1回目は成功、2回目以降は失敗となる
ならアルゴリズムですね。
見当違いでスマソ...orz
0818769
05/03/04 20:57:46>データサイズを比べてみたらどうかな?ってこと。
そういうことですか、鈍くて申し訳ないです。
>見当違いでスマソ...orz
いえいえ、結構つまらないことを勘違いしてたりするので
いろいろ言っていただけると助かります。
0819デフォルトの名無しさん
05/03/04 21:07:02ファイルが新規に追加されたり削除されたといったことを
検出するapiはありますか?
0820デフォルトの名無しさん
05/03/04 21:08:05ストリームがうまく繋がってないとか
0822デフォルトの名無しさん
05/03/04 21:11:360823デフォルトの名無しさん
05/03/04 21:43:43それこそ2回目のデータのサイズを比較してみたら?
サイズ不一致>データが間違い
サイズ一致>アルゴリズムが間違い
ってことになっから
0826訂正
05/03/04 22:01:450827791
05/03/04 23:32:20俺はJITになれば普通にコピーしても早くなるとは言ってないけどw
「JITすら無かった頃」と言ったのは、まだJavaが最適化のための努力をしていなかった頃という意味で言っただけだ。
> ループでぐるぐるまわしてたら毎回範囲チェックせにゃならん。
> 中で何やってるかまで見て最適化なんて厳しいだろうし。
この部分は意味不明。何がどう厳しいの?
静的解析によって配列の範囲チェックを省く最適化をするのが現実的な時間で出来ないってこと?
0828デフォルトの名無しさん
05/03/04 23:42:39クラスの中でどのような方法を使ってるのでしょうか?
検索してもなかなか見つからず
何をキーワードにすればいいのかもちょっと思いつきません
サンプルソースのあるサイトとかあればURLだけでもお願いします
0829769
05/03/04 23:50:49お手数おかけしてます。
データをダンプしてみてみたところ、どうやら
送られてるデータがおかしいっぽいみたいです。
そちらのほうを調べてみようと思います。
相談にのっていただいてありがとうございました。
結果がでたらまた報告にきますー<m(_)m>
0830デフォルトの名無しさん
05/03/04 23:56:26ベタな方法としては、内部にArrayListを持って、基本的な仕事は全部丸投げ。
Iteratorくらいは専用のを仕立てて……かな。
サンプルソース? えーとえーと……
達人の答えを待つorz
0831デフォルトの名無しさん
05/03/05 00:06:25何で自前で作りたいの?
ArrayListの実装を見たいのなら、JDK入れた時に一緒についてくるsrc.zipを展開すれば
ArrayList.javaが有るよ。
0832デフォルトの名無しさん
05/03/05 00:07:16ArrayListとLinkedListでやってることは違うが、
データ構造の基本だ。
0833デフォルトの名無しさん
05/03/05 01:19:28try〜catchの例外処理とthrowsの例外処理は何が違うのでしょう。
いまいち分かりません。
0834デフォルトの名無しさん
05/03/05 01:22:52throwsは例外処理をしていません。
0835デフォルトの名無しさん
05/03/05 01:34:07以下のような例です。
--------------------------------------------------------------
1:public class A{
2: public static void moto(String data){
3: String mes ="1つめ" + data;
4: B.saki(mes);
5: }
6:}
7:
8:public class B{
9: public static void saki(String message){
10: String writeData ="2つめ" + message;
11: write(writeData); ←ログへの書出しメソッド
12: }
13:}
----------------------------------------------------------------
Aのmotoメソッドに渡される文字列が膨大な場合、
Aのmotoメソッド、Bのsakiメソッドでヘッダをつけた文字列を
さらに作っているので2倍、3倍の値でヒープを食いつぶしているようです。
このロジックに複数アクセスが起きるとGC対象が足りずOutOfMemoryが
発生してしまいます。
そこで質問をさせていただきたいのですが
1.10,11行目にmessage=null;を入れることでwriteメソッドの結果を待たずに
GC対象とすることができるでしょうか?
2.ヘッダをつけるロジックをStringBuffer(文字列数)に置き換えることで
中間データの発生を抑制することができるでしょうか?
どうぞよろしくお願いします。
0836デフォルトの名無しさん
05/03/05 01:47:482つめの質問はyes
StringBuffer使え。
1つめの質問はno。
messageは、10行目が終わった時点でnullにせずとも既にunreachableなので、GC対象になる。
0837デフォルトの名無しさん
05/03/05 01:53:23うそつけ、message はスタックから reachable だ。
GC はスタックに乗ってる参照が「その後使われないか」までは判断しない。
ところでスタックって知ってるよな?
0838デフォルトの名無しさん
05/03/05 01:57:380839デフォルトの名無しさん
05/03/05 02:13:49俺はJavaの文法だけではなく、オブジェクト指向の基本概念そのもの(クラス、オブジェクト、インスタンス、
継承、カプセル化、ポリモーフィズム)を例えで分かりやーすく教え、頭の中でイメージできるようにしつつ、
Javaでのオブジェクト生成・利用、継承、インターフェイス、アクセス修飾子等を教えたほうが絶対に効率的
で理解しやすいと思う。
しかし、ある現場の人は「新人にオブジェクト指向は詰め込みすぎ。文法だけでよい。」という。
多少時間はとっても、クラスやオブジェクト等がイメージできるようにしたほうが最終的には近道だと思うけど、
どうでしょ?
0840デフォルトの名無しさん
05/03/05 02:27:31ブラックボックス化 (クラス化) の必要性に続いてオブジェクト指向の話に入った
方が良い。
ただ新人研修程度だったら、その時点で内容はよく分からなくても、予めいくつかの
「キーワード」を与えておいてやると後々の仕事で無知アレルギー出さなくてすむ。
つまり「あーそれどこかで聞いたなぁ」というだけでその後のアクションがかなり違うでしょう。
0841デフォルトの名無しさん
05/03/05 02:34:08上記のものがコンパイルにとおる理由がわかる人教えてください
setAttributeの二つ目の引数はobjectでなくてもいいのでしょうか?
0842836
05/03/05 02:36:00スマソ。そう言われたらそうだな。
理論的にはコンパイラが10行目と11行目の間にmessage=nullするコードを挿入する
(or解放する)最適化は可能だと思うけど、どっちにせよGCではないな。
もうGC書いて遊んでたのが10年位前なので、ボケた事を書いてしまった。恥ずかしい。
0843769
05/03/05 02:51:36ようやく解決しました。
サーバのデータがちょっと特殊で、2回目以降は
先頭2バイト分のデータが同じ場合は
その2バイトが省略されて来るようになってたようです。
質問に答えてくださった方、どうもありがとうございました!
0844デフォルトの名無しさん
05/03/05 02:52:30いくらB.sakiメソッド内でmessage=nullとしようが
A.motoメソッドを抜けるまでreachableなのはわかってるよな?
0845デフォルトの名無しさん
05/03/05 02:53:41J2EE 1.4 でも HttpSession にそのような API はないが。
session って分け分からんフレームワークで再発明された車輪のようなセッション類似機能じゃないよな?
>>842
ノシ
0846デフォルトの名無しさん
05/03/05 02:56:40お、842 ではないが俺もそれは見逃してたw
精進せねば…
>>843
乙
0847デフォルトの名無しさん
05/03/05 03:51:31単にAutoboxingされてるのではないのかね?
0848デフォルトの名無しさん
05/03/05 04:04:34public static void foo(Object o) {
System.out.println(o.getClass().getName());
}
public static void main(String[] args) {
foo((byte)3);
foo((short)3);
foo(3);
foo(3L);
foo(3f);
foo(3d);
foo('\u0033');
foo(true);
}
}
確かに、 Java5 ならエラー無しで動く。怖ぁー。以下実行結果。
java.lang.Byte
java.lang.Short
java.lang.Integer
java.lang.Long
java.lang.Float
java.lang.Double
java.lang.Character
java.lang.Boolean
0849デフォルトの名無しさん
05/03/05 04:12:510850デフォルトの名無しさん
05/03/05 05:22:51APIで削除されたやつとか使ってなければ普通に動くはずよ。
JDBCドライバとかが問題起こすかもしれんがな。
0851デフォルトの名無しさん
05/03/05 10:53:34そのセッションを破棄するようタイムアウトを設定しているとします。
ユーザーがなにもしないまま(画面遷移など)5分たったらもちろん破棄される
と思いますが、画面遷移などのアクションをしていても5分たったら
セッションは破棄されてしまうのでしょうか?
教えてエライ人
0852デフォルトの名無しさん
05/03/05 12:11:54セッションのタイムアウトに使われる時間は最後のリクエストからの経過時間のはず
0853デフォルトの名無しさん
05/03/05 12:37:22それしか見たこと無いので気になってました。
0854853
05/03/05 12:55:040855デフォルトの名無しさん
05/03/05 14:08:42Tomcat5.5 も知らない初心者ですか?
0856デフォルトの名無しさん
05/03/05 14:13:53J2EE*製品*
貧乏学生?
0857デフォルトの名無しさん
05/03/05 14:41:570858デフォルトの名無しさん
05/03/05 14:48:370859デフォルトの名無しさん
05/03/05 14:58:090860デフォルトの名無しさん
05/03/05 14:58:390861デフォルトの名無しさん
05/03/05 14:58:410862デフォルトの名無しさん
05/03/05 15:04:030863デフォルトの名無しさん
05/03/05 15:07:45なんちゃってシステム屋以外使わねぇな。
0864デフォルトの名無しさん
05/03/05 15:13:450865デフォルトの名無しさん
05/03/05 15:20:01ましてJavaをや
0866デフォルトの名無しさん
05/03/05 15:25:580867デフォルトの名無しさん
05/03/05 15:35:38Rubyさいこう¥!!!!!!!!!!!111!
0868デフォルトの名無しさん
05/03/05 15:36:560869デフォルトの名無しさん
05/03/05 15:40:25の1つであることは確かだ。というよりも、これにはまったら、他の言語が
みんな糞というか化石のように思えてくることもあるが、どうだろう?
俺と同じような感想を持っている人はいないか?
0870デフォルトの名無しさん
05/03/05 15:41:23なんでみんなRubyを貶すのかなー?
もしかして劣等感?僻んでる?
日本発の言語で世界に評価されているのはRubyしか存在しないんだから
みんなでRubyを盛り上げてC++やJavaなんて、プププのプーってぐらいに
しなきゃ。
実際今まで500年ぐらいプログラミングしてきた俺だけど、Rubyより優れた
言語に出会った事がないよ。
やっぱり新しい言語は優れているんだろうね。
0871デフォルトの名無しさん
05/03/05 15:43:240872デフォルトの名無しさん
05/03/05 15:44:57死ね。今度会ったら殺す。
0873デフォルトの名無しさん
05/03/05 15:48:270874デフォルトの名無しさん
05/03/05 15:49:590875デフォルトの名無しさん
05/03/05 15:53:15「Javaなんてうんこ」
らしいですよ。
プゲラwwwwwwwwwwwwwwwwwwwwwwwwwwww
0876デフォルトの名無しさん
05/03/05 16:20:19は?w
Servlet API で AutoBoxing だったら、知ってるならまっ先に
Tomcat5.5 が思い浮かぶはずだが、それを知らないお前が勝手に
J2EE 製品とか、まとはずれなハズカシイこと言ったんだろw
0877デフォルトの名無しさん
05/03/05 16:23:50まー、Java リファクタリングで有名なマーチン・ファウラーでさえ
Ruby のほうを持ち上げてるからな。
0878デフォルトの名無しさん
05/03/05 16:46:48助けられてる身としては、Ruby的な「なんでも実行時解決だぜ」ってのはちょっとおそろしい。
0880デフォルトの名無しさん
05/03/05 17:12:28Rubyのメインユーザーはほとんど日本人だからね。
日本だけで完結して、いわゆる開発のスタンダードにはならないだろ。
ちなみに世界各国ごとに、こういう国産で国内だけのメジャー言語は
結構存在してる。
0881デフォルトの名無しさん
05/03/05 17:15:09StringBuffer mes = new StringBuffer( "1つめ" ).append( data );
StringBuffer writeData = new StringBuffer( "2つめ" ).append( message );
先生!これでいいですか?
0882デフォルトの名無しさん
05/03/05 17:18:32Java の先人達は DI や AOP で実行時解決に向かってるけどな。
あと、JDK5.0 の Instrument API もな。
ただ DI や AOP であっても実行時解決がおそろしいってのは同意。
雑誌に踊らされるプロジェクトが多発しないことを祈るばかり。
0883デフォルトの名無しさん
05/03/05 17:18:38画像からgetWidth,getHeightした数値をsetSizeでセットすると
ウインドウの枠も含めたサイズになってしまい困ってます。
ウインドウの枠を含めないで中のパネル?の部分のサイズをセットするにはどうすればいいのでしょうか?
よろしくお願いします。
0884デフォルトの名無しさん
05/03/05 17:22:35横レスだがおまいのレスは痛い
「製品」と強調されてオレは納得したがな
0885デフォルトの名無しさん
05/03/05 17:31:22いや、最初のレスで
「製品」っていっただろ!とか言うなよ、
とか書こうと思ったが、あとで反撃する予定だった。
イタく見えたか、そうですか。
ってか、香具師は Servlet API の話でどっから製品って言葉持ち出したの?
Tomcat は使うに値しないのか。
まー、俺も WebLogic と WebSphere でしかシステム構築してないけどな。
0886デフォルトの名無しさん
05/03/05 18:16:37SwingでJFrame使っているとしたら、setSizeではなく、
JFrameのContentPaneにJPanel1枚を全面に貼り付け、(BorderLayoutのCENTER)
そのJPanelのpreferredSizeで(画像の)サイズを指定し、JFrameに対してpack()してから
表示すればOK
0887デフォルトの名無しさん
05/03/05 18:24:26String mes ="1つめ" + data;
は
String mes = new StringBuffer().append("1つめ").append(data).toString();
にコンパイル時に置き換えられるから等価だと思ってたけど違うんかな?
むしろString mes = new StringBuffer(data.length()+6).append("1つめ").append(data).toString();
みたいに最初からバッファの容量をきちんと取っておけば、StringBuffer内部で使ってる
char配列が余分に作られなくてよさげ。
0888デフォルトの名無しさん
05/03/05 18:46:11ありがとうございました。
上手くできました。
0889デフォルトの名無しさん
05/03/05 19:11:310890デフォルトの名無しさん
05/03/05 20:40:57Vアプリを作っているのですが
多分岐ツリー構造をどうやって再現するか考えた結果
Listによるツリー管理が楽だと思ったのです
が、MIDPにはオブジェクトを保管できるListらしきものが見当たりません
そこで自分で作ってしまえと思ったのですがソースを見てもちょっと難しいので
いまはString.javaのソースを鑑賞してます
このまま理解が出来なければ配列でツリーを作るしかなさそうですが
それも視野に入れながら考えてます
0891www.geocities.jp/shouhishahogo/
05/03/05 20:47:36つまり、コンピュータで実装させるとそれなりの演算量がかかります。
挿入ソートを改良し、演算量を減らしたシェルソートというのもあります。
0892デフォルトの名無しさん
05/03/05 23:04:230893デフォルトの名無しさん
05/03/05 23:31:45int i = (int)(Math.random()*(n+1));
0894デフォルトの名無しさん
05/03/05 23:53:090895デフォルトの名無しさん
05/03/06 00:01:42彼女はね、それがひとつしかないと思い込むタイプなのよ。
0896デフォルトの名無しさん
05/03/06 00:39:34そのスレッドは明示的に破棄する処理を書いて破棄しないといけないのでしょうか?
なにかプロセスが残ってしまうとかあるのでしょうか?
教えてエライ人
0897デフォルトの名無しさん
05/03/06 00:57:21ああ、また不正確なことを言ってしまった。
「解放する最適化は可能」と読み替えてくれぃ。
スレ汚し失礼。
0898デフォルトの名無しさん
05/03/06 01:00:27無いよ 自動でVMが回収する。
VMによるが、再利用にまわされるために、外から見ればスレッド数が減らないけど。
0899デフォルトの名無しさん
05/03/06 01:03:01無いでしょうか?
SessionBeanだけなら、SessionBeanのクラスを普通のクラスのように
呼び出せば良いんですが、EntityBeanが中に入ると
どうやれば良いのやら・・・・
0901デフォルトの名無しさん
05/03/06 01:24:10言い忘れたけど、参照はすべてクリアされた場合が回収対象になるよ。
HogeHogeThread thread = new HogeHogeThread();
thread.run();
thread = null;
参照クリアはしてくださいな。
0902デフォルトの名無しさん
05/03/06 01:44:29普通にデバッグできると思うが?
Eclipse内で起動できないならリモートデバッグで対応。
後はコードにブレークポイント張っとけ。
0903899
05/03/06 01:48:01J2EEサーバ何使ってますか?
環境教えてください。
0904デフォルトの名無しさん
05/03/06 02:37:43WARNING: Default charset MS932 not supported, using ISO-8859-1 instead
と出てきてインストールできません。原因を教えていただけないでしょうか?
0905デフォルトの名無しさん
05/03/06 02:56:49何顔真っ赤にしてんだ、意味の通った日本語しゃべれよw
0906デフォルトの名無しさん
05/03/06 03:10:38知ってる単語並べただけにしか見えねぇ (w
0907デフォルトの名無しさん
05/03/06 03:19:17>>905, >>906
お前ら見苦しいから、くだらん争いはやめてくれ
0908デフォルトの名無しさん
05/03/06 03:31:55すまんな、自称 SE に引っ張られたw
>>904
ちゃんと Multi-Language 版ダウンロードした?
0909デフォルトの名無しさん
05/03/06 04:00:330911デフォルトの名無しさん
05/03/06 12:13:30あー、すまんな w 分かりやすく言うと
Tomcat5.5 も JDK5.0 もよく分かってない香具師は黙っとけ。
>>908
SE だなんて言ってないが?
今まで 20 システムほど組んできたが、今は客先に
方式決定支援に廻ってるくらいだな。
0912デフォルトの名無しさん
05/03/06 13:13:46private JFileChooser filec = new JFileChooser();
public filechooser()
{ filec.addActionListener(this); }
public void actionPerformed(ActionEvent e) { ... }
こんな感じで本に載ってた通りに書いてます。
よろしくお願いします。
0913デフォルトの名無しさん
05/03/06 13:19:21JDK1.5.0_01 ディレクトリの中にも、jre というディレクトリが出来いて、なんか無駄に容量食ってる
気がするのですが、単なる JRE と、JDK ディレクトリの中の JRE の2つをインストールさせられる
理由ってなんなんでしょう?2つも律儀にインストールした私がマヌケなだけなのでしょうか。
0914デフォルトの名無しさん
05/03/06 13:29:49そのJREはブラウザとか、システムディレクトリのjava.exeとかが使うはず。
アプリケーションの追加と削除で消せると思うけど。
あと、JREにはHotSpot clientエンジンしか入ってないけど、
JDKのJREにはHotSpot serverエンジンも入ってたりとか若干違ったと思う。
1.5.0ってインストール時にJRE入れないオプションなかったっけ?
0915913
05/03/06 13:45:50ありがとうございます。
確かに、「単なるJREのbin/ 」には無いディレクトリ「server/ 」が、
「JDKの中のJREの bin/ 」の中にはありました。
それぞれのファイルの diff を取ってみると、java.exe そのものには違いが
無いものの、各種DLLはほとんど全部別物のようです。
> 1.5.0ってインストール時にJRE入れないオプションなかったっけ?
あったかもしれない。よく覚えてないです。
# eclipse をソースからビルドするのに J2SDK1.4.2 も必要だったので、
# 結局 JRE を4つも持つことになってしまった。
0916デフォルトの名無しさん
05/03/06 13:57:01J2SEのDLページまで飛んで日本語表記にして一番上にある
プログラムをとってきたんですけどそれじゃだめなのでしょうか?
0917デフォルトの名無しさん
05/03/06 15:12:35># eclipse をソースからビルドするのに J2SDK1.4.2 も必要だったので、
># 結局 JRE を4つも持つことになってしまった。
Eclipseをビルドする最小構成は、Eclipse + JRE1.4.2。
JDK(1.5)やSDK(1.4)はなくてもビルドは出来る。HDDの
容量を気にするなら覚えといてもいいかも。
replace('\'','\'\'')
も
replace('\u0027','\u0027\u0027')
も
もちろん
replace(''','''')
もダメでした。
僕はどうすれば良いのでしょうか・・・
このままでは家に帰れません・・・
0919デフォルトの名無しさん
05/03/06 15:43:09replaceAll("\'", "\'\'") じゃダメですか?
0920デフォルトの名無しさん
05/03/06 15:45:45シングルクオートはエスケープいらない。
0921919
05/03/06 15:50:07勉強になりました。
0922デフォルトの名無しさん
05/03/06 16:17:04エスケープしても動くよ
0924デフォルトの名無しさん
05/03/06 17:10:160925名無し
05/03/06 18:47:53ある文字を2進数で表示したいのですが
何か方法はありませんか??
0926デフォルトの名無しさん
05/03/06 18:51:36Integer.toBinaryString(n)
0927デフォルトの名無しさん
05/03/06 19:08:14OS(WindowsXP)がJavaVMに割り当てるメモリ量ってどうやったら調節できるの?
タスクマネージャで見てて、使用メモリが約75MBに増えたところでOuyOfMemoryで終了してしまう。
0928デフォルトの名無しさん
05/03/06 19:10:36詳しくはツールドキュメントか java -X で。
0929デフォルトの名無しさん
05/03/06 19:22:19うまくいきました。ありがとう。
0930デフォルトの名無しさん
05/03/06 21:29:44ウインドウのサイズと同じになってしまうんですか?
JButton bt = new JButton();
bt.setSize(100,30);
のように指定しても意味が無いのでレイアウトができないのですが・・・?
0931デフォルトの名無しさん
05/03/06 21:33:51コマンドライン上から受け取った3つの数字の最大値をmathクラスを使って
答えをだすにはどうすればよいのでしょうか?
0932デフォルトの名無しさん
05/03/06 21:44:14Java レイアウトマネージャ でぐぐれば?
0933デフォルトの名無しさん
05/03/06 21:47:03int max = Math.max(Math.max(Integer.parseInt(args[0]),Integer.parseInt(args[1])),Integer.parseInt(args[2]));
0934デフォルトの名無しさん
05/03/06 21:51:46なるほど こうやってやればいいのですか・・・
がんばって続けてみます ありがとうでした〜
0935名無し
05/03/06 22:19:35できました。
これって一文字づつしかできないんですか?
もし複数文字ではできないんですか?
例えば hanikami という文字を
2進数表示とか??
0936デフォルトの名無しさん
05/03/06 23:00:01やさしいおじさんが「for」というキーワードを教えてやろう。
0937デフォルトの名無しさん
05/03/06 23:28:12あれは、複数の環境が用いられることを考えてるために、あーなってるのですか?
なぜなんですか?
インストール時にパスを作ることができないんですか?
0938デフォルトの名無しさん
05/03/06 23:38:45出来るけど、Java の 1.4 や 1.5 を切り替えて開発するような人も居ることを考えたら
各自でやった方がいいでしょ。それすら面倒なら Eclipse なんかの統合開発環境
使えば良いじゃん。
そもそも手作業でパスを入力するのは開発する人だけ。実行するだけならパス設定は不要。
開発者に環境切り替えて使うだけの知識があると考えるのは常識の範囲。
0939名無し
05/03/07 00:37:08もしかして、文字を一回配列化して
それから、一文字一文字をforを使って
取り出して、それで〜2進数表示
するってことですか???
0940デフォルトの名無しさん
05/03/07 01:52:16そう。配列化をする必要はないけど、大体そんな感じ。
何か不都合でも?
0941デフォルトの名無しさん
05/03/07 02:07:320942デフォルトの名無しさん
05/03/07 03:20:52> Linux + Tomcat + PostgreSQL のセコイ環境しか使えない奴増えてんのかね ┐(´ー`)┌
顧客がその環境を押しつける案件が多いよ。
けどこっちとしては
J2SE5に対応したTomcat5.5を使わせて欲しい以外は
全然不満はないな。
0943デフォルトの名無しさん
05/03/07 03:27:550944デフォルトの名無しさん
05/03/07 03:28:010945デフォルトの名無しさん
05/03/07 03:38:28別に Tomcat はモノとしては良いとは思うが (自宅鯖でガンガン使ってるし)、サーバ製品
ケチる客とは深くお付き合いしたくないなぁ。
0946デフォルトの名無しさん
05/03/07 04:45:230947デフォルトの名無しさん
05/03/07 09:05:510948デフォルトの名無しさん
05/03/07 09:26:10このスレでの禁句に認定されました。
0949デフォルトの名無しさん
05/03/07 10:17:250950デフォルトの名無しさん
05/03/07 10:21:52だったら、わざわざやらせる必要もないだろうということだ。
0951デフォルトの名無しさん
05/03/07 10:23:04参照渡し
0952デフォルトの名無しさん
05/03/07 11:04:27必須なのは直接継承するクラスまでです。
0953名無し
05/03/07 12:19:12一回それでやってみます
0954名無し
05/03/07 12:36:55int namae = name.length();
for(i = 0; i <= namae; i++);
System.out.println(Integer.toString(i, 2));
これじゃやっぱりダメですかね?
0955デフォルトの名無しさん
05/03/07 12:40:50System.out.println(Integer.toString(name.charAt(i), 2));
}
0956名無し
05/03/07 13:25:05できるのはできたんですが
こんなエラーが出ます
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 6
0957デフォルトの名無しさん
05/03/07 13:31:53>>954 でやってる文字列の範囲指定の間違い、
> for(i = 0; i <= namae; i++)
(name != null なら name.charAt(name.length()) は IndexOutOfBoundsException を投げる)
を >>955 のに持ち込んだだけでは?
0958名無し
05/03/07 13:43:49たぶんそうかも・・・
String name = "hanika";
int namae = name.length();
System.out.println(namae);
int i;
for(i = 0; i <= name.length(); i++){
System.out.println(Integer.toString(name.charAt(i),2));
}
こんな感じにしてます・・・
0959デフォルトの名無しさん
05/03/07 13:51:02<=じゃ100%えらーでるだろう
0960デフォルトの名無しさん
05/03/07 13:55:430から数えるから終了条件も0を含めた数にあわせないといけないな
0961名無し
05/03/07 14:04:26あっほんまや! <=にしてる(笑)
<だけにしたらエラーが出なくなりました。
どうもです。
あと>>960の意味なんですが
よくわからないんですけど・・
0962デフォルトの名無しさん
05/03/07 14:04:406番目のインデックスは範囲外といっておる
0963デフォルトの名無しさん
05/03/07 14:05:110964デフォルトの名無しさん
05/03/07 14:06:06基本的な文法がわかっていないのと、言語自体が不慣れなようだから
0965名無し
05/03/07 14:11:16はい、javaを初めてちょっとしかたってないし
はじめてプログラミングしてますし・・・
一応本は持ってるんですけど
いまいち頭に入って来なくて・・・
0966名無し
05/03/07 14:13:07今聞いているような事が載ってなくて(自分が理解してないだけかもしれないですけど)
ほんとにワケワカメです・・・
0967955
05/03/07 14:15:24回線切って首吊るところだった
0968デフォルトの名無しさん
05/03/07 14:21:14ようにしたいのですがどうすればよいのでしょう?
0969デフォルトの名無しさん
05/03/07 14:46:21そうすると、最後の文字は「長さマイナス1番目」になるでしょ。
<=だと「長さ」番目そのものまで見ようとしてエラーになる。
0970デフォルトの名無しさん
05/03/07 14:50:14配列の長さ(要素数)と添字の違いに注意しる。
長さが3なら、添字は、0,1,2だろ?添字3は存在しねえ。
"<=" を使うって事は、i=3の時もループ終了条件は満たしてないから
(4の時に初めて満たす)、存在しない添字3を参照してるってことだ。
まあ、
int ary[] = new int[10];
for(int i = 0 ; i < ary.length ; i++) {
ary[i] = うんちゃらかんちゃら
}
は慣用句だとおもって叩き込め
ちなみに俺は他言語でもループの条件式で "<=" を使っているのは
ほとんど見たことがないぬるぽ。
0971デフォルトの名無しさん
05/03/07 14:52:11> ほとんど見たことがないぬるぽ。
いや、さすがにそれは経験不(以下略)
0973デフォルトの名無しさん
05/03/07 17:15:27System#currentTimeMillisでも使ってみたら?
0974デフォルトの名無しさん
05/03/07 17:58:26なんかもっとこう、ローカルのアプリケーション向けの
play(File) みたいなことができるクラスがあったら教えてください
0975デフォルトの名無しさん
05/03/07 18:07:510976デフォルトの名無しさん
05/03/07 18:12:47配列使わずArrayList使え
0977デフォルトの名無しさん
05/03/07 18:16:550978デフォルトの名無しさん
05/03/07 18:40:40new するしかない。
ArrayList は内部に配列を持ってて、必要になったら大きめの配列を new して、
今持ってる配列の各要素をコピーして、新しく追加しなきゃならない要素を追加して、
とかの事を、自動的にやってくれる。
0979デフォルトの名無しさん
05/03/07 18:46:13>>978をそのままコードにします
どうもでした
0980名無し
05/03/07 19:00:37ありがとうございました
べんきょうしまぁす
0981デフォルトの名無しさん
05/03/07 20:06:08なにあほなこと言ってるんだ?
0982デフォルトの名無しさん
05/03/07 20:30:18StreamTokenizerで読み込んでみた所うまくいきません
データファイルが
1.0e-2
という指数表記のdouble型のデータをStreamTokenizerを用いて
double val = st.nval;
のように代入するとvalには
0.01ではなく1.0が格納されてしまいます
指数表記の値を読み込むにはどうすればいいのでしょうか?
0983デフォルトの名無しさん
05/03/07 20:35:56FileのcanReadメソッドで読むと
trueが返ってくるのですが、
おかしくないですか?
0984デフォルトの名無しさん
05/03/07 20:43:55どうやってファイルを読み取り・書き込み不可にしたんですか?
0985デフォルトの名無しさん
05/03/07 20:47:12エクスプローラから該当ファイルを選択して右クリックし
セキュリティのタブからEveryoneで書き込み・読み取りを拒否にチェックしました
0986デフォルトの名無しさん
05/03/07 20:54:28そのように読み取り・書き込みを不可にしたファイルを
Fileのdeleteメソッドで削除できるんですが、
これもおかしくないですか?
0987デフォルトの名無しさん
05/03/07 20:57:29ファイルの読み込み専用属性しか見てないんじゃないの?
だけど、そもそもその手のメソッドの結果を信用しちゃいけない。
あくまで読めるかも程度の参考にすべき。
マルチタスクな世界じゃcanRead()がtrueを返しても、実際に
読み込もうとした時にファイルが無かったり、読み込み専用に
変わってることもありえるからね。
0988デフォルトの名無しさん
05/03/07 21:02:31他の(Everyoneより上の)権限だとフルアクセスできるまま、とか
0989デフォルトの名無しさん
05/03/07 21:06:50俺の予想だとコマンドプロンプトから削除しても削除できるね、そのファイル。
0990デフォルトの名無しさん
05/03/07 21:07:32グループ名またはユーザ名にはeveryoneしかない状態でした
0991デフォルトの名無しさん
05/03/07 21:11:00【初心者】Java質問・相談スレッド63【大歓迎】
http://pc5.2ch.net/test/read.cgi/tech/1110197411/
0992デフォルトの名無しさん
05/03/07 21:15:26そのファイル、もしjavaでアクセスできなかったらどうするつもりだったんだ
0993デフォルトの名無しさん
05/03/07 21:18:49右クリックでアクセス許可のフルコントロールをチェックすればいいと思います
0994デフォルトの名無しさん
05/03/07 21:20:23つーことはそのファイルには「アクセス許可を与えることができる」ユーザでアクセスしてるんでしょ?
そのユーザでそのファイル読んだり消したりできるのは何らおかしくないと思うけど。
0995デフォルトの名無しさん
05/03/07 21:25:58読み取りと書き込みを不可にすると
アクセス許可を与えることができるユーザであっても
アプリケーションで開けなくなります
例えばa.txtの読み取りと書き込みを不可にすると
a.txtをエディタで読み込もうとするとエラーが出ます
0996デフォルトの名無しさん
05/03/07 21:36:24読み込み不可のファイルを読み込めるのは OS としておかしいよ。
ん、ファイル削除可否はディレクトリに対する権限だったかな? Linux だとこんな感じ。
$ touch a
$ chmod 000 a
$ cat a
cat: a: 許可がありません
$ cat > a
-bash: a: 許可がありません
$ rm a
rm: remove write-protected 通常の空ファイル `a'? y
$ (削除成功)
0997デフォルトの名無しさん
05/03/07 22:24:59ここのJava1.5SDKが落とせなかったんで英語ページから
落としたんですが、別に問題ないですよね?
0998デフォルトの名無しさん
05/03/07 22:28:18問題ない、はず。
気になるなら Sun に問い合わせてみれば?
0999デフォルトの名無しさん
05/03/07 22:30:57乙!
1000デフォルトの名無しさん
05/03/07 22:37:3310011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。