【初心者】Java質問・相談スレッド61【大歓迎】
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
05/01/30 12:39:42質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/
これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、
wikiからのリンクをおたどりください。
以下のエラーが表示されて、途方にくれているあなたは、下のページへ。
「コマンドまたはファイル名が違います」
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
「Exception in thread "main" java.lang.NoClassDefFoundError: 」
http://www.wikiroom.com/java/?path%2Cclasspath
前スレッド
【初心者】Java質問・相談スレッド60【大歓迎】
http://pc5.2ch.net/test/read.cgi/tech/1105691367/
/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */
また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝なく存じます。
JavaScriptの質問は、ここでは受け付けていません。
Web製作板をご利用ください。http://pc5.2ch.net/hp/
0002デフォルトの名無しさん
05/01/30 12:47:310003デフォルトの名無しさん
05/01/30 13:12:43ファイルからフォーマット付きでデータを読み込むことはできなにでしょうか??
0004デフォルトの名無しさん
05/01/30 13:16:56FileReader、BufferedReader、java.text.*周りを使うとできますが、
1.5なら、Scanner使うと簡単にできるようになります。
0005デフォルトの名無しさん
05/01/30 14:12:32グーグルで調べてみたのですが、
(BufferedReader フォーマット、など)
よくわからないので、
使い方などが書かれているところがありましたら教えていただけますか?
0006デフォルトの名無しさん
05/01/30 14:35:40http://www5.airnet.ne.jp/sakuraba/java/laboratory/J2SE1.5/MiscAPI/CStyleFormat/scanf.html
これ?
00076 (≠ 4)
05/01/30 14:38:32でもScanner使うよりもBufferedReader#readLine()で一行読んでから
java.util.regex.Pattern使ったほうがよさげ。
そのファイルはどんな「フォーマット」なの?
0008デフォルトの名無しさん
05/01/30 14:44:19レスどもです〜。
せっかく教えてもらったんですが、無駄にeclipseを使っているので、
java.util.Scanner
がないみたいなんですよね。。(´・ω・`)
0009デフォルトの名無しさん
05/01/30 14:48:02自分で作るファイルなので、
特に形式は決まってないんですが、
今考えてるのは、
row7num3
3:1,2
5:4,1
8:6,6
row8num1
2:4,5
みたいな感じのものです。
0010デフォルトの名無しさん
05/01/30 14:54:31ttp://blog.livedoor.jp/efz_efz/archives/13308528.html
0011デフォルトの名無しさん
05/01/30 14:55:39EclipseはJDKとは関係ないからJDK1.5もJDK1.4も使える。
1.5ならScannerが使える。regexとBufferedReaderは1.4で使える。
>>9
String line = bufferedReader.readLine(); で一行読み込んで
Pattern headerLinePattern = Pattern.compile("row(\\d+)num(\\d+)");
Pattern dataLinePattern = Pattern.compile("(\\d+):(\\d+),(\\d+)");
Matcher headerLineMatcher = headerLinePattern.matcher(line);
Matcher dataLineMatcher = headerLinePattern.matcher(line);
if (headerLineMatcher.matches()) {
} else {
String row = headerLineMatcher.group(1);
String num = headerLineMatcher.group(2);
} (dataLineMatcher.matches()) {
...
} else {
throw new IllegalStateException("不正なフォーマットだ (゚Д゚)ゴルァ!!");
}
多分こんな感じ
001211
05/01/30 14:57:48意図を汲んで適当に直してくれ
0013デフォルトの名無しさん
05/01/30 14:59:34親切にどもでした!!
挑戦してきます!
0015初心者A
05/01/30 15:35:48htmlファイルを作成し
http://localhost:8080/jsp/index.html
とURLに打ち込み表示させた所文字化けを
してしまいますどうすれば良いでしょうか?
※<%@ page contentType="text/html;charset=Shift_JIS" %>
<%@ page pageEncoding="Shift_JIS" %>
とちゃんと入力はしてはいるのですが、、、
0016デフォルトの名無しさん
05/01/30 15:43:08※<%@ page contentType="text/html;charset=Shift_JIS" %>
<%@ page pageEncoding="Shift_JIS" %>
0017デフォルトの名無しさん
05/01/30 15:47:57001813
05/01/30 16:42:40>Pattern headerLinePattern = Pattern.compile("row(\\d+)num(\\d+)");
>Matcher headerLineMatcher = headerLinePattern.matcher(line);
>if (headerLineMatcher.matches()) {
sにはきちんと読み込まれているんですが、
どうしてもif文の中に処理がいかないのですが、どうしてでしょう!?
『\\d+』のところを『[0-9]+』としてもダメでした。。
0019デフォルトの名無しさん
05/01/30 17:10:09引数 1 →結果 0
引数 2 →結果 1
引数 4 →結果 2
引数 16 →結果 4
引数 32 →結果 5
Mathクラスを調べたんですが,該当するメソッドは
無いようです。Math#logは自然対数のみのようで。
どなたかよろしくお願いします。
002013
05/01/30 17:12:13log_2 a = log_e a / log_e 2
という式から求まりますよ!!
002113
05/01/30 17:14:30log_2
は底が2という意味です。
002219
05/01/30 17:22:26なるほど!そういう意味でしたか。
計算してみます。
あと、お返しに。
Pattern headerLinePattern = Pattern.compile("^row(\\d+?)num(\\d+?)\r\n");
もしくは
Pattern headerLinePattern = Pattern.compile("^row(\\d+?)num(\\d+?)\n");
に直したら通りませんか?
つまりは全一致検索になると思うので、改行コードも必要じゃないかなぁ。
0024学生さんは名前がない
05/01/30 18:09:15readLine()で読みこんでるから改行は入らないはず
0025デフォルトの名無しさん
05/01/30 18:13:23ほれ。
長いので別のところに貼っといた。少なくとも俺のところでは >>9 を読み込んでちゃんと動いてるぞ
ttp://www.wikiroom.com/java/?%a5%bd%a1%bc%a5%b9%c5%bd%c9%d5%a4%b1
0026デフォルトの名無しさん
05/01/30 18:15:06Pattern headerLinePattern = Pattern.compile("row(\\d+)num(\\d+)");
Matcher headerLineMatcher = headerLinePattern.matcher(line);
if (headerLineMatcher.matches()) {
String row = headerLineMatcher.group(1);
String num = headerLineMatcher.group(2);
System.out.println("row: " + row + ", num: " + num);
} else {
System.out.println("Invalid line format: " + line);
throw new IllegalStateException("不正なフォーマットだ (゜Д゜)コ゛ルァ!!");
}
ちゃんと row: 7, num: 3 って出力されるけど。データおかしいんじゃね?
0027kkk
05/01/30 18:17:210028デフォルトの名無しさん
05/01/30 18:18:340029デフォルトの名無しさん
05/01/30 18:19:47wikiにコードの断片なんか書くなよ。バカじゃねーの
0030kkk
05/01/30 18:21:060031デフォルトの名無しさん
05/01/30 18:21:100032デフォルトの名無しさん
05/01/30 18:22:010033デフォルトの名無しさん
05/01/30 18:24:340034デフォルトの名無しさん
05/01/30 18:29:53うっせーバカ
0035デフォルトの名無しさん
05/01/30 18:32:540036デフォルトの名無しさん
05/01/30 18:43:09855 名前:デフォルトの名無しさん :05/01/30 18:35:04
"30 1 180\n"
"23 0 165\n"
…
こういうデータがそれぞれ1行の配列として与えられたとき、
int Age[50000];
int Sex[50000];
int Height[50000];
この3つの変数に順に代入していくにはどういう文を書けばいいんですか?
てか Java には scanf みたいな機能って付いてないんですか?
0037デフォルトの名無しさん
05/01/30 18:54:12>3-7
003813
05/01/30 19:01:29わざわざすいません。。。
でも??はエラーになってしまいました(゜▽゜;)
>>26
おっしゃるとおりデータの後ろにスペースが入ってました(´・ω・`)
どうもお手数をかけてすみませんでしたm(_ _)m
0040デフォルトの名無しさん
05/01/30 19:20:20くらいでいい気がする。
0041デフォルトの名無しさん
05/01/30 19:23:26deprecated
大体StringTokenizerなんか使うやつはマゾ
0042デフォルトの名無しさん
05/01/30 19:24:16機体移動のアルゴリズム
public void keyPressed(KeyEvent evt) {
switch (evt.getKeyCode( )) {
case KeyEvent.VK_RIGHT :
X=10;
・
・
としたとき、いざ動かしてみると機体が少し動いた後一時停止して
今度は連続して動くモーションとなります。
キーを押したとき一旦停止することなく連続して動くようにするには
どうすればよいのでしょうか?
0043デフォルトの名無しさん
05/01/30 19:35:32おススメは?
0044デフォルトの名無しさん
05/01/30 19:49:14StringTokenizer は、互換性を維持する目的で保持されているレガシークラスであり、
新規コードでは使用が推奨されていません。
この機能の使用を考えているなら、String の split メソッドまたは
java.util.regex パッケージを代わりに使用することをお勧めします。
0045デフォルトの名無しさん
05/01/30 20:04:34トークンとデリミタ両方が取得できる機能は重宝してたのだが・・・
Scannerにはないじゃん。
どーするんだよ。
0046デフォルトの名無しさん
05/01/30 20:06:100047デフォルトの名無しさん
05/01/30 20:22:04なんでない!
004836
05/01/30 21:18:42Scanner なんてクラスがあるんですね。
ちょうど 1.5 の勉強したいところだったんで、これ使ってみようと思います(`・ω・´)シャキーン
0049デフォルトの名無しさん
05/01/30 21:27:07「Java GUIプログラミング vol.1」
を買ってみたのですが、内容が古すぎて最近のVMでは動かないのです。
どうしたものか、、、。
0050デフォルトの名無しさん
05/01/30 21:39:34単にJ2SE 5.0つかってて、javacに-source 1.4を付けてないだけ、に100ガメル。
0051デフォルトの名無しさん
05/01/30 21:56:15コンパイルは出来ましたか?
005249
05/01/30 22:14:26勉強になりました。(J2SE 5.0つかってて、javacに-source 1.4を付けてない
今は1.5への大改革の最中なのですか?
使ってるVMは、1.4、本は1.3の時代のもののようです。
>51
コンパイルできなかったので、importを書き換えました。そしたら、コンパイルできました。
実行したらエクセプションしました。
0053デフォルトの名無しさん
05/01/30 22:47:08単なるキーリピートの問題の予感
0054デフォルトの名無しさん
05/01/30 23:14:43String OTZ = 何か入ってる , orz = 何か入ってる;
OTZ = orz;
じゃだめでつか?
0055デフォルトの名無しさん
05/01/30 23:18:300056デフォルトの名無しさん
05/01/30 23:25:36何もやらずに訊いているのか?
それとも、やって何か不都合があって訊いているのか?
0057デフォルトの名無しさん
05/01/30 23:33:56clone()はprotectedされていますみたいなエラーがでるよ
どうすればいいんだかorz
0058デフォルトの名無しさん
05/01/30 23:44:000059初心者
05/01/30 23:51:58Tomcatを立ち上げ *.jsp にアクセスしようと
すると普通にHTMLファイルが表示されるのですが
*.htmlにアクセスしようとすると文字化けしてしまいます。
どうすれば良いでしょうか?
※しっかり下記は記載しています。
<%@ page contentType="text/html;charset=Shift_JIS" %>
<%@ page pageEncoding="Shift_JIS" %>
0060デフォルトの名無しさん
05/01/31 00:02:15イベントに対していどうのこーどをかいちゃいかん
これはJava特有の問題ではなくてイベントドリブンでのゲームプログラム全般の話
0061デフォルトの名無しさん
05/01/31 00:13:09a = b;
でOK
0062デフォルトの名無しさん
05/01/31 00:24:35もう回復不可能なんでしょうか?
下のようなクラスで、プロパティファイルが無いときに2回testメソッドを呼ぶと、
2回目以降はNoClassDefFoundErrorと出て初期化を試してもくれません。
自分で強制的にもう一度初期化を試させる(?)ことてできるんでしょうか?
public class Test
{
private static String TEST;
static {
ResourceBundle bundle = ResourceBundle.getBundle("test");
TEST = bundle.getString("test");
}
public static void test () {
System.out.println(TEST);
}
}
0063デフォルトの名無しさん
05/01/31 00:44:21正規表現に\Qと\Eというのが指定できる。
それを指定すると、\Qと\Eの間のメタ文字は解釈されなくなる。
それを使えば、ユーザーの任意の入力に\Eが含まれていない限り、
> 、置換文字列を指定する人が、正規表現を知らなくても使えるように、
> 単純な文字列の置換機能にしたいんです。
が実現できるはず。
0064デフォルトの名無しさん
05/01/31 00:53:43htmlファイルのheadタグ内に
<meta http-equiv="content-type" content="text/html; charset=Shift_JIS">
を加える。
0065デフォルトの名無しさん
05/01/31 01:15:26Appletクラスを継承したhogeクラスではpaintメソッドが勝手に実行されるのと同じように
Frameクラスを継承したhogeクラスでもpaintメソッド書いたら勝手に実行されるの?
もしそうなら実行される時はいつになるんでしょうか?
hogeクラスにmainメソッドがある場合mainメソッドが実行されてからpaintメソッドが実行されるんでしょうか?
0066デフォルトの名無しさん
05/01/31 01:26:53質問お願いしますとのことですので
回答ではなく質問を書きますね
Googleで少し検索すれば回答が出てくるのに
検索して自分で調べようとしないのは何故ですか?
0067デフォルトの名無しさん
05/01/31 01:33:18>>60
レスありがとうございました。自己解決できました。
public void keyPressed(KeyEvent evt) {
switch (evt.getKeyCode( )) {
case KeyEvent.VK_RIGHT :
MoveX=true;
・
・
public void keyReleased(KeyEvent evt){
switch (evt.getKeyCode( )) {
case KeyEvent.VK_RIGHT :
MoveX=false;
・
・
0068デフォルトの名無しさん
05/01/31 01:46:14そんな事言ったら、何でもググれで済まされるんじゃないですか?
この質問スレ自体が必要ないって話になります。
少なくとも、答える気がないならわざわざイヤミレスしないでください。
もういいです。自己解決しました。
システムコール並びにrepaint()による、再描画イベント発生時に
paint()が呼び出されるのですね。
0069デフォルトの名無しさん
05/01/31 01:50:48ClassLoaderで、自分で再読み込みしてみてください。
007066
05/01/31 01:56:09あの〜、楽しんでるだけだと思うんだけど・・・ともかく・・・回答有難うございました
あと・・・
>少なくとも、答える気がないならわざわざイヤミレスしないでください。もういいです。
禿同です
>>66
わざわざ人の揚げ足とるようなまねまでして、なんていやな野郎なんだ
スルーすれば済むのにさ、もう少し我慢したらどうなのさ
0071デフォルトの名無しさん
05/01/31 02:01:47>そんな事言ったら、何でもググれで済まされるんじゃないですか?
言われるまで分からなかったの?
>この質問スレ自体が必要ないって話になります。
ぐぐってもそう簡単に分からないことを聞きたいときのためにこのスレがあるんです。
ところで>70
自分自身を「なんていやな野郎なんだ」ってのは何だ? いやレス番号ミスだとは思うが……
0072デフォルトの名無しさん
05/01/31 02:05:41あ〜あ、このスレ全否定しちゃった。しかもまた揚げ足取ってる、ワロタw
もうおめ〜らくだらねえから消えろよ
0073デフォルトの名無しさん
05/01/31 02:07:32寝ぼけてるのか精神分裂に陥ってるのかワカラン
0074デフォルトの名無しさん
05/01/31 02:11:57>>65=>>70 (自分も相手も間違えてる馬鹿)
>>66 (嫌われ者w)
>>68 (楽しんでる厨房)
これでFAね
0075デフォルトの名無しさん
05/01/31 02:26:03どうもです。自分でロードしてもNoClassDefFoundErrorになってしまうんですが...
何か勘違いしてますか?
public class Hoge
{
public static void main ( String[] args ) {
try {
Test.test();
} catch ( Throwable e ) {}
try {
Class c = Hoge.class.getClassLoader().loadClass("Test");
System.out.println("Loaded: "+c);
Test.test();
} catch ( Throwable e ) {
e.printStackTrace();
}
}
}
--
Loaded: class Test
java.lang.NoClassDefFoundError
at Hoge.main(Hoge.java:11)
0076デフォルトの名無しさん
05/01/31 02:56:55ホントに静的初期化子で例外が起こってる?
クラスの初期化に失敗したときはExceptionInInitializerErrorが投げられるはずだけど。
単にTestクラスが見えてないだけなんじゃない?
0077デフォルトの名無しさん
05/01/31 02:59:06007862
05/01/31 03:07:11長くなるんで1回目のエラー表示はカットしたんですけど、
75の最初のcatchの中でprintStackTraceすると下のようなエラーが出ます。
java.lang.ExceptionInInitializerError
at Hoge.main(Hoge.java:6)
Caused by: java.util.MissingResourceException: Can't find bundle for base name test, locale ja_JP
at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:839)
at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:808)
at java.util.ResourceBundle.getBundle(ResourceBundle.java:552)
at Test.<clinit>(Test.java:8)
... 1 more
0079デフォルトの名無しさん
05/01/31 07:25:000080デフォルトの名無しさん
05/01/31 07:35:58Javaに移植したいのですが、どのクラスを使えばいいのか見当も付きません。
何を使えばいいのでしょうか?
0081デフォルトの名無しさん
05/01/31 07:51:230082デフォルトの名無しさん
05/01/31 07:57:000083デフォルトの名無しさん
05/01/31 07:59:23クラスは implements できないが、インタフェースだとして、
if(a instanceof B) { 〜
0084デフォルトの名無しさん
05/01/31 07:59:55あるクラスオブジェクトが、特定のインタフェースを実装しているかどうかで、処理を分岐させたいところがございまして・・・
0085デフォルトの名無しさん
05/01/31 08:01:38あ、クラスではなく「インタフェース」ですね^^;
なるほど、instanceof ですか。ありがとうございます。謝謝
0086デフォルトの名無しさん
05/01/31 08:35:45リソースバンドルに指定した名前が見つからないと言っている。
xxx.properties というファイルが必要なのだが、それが無いのか
置く場所が間違っているか。
0087デフォルトの名無しさん
05/01/31 08:35:57linuxサーバにjdk1.5.0_01と言うのをダウンロードしてインストールしたんですけど、
これ以前に入っていたのはj2sdk1.4.1_05でした。
jdkとj2sdkと言うのは意味合い・機能的に違ってくるのでしょうか?
0088デフォルトの名無しさん
05/01/31 08:37:590089デフォルトの名無しさん
05/01/31 09:01:35つか、意味的には同じもの。
0090デフォルトの名無しさん
05/01/31 16:16:20親Frameのボタンで、JInternalFrameにJPanelを貼り付けて表示させている図を再描画して、
JInternalFrameを更新したいのですが、図の再描画は出来ているのに、JInternalFrameの更新が
上手くいきません。
どのようにしたらフレームの更新が上手くいくのでしょうか?
0091デフォルトの名無しさん
05/01/31 16:21:570092デフォルトの名無しさん
05/01/31 16:27:18現状では、更新される前の図がJInernalFrameに表示されたままで、最小化などのアクションをすると
描画が更新されるという状態です。
0093初心者59
05/01/31 16:36:28ありがとうございます。助かりました。
解決しましo(^o^)o
勉強をこれからも頑張ります(^ー')b
0094デフォルトの名無しさん
05/01/31 17:15:44for(i = 0; i < 5; i++){
Keys = Keys+i;
Elems = 0x41+i;
htTestHash.put( Keys , Elems );
}
このようなハッシュテーブルを作成し、ハッシュのキーを
enTest = hoge.htTestHash.keys();
で取り出したとき、enTestの中の並びは必ず
4,3,2,1,0
となるのでしょうか?
0,1,2,3,4
となることを期待していたのですが、上のような結果になってしまったので
調べてみるとキーのリストを返すとは書いてあっても
ハッシュに入れた順番どおりに返すとは何処にも書かれていませんでした。
ですから、4,3,2,1,0という結果もたまたまなのかもしれません。
ハッシュの使い方として配列のように扱う事がそもそも間違っているのかもしれませんが
ハッシュの仕様が気になったのでお分かりになる人がいましたら
お答えしていただけると幸いです。
0095デフォルトの名無しさん
05/01/31 17:28:05ActiveX COMサービス(WindowsのDLLが呼び出せるならOK)の
「JNAKALab.DLL」はロードされているようなのですが、
jnaka.JInit(sid)やjnaka.JSetUIProperties()のところで
java.lang.UnsatisfiedLinkError: JIni;
java.lang.UnsatisfiedLinkError: JVSetUIProperties;
のエラーがでてしまいます、ECLIPSEでJNIの設定がなにかあるのでしょうか、
それともメッソドの呼び出しがおかしいのでしょうか。
DLLの場所は環境変数で設定しておきました。
Long JInit(String 型 sid);Long JSetUIProperties();
DLLの説明にあった上記のメッソドにアクセスしたいのです。
public class JNaka {
public native long JInit(String sid);
public native long JSetUIProperties();
static {
System.loadLibrary("JNAKALab");
}
}
public class OBar extends JFrame {
public JNaka jnaka = new JNaka();
protected String sid = "UNKNOWN";
protected long ReturnCode;
private void setInit() {
ReturnCode = jnaka.JSetUIProperties();
ReturnCode = jnaka.JInit(sid);
}
}
0096デフォルトの名無しさん
05/01/31 17:44:58HashtableやHashMapは格納順序がまったく保証されない。
> ですから、4,3,2,1,0という結果もたまたまなのかもしれません。
そのとおり。たまたまと思っていた方が幸せ。
0097デフォルトの名無しさん
05/01/31 18:36:37どっかでrepaint()呼んでみてはどうですか?
0098デフォルトの名無しさん
05/01/31 18:55:24jvmstat3.0( http://java.sun.com/performance/jvmstat/ )
はj2sdk1.4.2系で動作しないのでしょうか?
つたない英語能力でDocsを読んでみると、j2sdk1.5系のみ対応っぽく、
j2sdk1.4.2系には触れられていないようです。
さらに対応しているであろうjvmstat2.0については
ダウンロードリンクを探し出せない始末・・
どなたかご教授ください・・
0099デフォルトの名無しさん
05/01/31 18:58:01現状で、ボタンのメソッドの中でrepaint()を呼んでいるのですが上手くいきません。
他に何か原因は考えられるでしょうか?
0100デフォルトの名無しさん
05/01/31 19:12:235. Does jvmstat support J2SE 5.0?
Yes, now jvmstat 3.0 can monitor J2SE 5.0, J2SE 1.4.2 and J2SE 1.4.1 virtual machines
(effectively replacing and superseding all previous versions of jvmstat).
0101デフォルトの名無しさん
05/01/31 19:16:54私も読んでみましたが、jvmstatの動作に1.5が必要、というだけで、
1.5のJVMしかモニターできないわけではないようです。
FAQにも
"jvmstat 3.0 can monitor J2SE 5.0, J2SE 1.4.2 and J2SE 1.4.1 virtual machines
(effectively replacing and superseding all previous versions of jvmstat)."
とありますので。
1.5のJ2SE入れてjvmstatだけで使うようにし、ビルドや実行等は
1.4系のJ2SE使うようにすれば何とかなりませんか?
0102デフォルトの名無しさん
05/01/31 19:26:45ちなみにTreeMapはkeyの昇順、LinkedHashMapは、putした順にIteratorでとれる。
0104デフォルトの名無しさん
05/01/31 19:48:38javawの方が2byteほど大きいのですが
0105デフォルトの名無しさん
05/01/31 19:50:33jre1.5.0_01です
0106デフォルトの名無しさん
05/01/31 19:52:16javawはコンソールが立ち上がらない
0107初心者 ◆Java/isQ.c
05/01/31 19:56:28|д・)つ ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/tooldocs/windows/java.html
> javaw コマンドは、コンソールウィンドウがない以外は、java コマンドと同じです。
> javaw は、コマンドプロンプトウィンドウを表示する必要がないときに使用します。
0108デフォルトの名無しさん
05/01/31 20:06:57ありがとうございます
jreを同梱しようと思ってて迷っていたので助かりました
sunのDocument見損ねてたよ o......rz
0109デフォルトの名無しさん
05/01/31 20:16:39何かよい方法はないでしょうか?
0110デフォルトの名無しさん
05/01/31 20:16:57パターン塗りつぶしで困っています。
現在は 8x8 画像で TexturePaint を使っています。
1) Acrobat を持っているので PDF に出力してるのですが、やたらと時間がかかります。
2) Graphics2D から EPS に出力するライブラリを見つけてきましたが、
塗りつぶしは真っ黒になってしまいます。
3) できれば PowerPoint ファイルを出力したいんですが、フリーのものが見つかりません。
一色塗りつぶしにしてEPS に出力してから、図として挿入し、グループ解除して、
VBA マクロでパターンをかえてやってもいいのですが、100枚は大変。
4) POI ではグラフが作れません。タイトルも替えたいので、
テンプレートとなるファイルにグラフを作っておいて参照セルの値を変える……だけではいけません。
5) SVG は、作るはいいけど連続して印刷する方法(もしくは他形式への変換方法)が乏しい(探索中)
というわけで塗りつぶしのほかの方法があればよいのですが。誰かお知恵を拝借できませんでしょうか。
0111デフォルトの名無しさん
05/01/31 20:33:15jre再配布の条件を守る気はないのですね
011298
05/01/31 20:43:35>>101
動作することを確認できました。
動作方法を簡単に報告しますと、j2sdk1.4系にjvmstat3.0を使用するには、
1."j2sdk1.5"をインストール
2."j2sdk1.4"のVMの起動オプションに"-XX:+UsePerfData"を付与。
の2つが必要でした。
アドバイスありがとうございました。
0113デフォルトの名無しさん
05/01/31 20:51:02「直列化」って何ですか?
0114初心者 ◆Java/isQ.c
05/01/31 21:01:11|д・)つ ttp://www.asahi-net.or.jp/~ge3m-hsmt/mPages/jap/fileIO.html
> 直列化とは、簡単に言えばオブジェクトを出力ストリームに書き込むこと
0115デフォルトの名無しさん
05/01/31 21:04:43シリアライズだ
とこれだけではあんまりか。
クラスのインスタンスの持つデータの保存だと思っておけばいいよ。厳密にはちょっと違うが
0116初心者 ◆Java/isQ.c
05/01/31 21:05:47|д・)つ ttp://e-words.jp/w/E382B7E383AAE382A2E383A9E382A4E382BA.html
0117デフォルトの名無しさん
05/01/31 21:52:56EJBのローカル参照でエラーが出て困っています。
(weblogic serverの管理コンソールでJNDIのテストをするとJNDI名が間違っていると言われます)
設定ファイルは以下の通りです。(関係なさそうな部分は消しています)
何が悪いのでしょうか。
*** ejb-jar.xml ***
<ejb-name>ABC</ejb-name>
<local-home>org.yahoo.ABCLocalHome</local-home>
<local>org.yahoo.ABCLocal</local>
<ejb-class>org.yahoo.ABCBean</ejb-class>
*** weblogic-ejb-jar.xml ***
<ejb-name>ABC</ejb-name>
<enable-call-by-reference>True</enable-call-by-reference>
<local-jndi-name>ejb/ABCLocalEJB</local-jndi-name>
0118デフォルトの名無しさん
05/01/31 21:57:53身内(?)だけの配布ですから
もしフリーソフトで出すのであれば同梱しませんよ
0119113
05/01/31 22:03:57なるほど、なんとなくわかりました。
クラスのインスタンスのフィールドやら状態やらを0と1の簡単なならびにすると言うことですね。
それでもってこの動作は入出力のときに威力を発揮すると。
0120デフォルトの名無しさん
05/01/31 22:13:57身内だけでも厳密には再配布の条件に違反していることになると思いますよ
0121デフォルトの名無しさん
05/01/31 22:27:18JREの再配布条件には配布範囲に応じて分類されてるしそれ読まなきゃ
意味ないよね。つーか再配布するななんて誰もいってないのに
なんでそんなひねくれてるんだろ。再配布するときはSunの示す
条件を満たすようにしてくださいってだけなのに。
0122デフォルトの名無しさん
05/01/31 22:31:37WMF(ウィンドウズメタファイル)をラスター画像(GIF/JPEG/BMPなど)に、java
でコンバートする方法を、探しています。難しいことなのでしょうか?
0123デフォルトの名無しさん
05/01/31 22:45:190124デフォルトの名無しさん
05/01/31 22:53:20別にひねくれてる訳じゃないですけどそう考えられる発言したことはに関しては
非常に申し訳なく思っております
それからJREの全てのfileを同梱するようにします。
>>ALL
スレ汚しまことに申し訳ございません
0125デフォルトの名無しさん
05/01/31 22:56:02難しいですよね。
0126デフォルトの名無しさん
05/01/31 23:34:03Java Advanced Imaging (JAI) API
http://java.sun.com/products/java-media/jai/
0127デフォルトの名無しさん
05/01/31 23:41:13によるデータソースの取得が出来なくなってしまいました。
InitialContext.lookup("java:comp/env/jdbc/mysql")をしても
DataSouceがヌルなBasicDataSourceインスタンスが返ってきてしまうのです。
一応、server.xmlに読ませるContextタグ内には
<Resource name="jdbc/mysql" type="javax.sql.DataSource" auth="Container" />
<ResourceParams name="jdbc/mysql">
<parameter>
<name> factory </name>
<value> org.apache.commons.dbcp.BasicDataSourceFactory </value>
</parameter>
(以下略)
とし
web.xml内にも
<resource-ref>
<res-ref-name> jdbc/mysql </res-ref-name>
<res-type> javax.sql.DataSource </res-type>
<res-auth> Container </res-auth>
</resource-ref>
とし
mysqlコネクタ、commons.Dbcp、commons.Collection、commons.Pool
のjarファイルも、Tomcatホームの/commons/libにコピーしてます。
しかし、空のdbcp.BasicDataSourceが返ってきてしまうのです。
どうすれば正確に取得できるのでしょうか? 教えてください。
0128デフォルトの名無しさん
05/01/31 23:41:43書き込みありがとうございます。
Java Advanced Imaging (JAI) APIを調べてみたところ、画像形式はgif、jpeg
、png、bmpなどをサポートしており、wmfに関する記述はありませんでした。
wmfはもう先がないということで見捨てられたのでしょうか・・・
0129デフォルトの名無しさん
05/02/01 00:22:120130デフォルトの名無しさん
05/02/01 00:36:050131デフォルトの名無しさん
05/02/01 01:09:210132デフォルトの名無しさん
05/02/01 01:10:370133デフォルトの名無しさん
05/02/01 01:11:17引数をnullにする場合とコンポーネント(JFrame)を指定する場合の違いは何でしょうか?
0134デフォルトの名無しさん
05/02/01 01:12:410135デフォルトの名無しさん
05/02/01 01:13:540136デフォルトの名無しさん
05/02/01 01:20:00コレクションではないが、
TreeNode / MutableTreeNode / TreeModel
0137デフォルトの名無しさん
05/02/01 01:20:05できるはず。
作ってて分からんことがあれば
CLDC+MIDP+携帯電話用Javaスレッド part 3
http://pc5.2ch.net/test/read.cgi/tech/1091798483/
も参照あれ。
0138デフォルトの名無しさん
05/02/01 01:20:190139デフォルトの名無しさん
05/02/01 01:21:27クラスではないが、
Composite パターン
0140デフォルトの名無しさん
05/02/01 01:22:37nullだと画面の真ん中、親を指定するとその親の真ん中に表示されるんじゃなかったっけ。
0141デフォルトの名無しさん
05/02/01 01:33:360142デフォルトの名無しさん
05/02/01 06:44:38javax.naming.CompositeName
0143デフォルトの名無しさん
05/02/01 07:56:102台以上のマシン間で配列を送・受信するプログラムを作りまして、正常な動作を確認したのですが、数回実行させると正常に動かなくなってしまいました。
実行させるマシンを変えると、また数回正常に実行できたのですが、ある時突然に異常(配列の要素がが全て0になっている様子)になってしまってそれ以後正常に実行できなくなってしまいました。
他の数台のマシンで実行してみても初めの数回だけ正常に動いた後、異常が起きたら2度と正常に動作しないことがわかりました。
配列の計算をしているアルゴリズムは乱数を使っているわけでもないので、
実行のたびに結果が変わる事は無く、この異常は通信のどこかが原因だと考えています。
私が考えられるのはここまでで、こちらの板に助けを求めてまいりました。
このような現象が起こりそうな要因をご教授ください。
送信は以下のようにしています。
Socket Csocket = new Socket(hostName,25555);
DataOutputStream dos = new DataOutputStream(Csocket.getOutputStream());
for (int i = 0; i <100000; i++)
dos.writeFloat(W[i]);
dos.close();
Csocket.close();
受信側は以下のとおりです。
ServerSocket serverSocket = new ServerSocket(this.clientPort);
Socket socket = serverSocket.accept();
DataInputStream dis = new DataInputStream(socket.getInputStream());
for (int i = 0; i < 100000; i++)
W[i]=dis.readFloat();
dis.close();
socket.close();
serverSocket.close();
0144デフォルトの名無しさん
05/02/01 09:22:11デスクトップパスを取得する方法を教えてください。
0145デフォルトの名無しさん
05/02/01 10:16:36Documents and Settingsの下を良く探せ
0146デフォルトの名無しさん
05/02/01 11:02:34のほうがよくないか
0147デフォルトの名無しさん
05/02/01 12:40:54相対位置の指定だけでなく、モーダルの制御にも使われたと思う。
JFileChooserに限らず、JDialogなんかでも、モーダルのダイアログを
出すときに、親のウインドウを教えずにnullで開くと、親ウィンドウの裏に
モーダルダイアログが表示されて困ったことになった気が。
・モーダルのダイアログを表示する(引数nullで)
・ダイアログが表示された状態で、タスクバーなどで別のウィンドウに切り替える
・同じようにタスクバーで元のウインドウを選ぶ
・親ダイアログが前面に表示されるが、モーダルなので操作できない
ALT+TABでウィンドウを切り替えると前に出てくる
試して報告してくれ。
0148デフォルトの名無しさん
05/02/01 12:55:35二度と正常に動作しないってのは、プログラム途中で何らかの例外が
発生して、ServerSocketインスタンスがclose()されないまま
プログラムが終了してる為だと思われます。
そうなると、そのポートでは二度とバインドできずに、ServerSocketが
スタートできません。
0149デフォルトの名無しさん
05/02/01 17:35:09猿でも分かるように詳しく教えてください。
0150149
05/02/01 17:49:240151デフォルトの名無しさん
05/02/01 19:11:35try{
// ここに処理を記述
}catch(Exception e){e.printStackTrace();}
と書けば発生したエラーの詳細が表示されるので原因解明の一助になるのでは?
0152143
05/02/01 19:36:25>>151
レスありがとうございます。
>>151さんの言われる通り、e.printStackTrace();で何が起きてるか見てみたのですが、全くエラーは出ていないのです。
それでは>>148さんのご指摘のインスタンスがcloseされていない、というのは起こらないはずだよなあ、と思っているところです。
そういえば、Ctrl+Cで強制終了した事が多々あるような。この場合、Javaはcloseしてくれてないのでしょうか。
0153デフォルトの名無しさん
05/02/01 19:40:53配列の要素が0になるのはどの時点?
0155151
05/02/01 19:49:18初期化ルーチンを呼び出しちゃってるとしか思えないなぁ。。。
W[i] が必ず 0 じゃないというのが保証されているのであれば、
送受信時に 0 になるのを監視して W[i] を全て表示してみれば
何が起こってるのかが解るかも。
0156デフォルトの名無しさん
05/02/01 19:51:030157デフォルトの名無しさん
05/02/01 20:42:23起動直後からボタンを表示させるようにするにはどうすればよいでしょうか?
//<applet code="JAppletTest.class" width="200" height="200"></applet>
import java.awt.*;
import javax.swing.*;
public class JAppletTest extends JApplet {
Container contentPane = getContentPane();
Image img;
public void init() {
contentPane.setLayout(new FlowLayout());
try{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}catch(Exception e){
e.printStackTrace();
}
contentPane.add(new JButton("ボタン"));
Dimension d = contentPane.getSize();
img = createImage(d.width, d.height);
}
public void paint(Graphics g){
g.drawImage(img, 0, 0, this);
}
}
0158part 1
05/02/01 21:00:29下記のようなswingで作った簡易も簡易なメモ帳をつくりました。
問題は、「ctrl a」で行の先頭にカーソルが移動させたいのですが????の部分になにかいたら
よいかわかりません。行の先頭のポイントとかはどこかの変数に保存されてるのでしょうか・・。
あとできればカーソル自体も点滅させずに、直線ではなく色付き長方形にしたのですが。。
すみません、欲張りで。誰か教えてください・・。
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.border.*;
import javax.swing.text.*;
import java.io.*;
public class MyEditor extends JFrame{
Container myContainer;
JTextPane myTextPane;
public static void main(String[] args){
MyEditor myApp = new MyEditor( "( New File )" );
myApp.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myApp.setVisible(true);
}
0159part 2
05/02/01 21:02:31super( title );
setBounds( 10, 10, 800, 500 );
myContainer = this.getContentPane();
myContainer.setLayout(new BorderLayout());
myTextPane = new JTextPane();
InputMap inputMap = myTextPane.getInputMap( JComponent.WHEN_IN_FOCUSED_WINDOW );
ActionMap actionMap = myTextPane.getActionMap();
KeyStroke moveLineStartKey = KeyStroke.getKeyStroke( "ctrl A" );
inputMap.put( cutKey, moveLineStartAction );
actionMap.put( moveLineStartAction, moveLineStartAction );
}
class MoveLineStartAction extends AbstractAction{
MoveLineStartAction( String text ){ super(text); }
public void actionPerformed( ActionEvent e ){
????
}
}
}
0160デフォルトの名無しさん
05/02/01 21:27:32お願いですからすべて選択にしてください。
て言うか何系の発想よ?
0161デフォルトの名無しさん
05/02/01 21:32:53あ、EmacsというEditorを過去に使っていて、(EclipseでもEmacs風のKeybindにしています)
それが Ctrl-aが「行頭へ移動」でしたので。
別にCtrl-aでなくても、全然違うキーでもいいのですが・・
0162デフォルトの名無しさん
05/02/01 21:35:240163デフォルトの名無しさん
05/02/01 21:37:20すまそviの人だから知りませんでした。
0164デフォルトの名無しさん
05/02/01 21:37:240165デフォルトの名無しさん
05/02/01 22:14:54情報ありがとうございます。
http://java.sun.com/j2se/1.3/ja/docs/ja/api/javax/swing/text/Caret.html#moveDot(int)
このあたりから察するに、
「行頭まで移動」 は
「改行にマッチするまでmoveDot(-1)を繰り返す」
というのでよさそうなんですが、初心者だけあってクラスとか継承とかがよく分かって
おらず、(多重継承はできないということだけは知っています)どういう記述をしたら動
くようになるかわからないんです・・。
0167デフォルトの名無しさん
05/02/01 22:59:06DOS窓を表示しないようにできますか?
javawでやればDOS窓閉じても問題ないぽいけど、
勝手にDOS窓が閉じるような技ってないんですかね
0168デフォルトの名無しさん
05/02/01 23:03:00startってのは?
0169デフォルトの名無しさん
05/02/01 23:10:09やってみたんですが、引数を読んでくれずクラスパスが通らんかったです。。
なんでだろ
0170デフォルトの名無しさん
05/02/01 23:14:46そんなことはないぞ
そのバッチの中身かいてみろ
0171デフォルトの名無しさん
05/02/01 23:21:31どうしたらよいでしょうか(OS は Windows2000 です)。
0172デフォルトの名無しさん
05/02/01 23:31:40今環境ないんで忘れたけど、確かこんな感じ
start javaw -cp lib\hoge.jar
で、-cpっていうファイルはありません、みたいなエラーだった希ガス
0173デフォルトの名無しさん
05/02/01 23:46:170174デフォルトの名無しさん
05/02/01 23:47:11問題なく動くぞ
0175デフォルトの名無しさん
05/02/01 23:47:57それは動かない
0176Java暦1ヶ月
05/02/02 00:06:39例えば
[ login.jsp ] ・・・まず、このページでログインIDを入力する。
<html>
<head></head>
<body>
<form name=aa action = signup.jsp method=post>
ログインID<input type=text name=id><br>
</form>
</body>
</html>
[ signup.jsp ]・・・このページでMySQLからデータを取り出し照合。
・
<略>
・
String id = request.getParameter("id");
<略>
ResultSet result = state.executeQuery("select * from table_1
where id=\"" + id + "\"");
↑ ↑
| が入力されたログインIDが入っています。
がMySQL上に登録したカラムです。
Q1)なぜここで // 略 // where id = id");
としてはダメなのでしょうか?
Q2)私の購入した入門書にはここでの¥の用法が全く記されておりません。
どういう事なのでしょうか?
誰か教えて下さい。お願いします。
0177Java暦1ヶ月
05/02/02 00:09:00ResultSet result = state.executeQuery("select * from table_1
where id=\"" + id + "\"");
↑ ↑
| が入力されたログインIDが入っています。
がMySQL上に登録したカラムです。
Q1)なぜここで // 略 // where id = id");
としてはダメなのでしょうか?
Q2)私の購入した入門書にはここでの¥の用法が全く記されておりません。
どういう事なのでしょうか?誰か教えて下さい。お願い致します。
0178デフォルトの名無しさん
05/02/02 00:12:38where id = id
これじゃただ
where id = idって文字列表示するだけになるじゃん…
\はエスケープシーケンス
今回の場合は
" "でくくってある文字列の中で"という文字を入れたくとも
入れたらそれが文字列の終端だと判断されてしまうので
それを回避するために\"と表現し区別させる
0179デフォルトの名無しさん
05/02/02 00:56:50SQLでは
select * from table_1 where id=id
ではだめで、これだとtable_1の列idをそれ自身と比較して同じ列
(つまりnull以外の全て)を抽出するSQLになります。この場合は、
select * from table_1 where id="id"
と書きたいわけです。こうすると、列idの値が"id"である列を抽出する
SQLになります。
これをJavaの文字列で書こうとすると、
文字列リテラルの開始と終端を表す文字「"」で前後を囲って
"select * from table_1 where id="id""
とすればいいと思うかもしれませんが、この場合文字列中の"が
文字列の終端と認識されてしまい正しくコンパイルしてもらえません。
こういう場合は、"ではなく\"と書きます。つまり、
"select * from table_1 where id=\"id\""
です。または、後の説明のために分けて書くとこうなります。
"select * from table_1 where id=\"" + "id" + "\""
文字列リテラルの中では「\"」で1文字として扱うことに注意して下さい。
ただ、これだとidの値は"id"で固定になります。ここで変数の値を参照させたい場合は
"id"を変数で置き換えて以下のように書きます。
"select * from table_1 where id=\"" + id + "\""
SQLの列名、SQLの文字列、Javaの文字列、Javaの変数名の4種類で同じシンボルidが
出てきますが、混同しないよう気をつけて下さい。
ところで、こんな説明もないその糞入門書のタイトルは何ですか?
今後の被害者を増やさないためにも、是非さらして下さい。
0180デフォルトの名無しさん
05/02/02 01:19:27ダブルクォートでもオッケーなん?
0181デフォルトの名無しさん
05/02/02 01:31:070182デフォルトの名無しさん
05/02/02 01:38:59interfaceもオーバーライドを強制しますよね?
役割がかぶっているような気がしてなりません
目的を教えて
0183Java暦1ヶ月
05/02/02 01:41:31解決しました。ありがとう御座います。
本の名前は、
EclipseではじめるJavaプログラミング入門
です。教えて頂いて大変恐縮なのですが、リテラルについての
説明ページにホンの少し載ってました(-_-#)すみません。
細やかな解説本当にありがとうございましたo(^o^)o
0184デフォルトの名無しさん
05/02/02 01:47:31interface ほんっとうにガワだけ共通化したい場合
abstract class 部分的に違う動作をするものをいろいろ作りたい場合
……いかがでしょう識者の皆様。
0185デフォルトの名無しさん
05/02/02 01:50:43アホか
0186デフォルトの名無しさん
05/02/02 01:51:19interfaceはそれができない代わりに多重継承が可能。
例えばtemplate patternやるならabstract classだろうなあ。
0187デフォルトの名無しさん
05/02/02 01:53:38脳内彼女がイケメンにでも食われたのか?
0188デフォルトの名無しさん
05/02/02 02:02:40スルーです。放置プレイ。
0189177
05/02/02 02:10:37すみません。ふと疑問に思ったのですが、
例えばDOS窓上でMySQLコマンドを入力したい場合。
select * from table_1 where id="id"
ですよね。これをJavaのソース上で再現しようとする場合には
エスケープシーケンスでは ダブルクォーテーションは ¥”
なのですよね?そうしますと // 略 // id = \" + id + \"");
で良いと思うのですがなぜダメなのでしょうか?
0190デフォルトの名無しさん
05/02/02 02:15:18プラットフォーム毎(Javaで?)のロジックの差異を変更するばっかに備えたクラスを作る感じ?
ある程度機能は共通しているが、部分的に個別に書く必要がある場合もある
そんなときに使うのがabstractということでいいのかな?
0191デフォルトの名無しさん
05/02/02 02:53:55その場合、MySQLに対して以下のSQL文が実行されます。
select * from table_1 where id="+id+"
これが間違っているというのは分かりますよね?
この辺は繰り返し試してその結果を確認した方が理解が早いです。
Statement#executeQuery()を実行する前に、引数に指定した文字列がどうなっているか、
System.out.println()を使って確認するといいでしょう。
Eclipse使っているのでしたら、デバッグ・パースペクティブに切り替えて
デバッグモードで実行し、変数ビューの内容を見るのもいいかもしれません。
0192デフォルトの名無しさん
05/02/02 07:17:19ArrayList型ALが存在してるとします。
ClassA[] clA = (ClassA[]) AL.toArray();
でClassCastErrorが出るんですが、使い方間違っていますか?
0193デフォルトの名無しさん
05/02/02 07:39:230194デフォルトの名無しさん
05/02/02 07:46:180195デフォルトの名無しさん
05/02/02 07:56:31ClassA[] clA = (ClassA[]) AL.toArray(new ClassA[AL.length]);
0196デフォルトの名無しさん
05/02/02 07:58:43Class[]←Object[] ではないから。
0197194
05/02/02 08:20:16primitive型のときと同じことするんですね。
0199デフォルトの名無しさん
05/02/02 08:25:44配列はprimitive型じゃないから同じなんだよ
0200デフォルトの名無しさん
05/02/02 09:07:520201デフォルトの名無しさん
05/02/02 10:12:58正しくは0以上なら何でもいい。
ただし、大きな数字を与えすぎるとOutOfMemoryError食らうかも。
0202デフォルトの名無しさん
05/02/02 10:33:17>配列のサイズは0でいい
と書かれると、List#size()を指定することが余計なように聞こえるんだけど、
別に「List#size()で指定する」よりも、「0で指定するほうが良い」というわけではないと思うんだけど。
今回のケースだと、List#size()を指定したほうが余計なインスタンスが生成されないと思う。
List#size()を指定する方は、自分でサイズ指定して作った配列に格納されて返ってくる。
0個の配列を作った場合は、型の判別だけに使用され、
toArrayの内部で(前者と同じように)Listの要素数に等しい配列が生成されるわけだ。
となると、0個の配列をnewしたことが無駄なインスタンス生成になるのではないでしょうか?
サイズを0で指定するんだったら、型指定のための定数として使うべき。
ClassA[] clA = (ClassA[]) AL.toArray(new ClassA[0]);
ClassA[] clB = (ClassA[]) AL.toArray(new ClassA[0]);
ClassA[] clC = (ClassA[]) AL.toArray(new ClassA[0]);
↓
private static final ClassA[] NULL_CLASSA_ARRAY = new ClassA[0];
ClassA[] clA = (ClassA[]) AL.toArray(NULL_CLASSA_ARRAY);
ClassA[] clB = (ClassA[]) AL.toArray(NULL_CLASSA_ARRAY);
ClassA[] clC = (ClassA[]) AL.toArray(NULL_CLASSA_ARRAY);
「サイズ0の配列を渡せばよい」というと、ソース上のあっちこっちで
new HogeHoge[0]というのが記述されることになっちゃわないかと心配。
どうせ0個の配列を生成するコストなんてたいしたことないのかな?
要素数0の配列で指定した場合の利点ってなんなんでしょうか?
0203デフォルトの名無しさん
05/02/02 10:34:51大きな数字を与えて、OutOfMemoryError食らうときに、
小さな数字を与えたら、OutOfMemoryErrorにならないの?
0204デフォルトの名無しさん
05/02/02 10:36:01キー叩く回数が減るだけだと思われ。
0205デフォルトの名無しさん
05/02/02 10:45:52>小さな数字を与えたら
OutOfMemoryErrorは
「メモリ不足エラー」だから
0206デフォルトの名無しさん
05/02/02 11:50:03キー叩く回数はむしろ増えてる
0207デフォルトの名無しさん
05/02/02 12:11:30キー叩く回数ってのは new ClassA[AL.size()] と new ClassA[0] の比較ね。
NULL_CLASSA_ARRAYだと ClassA[] NULL_CLASSA_ARRAY = null; を想像してしまう。
0208202
05/02/02 12:21:55おれもnullっぽいと思ったけど、
そのコードはEffective Javaを参考に書いた。
じゃあ、別にList#size()で指定している奴にたいして、
「おいおい、そりゃ0にしたほうがよいよ」って書き直せることではないってことだな。
0209デフォルトの名無しさん
05/02/02 13:24:29a1.jsp [ユーザにIDを入力して貰う。 uid = hoge]
a2.jsp [入力内容確認画面:登録ボタンを押し、a3.jspで登録処理を行なう]
a3.jsp [このjsp内部でDBへの登録を行なう。]
a3.jsp中での登録処理を実行する際に、a1.jspの中で使用している変数を
使用する際にはどうすれば良いでしょうか?同一パッケージ( プロジェクト)
にa1〜a3は、入っています。a1.jsp.uid と指定するのは誤りでしょうか?
0210bus
05/02/02 13:36:30教えてください
0211デフォルトの名無しさん
05/02/02 13:37:55cahr…
0212デフォルトの名無しさん
05/02/02 13:38:58APIドキュメント見れば、そのものずばりの機能が書いてある。
0213デフォルトの名無しさん
05/02/02 13:39:05そう言う場合のためにsessionスコープ変数(sessionコンテキスト変数とかsession属性変数とも呼ばれる)がある
0214デフォルトの名無しさん
05/02/02 13:41:240215デフォルトの名無しさん
05/02/02 13:41:38a1.jspで
application.setAttribute("uid", hoge);
として
a3.jspで
String uid = application.getAttribute("uid")
とする。
applicationは、sessionの方がよいですが・・・
0216デフォルトの名無しさん
05/02/02 13:42:22a1.jspで
application.setAttribute("uid", hoge);
として
a3.jspで
String uid = (String) application.getAttribute("uid")
とする。
applicationは、sessionの方がよいですが・・・
0217デフォルトの名無しさん
05/02/02 16:28:11String[] s = { "aaa", "bbb", "ccc" };
を、
char[][] cc = { { 'a', 'a', 'a' }, { 'b', 'b', 'b' }, { 'c', 'c', 'c' } };
と等価に変換したいという意味か?
といじめてみる。
0219デフォルトの名無しさん
05/02/02 17:53:33コード変換(SJIS→UTF8)したのですが、どうすればいいのでしょうか?
Cみたいにiconv.h相当するものや命令があれば教えてください。
0220デフォルトの名無しさん
05/02/02 17:59:42変換したなら好きなようにすればいいじゃない
0221219
05/02/02 18:35:26って普通気づくだろ…
×: コード変換(SJIS→UTF8)したのですが
○: コード変換(SJIS→UTF8)したいのですが
0222デフォルトの名無しさん
05/02/02 18:42:170223デフォルトの名無しさん
05/02/02 18:59:55byte[] sjis = { 省略 };
String s = new String(sjis, "Shift_JIS");
byte[] utf8 = s.getBytes("UTF-8");
Shift_JISよりWindows-31Jの方がいいかもね。
0224デフォルトの名無しさん
05/02/02 20:15:11ちとワロタw
0225デフォルトの名無しさん
05/02/02 20:16:430226デフォルトの名無しさん
05/02/02 22:06:0934,54.87,45,65,75,98,71,68,82
以上の数字をWhileを使わずに、昇順で並び替えるというものですが、よろしくお願いします
0227デフォルトの名無しさん
05/02/02 22:07:30forを使うのじゃ
0228デフォルトの名無しさん
05/02/02 22:10:340229デフォルトの名無しさん
05/02/02 22:11:310230デフォルトの名無しさん
05/02/02 22:13:25今参考書を見てるのですが、十個の数値は条件のところに入れるのでしょうか?
0231デフォルトの名無しさん
05/02/02 22:14:25HP(これもCDROMの中にある)上にあるボタンをクリックすると
全ての画像の中から条件にあう画像を選んで
HP上に表示する、
というようなプログラムをつくりたいんですが、
どこか参考になるサイトやスレってありますか!?
0232デフォルトの名無しさん
05/02/02 22:17:29int型のtest配列を100個用意して、
34ならtest[34]=1
みたいにしたらソートされるんじゃない?
0233デフォルトの名無しさん
05/02/02 22:20:530234デフォルトの名無しさん
05/02/02 22:23:20testという変数名のint型の配列だと思う
まぁ、最後にループを使うことになりそうだが
0235デフォルトの名無しさん
05/02/02 22:25:53int test[] = {34,54.87,45,65,75,98,71,68,82}
for(int i = 0; i < test.length; i++){
何らかの処理
}
0236デフォルトの名無しさん
05/02/02 22:31:300237デフォルトの名無しさん
05/02/02 22:32:01結局何がしたかったんだ?
0238デフォルトの名無しさん
05/02/02 22:35:300239デフォルトの名無しさん
05/02/02 23:01:112文字目以降
0240デフォルトの名無しさん
05/02/02 23:05:10まー、サロゲートペアなんていうものもあるが。
0241デフォルトの名無しさん
05/02/02 23:10:55よくわからんかったんで、仕方なくmanifestでクラスパス通しました
ありがとござました
0242質問です
05/02/02 23:35:41おそらくファイルは読めるのですが、計算しようとすればエラーらしくNaNとでました。次にプログラムをはります。
0243その1
05/02/02 23:40:09import java.awt.event.*;
import java.io.*;
class FrameForm extends Frame implements ActionListener{
int data_num=0;
double[] data = new double[100];
String line = null;
String data_list = "";
Label label1 = new Label("Average");
Label label2 = new Label("Varience");
Label label3 = new Label("Standard Deviation");
Label label4 = new Label("Set Data");
TextField text1 = new TextField("");
TextField text2 = new TextField("");
TextField text3 = new TextField("");
TextArea texta1 = new TextArea(3,10);
Button button1 = new Button("Load Data");
Button button2 = new Button("Calculate");
Panel pan1 = new Panel();
Panel pan2 = new Panel();
Panel pan3 = new Panel();
FileReader fr;
BufferedReader br;
0244その2
05/02/02 23:41:41setSize(300,300);
setLayout(new BorderLayout());
add(pan1,BorderLayout.SOUTH);
add(pan2,BorderLayout.CENTER);
add(pan3,BorderLayout.NORTH);
pan1.setLayout(new FlowLayout(FlowLayout.RIGHT));
pan1.add(button1);
pan1.add(button2);
pan2.setLayout(new GridLayout(6,1));
pan2.add(label1);
pan2.add(text1);
pan2.add(label2);
pan2.add(text2);
pan2.add(label3);
pan2.add(text3);
pan3.setLayout(new BorderLayout());
pan3.add(label4,BorderLayout.NORTH);
pan3.add(texta1,BorderLayout.CENTER);
button1.setActionCommand("load");
button1.addActionListener(this);
button2.setActionCommand("calc");
button2.addActionListener(this);
}
0245その3
05/02/02 23:44:28if(e.getActionCommand()=="load"){
try{
fr = new FileReader("./test.txt");
br = new BufferedReader(fr);
}catch(FileNotFoundException e2){
texta1.setText("Data file not found.");
return;
}
try{
while((line = br.readLine()) != null){
data[data_num] = Double.parseDouble(line);
data_num++;
}
}catch(IOException e3){
System.out.println(e3);
}
for(int i =0;i<data_num;i++){
data_list += (Integer.toString((int)(data[i]))+ " ");
System.out.println(Double.toString(data[i]));
}
0246その4
05/02/02 23:46:51button1.setVisible(false);
}else if(e.getActionCommand()=="calc"){
if(data_list == null){
texta1.setText("Need Load Data.");
}else{
text1.setText(Double.toString(Calc.average(data,data_num)));
text2.setText(Double.toString(Calc.varience(data,data_num)));
text3.setText(Double.toString(Calc.standard_deviation(data,data_num)));
}
}
}
}
0247その5
05/02/02 23:47:40public static void main(String[] args){
FrameForm ff = new FrameForm();
ff.setVisible(true);
ff.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
0248その6
05/02/02 23:48:54static double average(double num[],int n){
double average = 0;
for(int i=0;i<n;i++){
average += num[i];
}
return average/n;
}
static double varience(double num[],int n){
double varience = 0;
for(int i=0;i<n;i++){
varience += Math.pow(num[i]-average(num,n),2);
}
return varience/n;
}
static double standard_deviation(double num[],int n){
return Math.sqrt(varience(num,n));
}
}
0249質問です
05/02/02 23:51:410250デフォルトの名無しさん
05/02/02 23:53:41NaNってあるけどparseIntしとるけ?
0251デフォルトの名無しさん
05/02/03 00:06:50クラスFrameMainの閉じカッコがないけど、それをつければ動くよコレ。
動かした手順書くわ。
(1) 下の2行のテキストファイルtest.txtを用意。
---ここから
3
5
---ここまで
(2) プログラムを実行して、[Load Data]ボタンを押す。
テキストエリアに
3 5
と出力される。
(3) [Calculate]ボタンを押す。
平均と分散と標準偏差が出力される。
0252251
05/02/03 00:11:28ちなみに、、数値変換できない文字列に対して
「Integer.parseInt()は例外投げる」
「Double.parseDouble()はNaNを返す」
だったと思うよ。
0253>>252
05/02/03 00:30:340254>>252
05/02/03 00:48:54ですが、数字を増やしてやってみる(例えば3、4、5、など)と計算結果はでるのですが、SetDataには何も出ません。どうしてでしょうか?
0255デフォルトの名無しさん
05/02/03 01:15:16Integer.parseInt(" 1") (←1の前に半角スペース入り)はNumberFormatException()発生。
Double.parseDouble(" 1.1") (←1の前に半角スペース入り)は普通にdouble値を返す。
0256>>252
05/02/03 01:15:45ですが、数字を増やしてやってみる(例えば3、4、5、など)と計算結果はでるのですが、SetDataには何も出ません。どうしてでしょうか?
0257なぜ?
05/02/03 01:28:330258デフォルトの名無しさん
05/02/03 01:31:560259デフォルトの名無しさん
05/02/03 01:34:55ですが、SetDataがでないときはこうゆうのがでます。
apple.awt.EventQueueExceptionHandler Caught Throwable :
java.lang.NumberFormatException: empty String
at java.lang.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:986)
at java.lang.Double.parseDouble(Double.java:202)
at FrameForm.actionPerformed(FrameMain.java:67)
at java.awt.Button.processActionEvent(Button.java:381)
at java.awt.Button.processEvent(Button.java:350)
at java.awt.Component.dispatchEventImpl(Component.java:3598)
at java.awt.Component.dispatchEvent(Component.java:3439)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:450)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:230)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:99)
0260デフォルトの名無しさん
05/02/03 01:35:51AppTrace=onがあるんだから、
1行おきにprintlnとかすればつきとめられると思うんだが。
デバッグしたことないの?
0261デフォルトの名無しさん
05/02/03 01:37:220262デフォルトの名無しさん
05/02/03 01:38:080263デフォルトの名無しさん
05/02/03 01:54:37エラーメッセージの 2 行目以降に注目。
>java.lang.NumberFormatException: empty String
数値フォーマットの例外(エラー)が発生:文字列が空っぽ
>at java.lang.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:986)
FloatingDecimal.java の 986 行目で発生してるよ
>at java.lang.Double.parseDouble(Double.java:202)
その処理は Double.java の 202 行目から呼ばれているよ
:
(以下省略)
このように、エラーメッセージをキチンと読めば初歩的なミスは大抵解るよ。
がんがれ。
0264>>263
05/02/03 02:04:17挑戦してみます。
0265デフォルトの名無しさん
05/02/03 02:14:13数値フォーマットの例外(エラー)が発生:文字列が空っぽ
ここで私側にミスがあったのがわかりました。test.txtを作成するとき、最後の数字を入れた後に改行したのがだめでした。
0266デフォルトの名無しさん
05/02/03 03:23:180267デフォルトの名無しさん
05/02/03 04:57:110268デフォルトの名無しさん
05/02/03 05:54:020269デフォルトの名無しさん
05/02/03 06:15:191.4以前のJDKの場合は,
ArrayList list = new ArrayList();
list.add(new Integer(5));
のように,Integerクラスに包んで入れなければならない。
また,list から取り出すときも,
int num = ((Integer)list.get(0)).intValue();
のように元のint型にキャストすること。
JDK5ならオートボクシング・アンボクシングが働くから,こういう作業を裏で自動でやってくれる。
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(5);
int num = list.get(0);
というコードがそのままコンパイルできる。
0270デフォルトの名無しさん
05/02/03 07:36:41Integerだったんですね。ありがとうございます。
int型だとArrayListのインデックス値と認識されてしまって困っていました。
JDK5の方はgenericsでしたっけ。
やっと、ありがたみがわかりました。
JDK5は入れてないんですが、JDK1.4以前のコードはJDK5でも認識するんですよね?
0271デフォルトの名無しさん
05/02/03 08:12:20>JDK1.4以前のコードはJDK5でも認識するんですよね?
はい。
明示的に1.4のコードと指定してコンパイルする(5.0特有の機能を使っているとエラーを出す)場合には,javac のコンパイルオプションとして -source 1.4 を指定して下さい。
>>269のコードでは,5.0のgenericsと,オートボクシング・アンボクシングの機能を使ってます。
オートボクシング・アンボクシングは,今の例なら int 型と Integer クラスの変換が必要になった場面で,暗黙の内に自動的にその変換を行ってくれる機能です。
genericsは,ArrayListに<Integer>を付加することで,listの要素が Integer 型のインスタンスのみであることを保証します。これを使わないと,
ArrayList list = new ArrayList();
list.add(5); // ここはオートボクシングで暗黙の new Integer(5) がなされて Integer 型オブジェクトが入る
int num = list.get(0); // リストから取り出したものが Integer 型オブジェクトとは限らないので,アンボクシングできず,コンパイルエラー発生
となってしまいます。この場合でも,
int num = (Integer)list.get(0);
とすれば,Objectが一度Integerにキャストされた後,更にアンボクシングが働いてint型に変換されますので,警告付きですがコンパイルできます。
ですが,listに Integer しか入れないのであれば,ArrayList<Integer> と明示しておくことが推奨されます。
0272デフォルトの名無しさん
05/02/03 11:29:47丁寧な解説ありがとうございます。
>オートボクシング・アンボクシングは,今の例なら int 型と Integer クラスの
>変換が必要になった場面で,暗黙の内に自動的にその変換を行ってくれる機能です。
ということは、
(1) JDK5スタイルでコーディングしてJDK5でコンパイルしても
(2) JDK1.4スタイルでコーディングしてJDK1.4でコンパイルしても
classファイルレベルでは変わりないということですか?
つまり、バージョン1.4のVM上で(1)のclassファイルが実行可能、
かつバージョン5のVM上で(2)のclassファイルが実行可能(これは当たり前)ということですか?
0273デフォルトの名無しさん
05/02/03 11:57:16Test
- MANIFEST.MF
- Test.class(プログラム中でlib.jarを使っている)
- lib.jar
という配置でMANIFEST.MFに
Manifest-Version: 1.0
Main-Class: Test
Class-Path: lib.jar
にしてjar cvfm Test.jar MANIFEST.MF Test.class lib.jar
でJARを作っても実行できません。どこが間違っているでしょうか。
アドバイスお願いします。
0274デフォルトの名無しさん
05/02/03 12:48:03lib.jarはtest.jarに入れるんでなくて、
test.jarと同じフォルダに置いとくんでないの?
0275デフォルトの名無しさん
05/02/03 14:02:29まにふぇすとに
Extension-Name: lib.jar
を追加してみてください。
0276デフォルトの名無しさん
05/02/03 14:56:07そうやる人もいるみたいなんですが配布時にJARファイルだけにしたいので
>>275
できないようです・・・ライブラリをjarにしないで解凍しておけばできるんですが
0277デフォルトの名無しさん
05/02/03 14:56:11上から順番に適合を見てくの?
try{}
catch (IOException e) {}
catch (InterruptedIOException ioe){}
ってあった場合、
InterruptedIOExceptionはIOExceptionに食われる?
0278デフォルトの名無しさん
05/02/03 15:12:54いえ,たとえただの Hello World プログラムであっても,
5.0でそのままコンパイルしてできるclassファイルは,
1.4のJREでは動きません。
5.0のjavacで,1.4でも実行できるclassファイルを生成するには,
コンパイルオプションに -source 1.4 を指定して下さい。
しかし,その時は,ソースにはオートボクシングやgenericsなどの
5.0用拡張機能は使えなくなります。
1.4と5.0の互換性の少なさに悩みますね。α版Tigerの時のように
-source 1.5 -target 1.4 のコンパイルができれば嬉しいのですが。
0279デフォルトの名無しさん
05/02/03 15:32:47java.util.Arrays#sortのAPI読め!
0280デフォルトの名無しさん
05/02/03 15:45:10聞く前に自分で試してみたのかよ。
0281デフォルトの名無しさん
05/02/03 15:54:21- J2SE 5.0
- J2SE 1.4.2
どちらをダウンロードすればいいんでしょうか?
0282277
05/02/03 16:08:47言い直す。
以下だと
try{}
catch (IOException e) {}
catch (InterruptedIOException ioe){hoge();}
hogeが実行されなかったが、
以下だと
try{}
catch (InterruptedIOException ioe){hoge();}
catch (IOException e) {}
hogeが通った。
で、仕様上これが正しいのか、と。
0283デフォルトの名無しさん
05/02/03 16:09:07両方。
0284デフォルトの名無しさん
05/02/03 16:12:0014.19.1 try-catch の実行
http://www.y-adagio.com/public/standards/tr_javalang2/statements.doc.html#24134
> tryブロックの実行が値 V の throw のために中途完了した場合,次の選択が存在する。
> * V の実行時の型が,try 文の幾つかの catch 節の Parameter に代入可能(5.2)ならば,そのうち最初の (最も左の) catch 節が選ばれる。
> その値 V が選ばれた catch 節の仮引数に代入され,catch 節の Block が実行される。そのブロックが正常完了すれば,try 文は正常完了する。
> そのブロックがなんらかの理由によって中途完了すれば,try文は同じ理由で中途完了する。
0286デフォルトの名無しさん
05/02/03 17:00:18BCELとかJava5の機能(クラスファイルのバイトコードを扱える機能が加わりましたよね)で
コンパイル済みのクラスファイルの中をいじくって、Threadクラスを独自実装のThreadクラスに置き換える
とかいうこと(Threadを継承したクラスとかに)はできますでしょうか?
javaのTreadクラスそのものを独自の実装に変えたいというわけではありません。Threadクラスが使われている
場所を任意実装のクラスに置き換えたいというだけです。
おねがいします。
0287286
05/02/03 17:25:310288デフォルトの名無しさん
05/02/03 17:34:42HelloWorldレベルでもそんなことが起きるんですか(;・∀・)
勉強になりましたm(_ _)m
0289デフォルトの名無しさん
05/02/03 17:37:54java.*、javax.*、sun.*、などのパッケージに含まれるクラスに
手を突っ込むのはライセンスに抵触するような。
そうでないなら、そんな大掛かりな事しなくても済むだろうし。
0290286
05/02/03 17:47:30ええ、そこらへんをいじるつもりはありません。Threadの使われている地点に
あたかも独自実装のThreadクラスを継承したクラスを置きたいんです。
つまり、Threadクラスの使われている場所に追加機能を加えたいという事ですね。
クラスファイルから。ソースレベルでは考えていません。結果的にできれば手段は何でもいいです。
そんなことできますでしょうか?
0291デフォルトの名無しさん
05/02/03 17:50:31技術的にはできる。ライセンス的に許されるかは知らん。
0292286
05/02/03 17:51:16すいません。おっしゃってる事の意図を勘違いしてました。
java.*、javax.*、sun.*、とかの中で使われているThreadクラスの部分を置き換えたらまずい
って話ですね。
とりあえず、開発者が書いた部分だけできればいいです。(でも、ソースの書き換えさえしな
ければ起動時の構成を変えるという手段をとっても大丈夫なのでしょうかね?)
0293286
05/02/03 17:54:04という事はできるんでしょうか(sun配布のクラスファイルを書き換えたりせずに)
0294デフォルトの名無しさん
05/02/03 17:57:43それらのクラスはブートストラップクラスローダが読み込む可能性が高いので技術的にも若干面倒になるかも。
ライセンス的にも相当ヤバいと思われ。
0295デフォルトの名無しさん
05/02/03 19:42:19参考になると思う。
http://swingwt.sourceforge.net/faq.php
>Q. Couldn't you have used the java.awt.*/javax.swing.* package names? I have to search/replace all my code before I can use this stuff!
>A. Yes and No. Yes, technically it can be done, but it requires
> deployment to jre/lib/endorsed for javax.* packages (making it
> tougher to deploy apps). Other disadvantages are that the
> default Sun classloader will refuse to load anything starting
> with java.* (so you need to override the classloader), and the
> big worry that classes might get merged from the real AWT/Swing.
>
>You can also use various Java pre-processors or Ant to change your code at build time for you.
つーわけで、SwingWTではSunのJREと組み合わせて使うときには
置き換えをやらずに別のパッケージ名を使ってる。
gcjの場合はまた話が違うんだけど。
0296デフォルトの名無しさん
05/02/03 20:57:590297デフォルトの名無しさん
05/02/03 21:00:12そーです。
0298デフォルトの名無しさん
05/02/03 21:04:02見切り発車で作り始めちゃったんだが
0299デフォルトの名無しさん
05/02/03 21:53:220300デフォルトの名無しさん
05/02/03 21:55:50Javaの質問じゃないな
0301デフォルトの名無しさん
05/02/03 22:10:34ttp://java.sun.com/j2se/1.4/ja/docs/ja/api/java/lang/String.html#split(java.lang.String)
これ以降はAPI仕様を読んでから質問するようにしましょう。
ttp://java.sun.com/j2se/1.4/ja/docs/ja/api/index.html
0302デフォルトの名無しさん
05/02/03 23:10:08HTTPステータス 500 -
説明 The server encountered an internal error () that prevented it from fulfilling this request.
例外
javax.servlet.ServletException: サーブレットインスタンスを割り当て中のエラーです
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
java.lang.Thread.run(Thread.java:534)
原因
java.lang.NoClassDefFoundError: Cashsqlserv (wrong name: fweb/Cashsqlserv)
java.lang.ClassLoader.defineClass0(Native Method)
java.lang.ClassLoader.defineClass(ClassLoader.java:539)
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
0303デフォルトの名無しさん
05/02/03 23:11:260304デフォルトの名無しさん
05/02/03 23:14:09web.xml見直せ。
0305デフォルトの名無しさん
05/02/03 23:21:36うほ!あんちゃんすげーなぁ
web.xmlの<url-pattern>ちょいイジッたらメッセージ変わったぞ
HTTPステータス 404 - /fweb/Cashsqlserv
type ステータスレポート
メッセージ /fweb/Cashsqlserv
説明 The requested resource (/fweb/Cashsqlserv) is not available.
げな
0306デフォルトの名無しさん
05/02/03 23:25:580307デフォルトの名無しさん
05/02/03 23:28:38printfってのがあるよ。
0308デフォルトの名無しさん
05/02/03 23:30:41jarの中でjarを読むのは無理
ライブラリを全部classに分解して、自分のclassと合わせて一つのjarにする
ただライセンス的に問題あるかも
0309デフォルトの名無しさん
05/02/03 23:31:005.0〜だっけ?
0310デフォルトの名無しさん
05/02/03 23:55:59以下のように、コントロールチェンジを使おうとしたのですが、正しく送信されていないようです。
Synthesizer synth = MidiSystem.getSynthesizer();
MidiChannel channel[] = synth.getChannels();
synth.open();
Soundbank soundbank = synth.getDefaultSoundbank();
channel[10].controlChange(0,127); //バンクセレクトMSBに127を送信
channel[10].controlChange(32,0); //バンクセレクトLSBに0を送信
channel[10].noteOn(42, 127);
Thread.currentThread().sleep(300);
channel[10].noteOff(42);
synth.close();
どうしたらいいのでしょうか。
Javaのmidi関連のクラスを使うのは初めてなので、根本的に勘違いをしているのかも知れませんが、
よろしくお願いします。
0311デフォルトの名無しさん
05/02/03 23:57:450312デフォルトの名無しさん
05/02/04 01:14:41midi直接はいじってないけどmidiファイル流して
とちゃんとなってるってことはたぶん動くんだよなぁー
サウンドバンクは本当に読み込まれてる?
JREには標準で入ってないけどSDKには入ってるんでコピーが必要だったりするよー
ちなみにサウンドバンクはサイズ的に小中大とあるけど大の音色きにいらねー
0313デフォルトの名無しさん
05/02/04 01:15:54置き換えるってのが微妙だけど、バイトコードを書換えるのが目的なの?
それとも動作がかわってくれればOKなの?
後者でいいなら、ダイナミックプロキシで普通にできそうな気がするんだけど。
java.lang.reflect.Proxy
Proxy provides static methods for creating dynamic proxy classes and instances, and it is also the superclass of all dynamic proxy classes created by those methods.
0314310
05/02/04 01:24:36ありがとうございます。
>サウンドバンクは本当に読み込まれてる?
についてはよく判りませんが、
上のソースをtryで括ってエラーをchachするようにしましたが、特に何もありませんでした。
というか、channel[9]としたら(0から始まっているので、midiチャンネル10を選んだ形)
一応ドラムの音が鳴らせました。
ほとんどのmidi音源で、ch10が予めリズム音色を鳴らすように割り当てられているおかげだと思うのですが、
(要するに肝心のコントロールチェンジは送信されてないみたいですが)
一応ドラム音色を出す手段が見つかったので、これで妥協します。
0315デフォルトの名無しさん
05/02/04 01:41:10ニーモニック定数には登録されていないようなので、どのようにしたらいいのか、
途方にくれています。
HTML.unknowtagクラスを使うといいのかも?という所まではわかったのですが、
具体的な使い方がわかりません。
unknowntagクラスについては全く見当違いの事をいっているかもしれませんが、
どなたかご教授願います。
宜しくお願いします。
0316デフォルトの名無しさん
05/02/04 01:47:58GM準拠なのであまり凝ったことはできないと思ってたほうがよかったかな
JavaSoundいじったのだいぶ前なので後で調べてみるわ
基本的に10chだけだと思っていいと思う
コントロールチェンジはボリュームとかだけは確認したような
0317デフォルトの名無しさん
05/02/04 02:02:420319デフォルトの名無しさん
05/02/04 06:12:240320286
05/02/04 10:21:30はい、動作さえ変わってくれればOKです。
0321286
05/02/04 10:26:33ありがとうございます。
0322286
05/02/04 11:25:19動的プロキシってのは、ソースを改変せずに使う事ってできるんでしょうか?
(BCELとかJava Assistとか使ってプロキシクラスの呼び出しを無理やり挿入すればもちろん
できるでしょうが、とりあえず、そういった方法はとらずに)
0323231
05/02/04 11:31:04>>231わかる方いましたらお願いしますm(_ _)m
0324デフォルトの名無しさん
05/02/04 12:53:57CD-ROMの中にホームページがあるとは一体何なのか・・・・?
0325231
05/02/04 14:10:56わかりづらくてすいません。。
HPというか、IEなどのブラウザで見れる
html形式のファイルをファイルの中に入れておくってことです。
それで、そのhtml上にボタンとかをつけて、
選択して、クリックするとデータがプログラムに送られて、
プログラムがhtml形式で返して、それをブラウザ上で表示する、
みたいな感じです。
(これでもわかりづいか。。。_| ̄|○
0326231
05/02/04 14:11:42>ファイルをファイルの中に
ファイルをフォルダの中に
0327デフォルトの名無しさん
05/02/04 14:19:49JAVA宿題スレというのがあるので、そちらで聞いてみれば
運が良ければ、プログラムが来るかも
0328デフォルトの名無しさん
05/02/04 14:20:51その画像はどこにあるのさ。そしてプログラムはどこにおくのさ。
CDROMの中のHTMLからサーバ上のプログラム(Servletとか)と通信するのか?
それともローカルで完結するのか?
そういうのいちいちこのスレでやりとりするの無理じゃねーか?
0329デフォルトの名無しさん
05/02/04 14:21:33あまりにもツッコミどころが多くて釣りっぽく見えるので
とりあえず確実に参考になるURLだけ挙げておきますね
ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/
0330デフォルトの名無しさん
05/02/04 17:18:16何か特別な設定が必要なのでしょうか?
0331デフォルトの名無しさん
05/02/04 17:27:54何をもって「特別な設定」と呼んでいるのかは知りませんが
少なくとも、あなたの環境に施されていない設定が必要なんでしょうね
自分の設定すら満足に示さない方への回答としてはこれで充分ですよね
0332デフォルトの名無しさん
05/02/04 17:48:02synchronizedについてなんだが、
例えば
synchronized(this){ hoge(); }
とか書くと、複数のスレッドからでもこのブロックは同期されるよな?(日本語変だけど)
synchronized(new hanage()){ hoge(); }
こうすると、このブロックが呼ばれるたびにオブジェクトが生成されるから、
その都度新しいオブジェクトのロックを取得していて、意味が無いということで
良いよな?この時点で違ってたら突っ込みぷりいず。
つまり、
synchronized( xxxx )
のxxxxの部分のオブジェクトは端的に言うと『ロックというフラグを提供しているだけ』なのか?
0333デフォルトの名無しさん
05/02/04 17:55:42その描画速度の変更をしたいのですが可能でしょうか?
よろしくお願いいたします
0334デフォルトの名無しさん
05/02/04 20:13:56ぜんぜん十分じゃない。
0335231
05/02/04 20:25:57えと、画像もプログラムもCDの中です。
ローカルで完結したいと思ってます。
ここで聞くのはダメですかね。。
>>329
釣りではないんですが。。
URLどもです。
でもよくわからない。。。(´・ω・`)
0336デフォルトの名無しさん
05/02/04 20:54:17無理だ。
Javaアプリ→条件判断で画像収集→Javaアプリに表示
これくらいで諦めたらどうだ。
表示の段階でHTMLに出力できるようにすればいいだろう。
0337231
05/02/04 20:57:25あ、サバになっちゃうんですか。。
特にhtmlにこだわってるわけではないんですが、
それが一番きれいに出力できる方法かなと思いまして。
Javaアプリってアプレットってことですか!?
0338デフォルトの名無しさん
05/02/04 21:08:330339デフォルトの名無しさん
05/02/04 21:48:48JDK5.0とTomcat5.5を普通にインストールしただけなのでなんと答えたらよいのか。
オートボクシングやジェネリクスが使えない以外(つまり従来のコードは)動くので「特別な設定?」と書いたのです。
0340デフォルトの名無しさん
05/02/04 21:58:27正解
0341デフォルトの名無しさん
05/02/04 22:13:50確かに初期設定だとJSPの中で文法エラーになるね。
どこかに設定があるのかな・・・
0342デフォルトの名無しさん
05/02/05 00:15:11ロックというフラグっていう表現がアレだけど、
まあ、それでわかってるならいいんじゃない?
xxx部分はロック対象なんですよ。
当然同じロックを取ってる同士じゃなきゃ排他制御されない。
0343313
05/02/05 00:17:17そうです。ソースの改変なんてしません。
てゆっかAPIリファレンスは見た?せっかくクラス名書いてあげたのにw
せっかくだから
http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/reflection/proxy.html
も教えてあげよう。
0344デフォルトの名無しさん
05/02/05 00:22:020345デフォルトの名無しさん
05/02/05 01:00:15標準APIで使用されている既存のクラスの挙動を変えたいなら java.lang.reflect.Proxy では不可能なのでは?
0346デフォルトの名無しさん
05/02/05 01:01:450347332
05/02/05 01:15:31>>342
ありが�d
どうも頭の中セマフォなんで混乱しててさ。
モニタって例えば、
synchronized(hanage)
ってなってたとすると、
hanageオブジェクトが現在のスレッドを管理する、と。
あるスレッドを管理中だった場合、他のスレッドをwait()する、と。
言い方むずかし。
ともかく、理解は出来た。さんくすこ。
今度はケーキもってくるよ。
0348209
05/02/05 01:19:42>>213さん
セッション関係の知識が全く無かった為にぐぐって
http://ash.or.jp/java/webapp_scope.htm
を見て勉強していました。(難しい・・・)
>>215さん
a1.jspで
<% application.setAttribute("uid", uid); %>
としてダメだったので
<% request.setAttribute("uid",uid); %>
としてもエラーが出てしまいます。
※uid は
<input type="text" name="uid" size="50" maxlength="20"><p>
という風に同一 a1.jsp 内に入力しています。
何が原因なのでしょうか?
0349デフォルトの名無しさん
05/02/05 01:51:46既存のクラスじゃなくて、Threadを継承したユーザークラスだと思ってたんだけど。
話の流れから?違うの?
0350デフォルトの名無しさん
05/02/05 02:34:42>あるスレッドを管理中だった場合、他のスレッドをwait()する、と。
これは間違い。
hanageオブジェクトが明示的にスレッドをどうこうするのではなく、
スレッドがhanageオブジェクトのロック状態を見て自主的に待機するだけ。
synchronizedブロックが一箇所ならどっちの認識でも変わらないけど
複数箇所になると正しく認識してないと混乱するぞ。
0351デフォルトの名無しさん
05/02/05 03:35:27uidが変数ではなく、フォームからのパラメータなら
session.setAttribute("uid", request.getParameter("uid");
としてみてください
0352デフォルトの名無しさん
05/02/05 06:35:370353デフォルトの名無しさん
05/02/05 07:54:070354デフォルトの名無しさん
05/02/05 12:54:29JAVAでエクセルファイルを読み込んで書き込みをやりたいのですが、
どうすればよろしいのでしょうか?
たとえば、読み込みシートのB3,C3から読み込み、データを編集し
書き込みシートB3、C3に書くっていった具合です
よろしくお願いいたします。
0355デフォルトの名無しさん
05/02/05 13:49:56http://jakarta.apache.org/poi/index.html
0356デフォルトの名無しさん
05/02/05 16:37:06もっと検索しろよ
人材派遣サイトをかえてみなよ。
0357デフォルトの名無しさん
05/02/05 16:49:03あきらめい。時流だ。
一時派遣やってたけど、結局転職したよ。
まだプログラミングは嫌いじゃないので、今は趣味プロとして
気楽にやってるよ。
0358デフォルトの名無しさん
05/02/05 17:49:170359286
05/02/05 18:07:46その通りです。ですが、理想を言えば、標準APIの中で使われた場合も置き換え
られたら最高ですね。
0360デフォルトの名無しさん
05/02/05 18:38:40servletで各画面からの受け取った<name>のvalueを判別する方法って、
if(xxx.quauls(value1)) {
〜〜〜〜〜〜
}
else (xxx.quauls(value2)) {
〜〜〜〜〜〜〜
}
else (xxx.quauls(value3)) {
〜〜〜〜〜〜
}
って方法しかないのですか?
もっとスマートなやり方があれば
教えてください。
0361デフォルトの名無しさん
05/02/05 19:15:27本にのっとって初めてソースファイルをコンパイルしてみたのですが、
'c:\windows' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません
と表示されて何をすればいいのかわからなくて途方にくれています。
この場合どうしたらいいのでしょうか。
0362デフォルトの名無しさん
05/02/05 19:18:23どうやったらそうなったんでしょうか!?
0363デフォルトの名無しさん
05/02/05 19:19:21全然作り方がわかりません。。
もし詳しく載っているHP等を知っている方いましたら教えてください。
0364デフォルトの名無しさん
05/02/05 19:21:55そーゆー書き方だとこっちがどんなURL載せるかぐらいわかるだろ?
0366デフォルトの名無しさん
05/02/05 19:40:06おおおおお!
http://www.hellohiro.com/swing.htm
0367デフォルトの名無しさん
05/02/05 19:44:550368デフォルトの名無しさん
05/02/05 19:50:49自動でスクロールバーをつけられるようにするにはどうすればいいんだー
0369デフォルトの名無しさん
05/02/05 19:53:29同じく趣味でいいな
徹夜は嫌
0370361
05/02/05 20:17:58何がどうなってこうなってるのか自分でもよくわからんのです。
切実に解決方法を知りたいんです。
OS入れなおしたら直るんでしょうか。
0371デフォルトの名無しさん
05/02/05 20:21:32javac から打ち込むのじゃボケ
0372デフォルトの名無しさん
05/02/05 20:21:46そうすればいいじゃない。
何の本見たのかも分からないし、その本に忠実に従ってやったのかも分からないし。
0373デフォルトの名無しさん
05/02/05 20:25:19http://msugai.fc2web.com/java/howdy.html
0374デフォルトの名無しさん
05/02/05 20:40:30import java.awt.Graphics;
public class main extends Applet{
public void paint(Graphics g){
g.drawLine(10, 10, 100, 100);
}}
<html><body>
<applet code="main.class" width="200" height="200"></applet>
</body></html>
で上手くアプレットで線が表示できません。
もちろんブラウザにJavaappletをインストールして無いなんて事は無いのですが、
どうも自分の書いたコードが動きません。
どこがおかしいのでしょうか?
0375デフォルトの名無しさん
05/02/05 20:49:48htmlとclassが同じディレクトリにちゃんとある?
0376374
05/02/05 21:30:29あります。
Eclipseで開発してるのですが、javaソースに文法エラーはありませんし、
g.drawLine()ではなくg.drawString()でもやってみましたが
こっちも動きませんでした。
クマッタ・・・
0377デフォルトの名無しさん
05/02/05 21:34:440378デフォルトの名無しさん
05/02/05 21:35:370379デフォルトの名無しさん
05/02/05 21:40:48んじゃコンソールのログ見せて。
0381デフォルトの名無しさん
05/02/05 21:47:55[Javaプログラム] →キー操作→ [他のプログラム]
その逆も出来るでしょうか?
0382デフォルトの名無しさん
05/02/05 21:55:15OSは?
0383デフォルトの名無しさん
05/02/05 22:01:56失礼しました。
WindowsXPです。
0384デフォルトの名無しさん
05/02/05 22:33:47java.awt.Robot とか使えば出来るのでは?
0385デフォルトの名無しさん
05/02/05 23:19:24public static void main (String[] age) {
int [] seiseki = { 85,40,89,72,84,53,23,68,78,94,16,54,81,68,30,70,48,65,80,87 };
for(int i =100; i >= 0; i--) {
for(int j = 0; j <seiseki.length; j++) {
if (i == seiseki[j]) {
System.out.println((seiseki[j]+"点"));
}
}
}
}
}
このプログラムで成績が降順で並びかえれたのですが、点数の横に学籍番号を入れるにはどうすれば?
左から学籍1番なのですが。
40
0386デフォルトの名無しさん
05/02/05 23:51:17> System.out.println((j + 1) + ", " + seiseki[j] + "点");
0387デフォルトの名無しさん
05/02/05 23:54:09そのソート方法じゃ無理かも。。
class kadai {
public static void main (String[] age) {
int [] seiseki = { 85,40,89,72,84,53,23,68,78,94,16,54,81,68,30,70,48,65,80,87 };
int [] bangou = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 };
for(int i =0; i < seiseki.length; i++) {
for(int j = 0; j < seiseki.length - i; j++) {
if (seiseki[j] < seiseki[j+1]) {
int k = seiseki[j];
seiseki[j] = seiseki[j+1];
seiseki[j+1] = k;
k = bangou[j];
bangou[j] = bangou[j+1];
bangou[j+1] = k;
}
}
}
for(int i=0; i < seiseki.length; i++)
System.out.println(bangou[i] + "番は" + seiseki[i] + "点です");
}
}
こんな感じだったらOKじゃないかな??
0389デフォルトの名無しさん
05/02/06 00:00:20いろんな方法があるのですね、参考になります。
0390デフォルトの名無しさん
05/02/06 00:46:34(j+1)ってどんな処理が行われてるんですか?
それで番号がなぜでるのですか?
0391デフォルトの名無しさん
05/02/06 00:57:050392デフォルトの名無しさん
05/02/06 00:58:18j+1は「jに1をくわえる」しょりですね。
jははいれつのなんばんめかをあらわしていますね。
せいとのてんすうはひだりからがくせき1ばんなのだから、
はいれつのなんばんめかがわかればよいですよね。
はいれつは0ばんめからはじまるので1をくわえてがくせきばんごうをあらわしているのです。
0393デフォルトの名無しさん
05/02/06 01:06:01チョトワロス
0394デフォルトの名無しさん
05/02/06 01:07:22http://dev.eclipse.org/viewcvs/indextools.cgi/%7Echeckout%7E/vep-home/WebContent/docs/demos/custom_field/FieldBean.html
0395デフォルトの名無しさん
05/02/06 01:33:56POIってプロジェクト終了したんじゃなかったっけ?
0396デフォルトの名無しさん
05/02/06 01:48:35そこでJCOMですよ。
ttp://sourceforge.net/projects/jcom
0397デフォルトの名無しさん
05/02/06 02:15:27こないだ仕事でつかったけど
エクセルの値を読み書きするくらいなら
今のやつでも全然問題なく使えるぞ。
0398デフォルトの名無しさん
05/02/06 03:44:17これは他のウィンドウに対しても操作できるのでしょうか?
使用方法ご存知の方いらっしゃったら教えてもらえませんか?
0399デフォルトの名無しさん
05/02/06 07:39:14ってか自分自身のIPアドレス&ホスト名を取得したいと思ってIPアドレスを
取得するのに↓こんな量になっちゃいました。もっと簡単な方法あるでしょうか?
(この質問をすると「127.0.0.1とlocalhost」と表示されちゃうプログラムを答える人が多い…)
//////////////////////
NetworkInterface ni = null;
InetAddress ipa = null;
Enumeration enuIfs = NetworkInterface.getNetworkInterfaces();
while(enuIfs.hasMoreElements()){
ni = (NetworkInterface)enuIfs.nextElement();//NetworkInterfaceに対する処理。
}
Enumeration enuAddrs = ni.getInetAddresses();
while(enuAddrs.hasMoreElements()){
ipa = (InetAddress)enuAddrs.nextElement();//InetAddressに対する処理。
}
String ipad = ipa.toString().substring(1);
///////////////////////
ってことでString型ipadにIPアドレス(127.0.0.1じゃないよ)が格納されています。
これをホスト名に変換したいんですが…
0400デフォルトの名無しさん
05/02/06 09:36:420401348
05/02/06 10:24:59すみません。何とか1.jspにおいてはエラー画面が表示されなくなったのですが、
1.jsp ・・・下記コードを記述しエラー画面へは遷移しなくなりました。
<%session.setAttribute("uid", request.getParameter("uid"));
%>
2.jsp ・・・確認画面を表示させ、< action =3.jsp > を指定し
3.jsp で処理を実行させる。
3.jps ・・・このjsp内部での処理が上手く行きません。
具体的には
<%
String str = request.getParameter("uid");
%>
JSPで値渡しされたユーザ名は
<%=str %>です。
※と記述した結果なぜか
JSPで値渡しされたユーザ名は nullです。
と表示されてしまいます。(値渡しが上手く行っていない様なのですが
何が原因として考えられますでしょうか?
0402デフォルトの名無しさん
05/02/06 11:26:23質問する前にAPIリファレンスぐらい読め。
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/awt/Robot.html
0403デフォルトの名無しさん
05/02/06 13:21:49a1.jsp [ユーザにIDを入力して貰う。]
<form action="/test/a2.jsp" method="GET">
<input type="text" name="uid" size="10">
a2.jsp [入力内容確認画面:登録ボタンを押し、a3.jspで登録処理を行なう]
<% String uid = request.getParameter("uid"); session.setAttribute("uid", uid); %>
<%= uid + "を登録していいですか?" %>
<form action="/test/a3.jsp" method="GET">
<input type="submit" name="yes" value="はい">
a3.jsp [このjsp内部でDBへの登録を行なう。]
<% String uid = session.getAttribute("uid");
st.executeUpdate("insert into testTable values (" + uid + ");"); %>
とするとか・・・
0404デフォルトの名無しさん
05/02/06 13:59:05プログラムは全部分からなくてもある程度理解できるもんなんだな、と思った。
0405デフォルトの名無しさん
05/02/06 16:31:180406デフォルトの名無しさん
05/02/06 16:31:26データフローで考えるとなお良い。
0407デフォルトの名無しさん
05/02/06 16:42:54スマン。見たこと無い関数に適当に数値代入してたのが原因みたいだ。
>>406
なんですかこれ?
プログラムの設計図みたいなもの?
0408デフォルトの名無しさん
05/02/06 16:49:29今でも学生アルバイトとしてプログラマやってるよ。
けど給料が安い。
ITバブル崩壊に加え同時多発テロ事件が起きてから仕事が減り
給料も下がった感がある。
あの頃は儲かってたが今は儲からない。
しかも残業代が出ないために契約社員や正社員のほうが
アルバイトよりも単位時間あたりの報酬が安くなる
ってのにビックリ。給料が安いのでみんな怒っているみたいだ。転職を考えているという。
0409デフォルトの名無しさん
05/02/06 16:51:56学生&フリーターが調子に乗るな。と。
0410デフォルトの名無しさん
05/02/06 17:03:25アプレット上に円を書くのはどうすればいいのでしょうか?
public void init() にボタン貼り付けを書いて、
public void actionPerformed(ActionEvent arg0) に押されたときの処理を書くまではできたのですが、
ここから円を書く処理の
public void paint(Graphics g) をどう呼び出せばいいのかわかりません。
public void paint(Graphics g){ g.drawOval(10,10,10,10) }
の場合、どのようにこのクラスをpublic void actionPerformed(ActionEvent arg0)から呼び出せばいいのでしょうか?
よろしくお願いします。
0411デフォルトの名無しさん
05/02/06 17:07:31update()かなんか余分だよ。確か。
0412デフォルトの名無しさん
05/02/06 17:09:32平社員乙
0413デフォルトの名無しさん
05/02/06 17:35:30actionPerformed()の中で,paint(getGraphics()); を呼ぶ。
しかし,描画処理と表示処理のロジックを分離するためにも,ダブルバッファリングを使うことをお勧め。
アニメーションのちらつきを抑えるのにも有効。
こんな感じで。
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
public class Circle extends Applet implements ActionListener{
Button button;
Image img; // ダブルバッファリング用オフスクリーン
Graphics img_g; // オフスクリーン描画用グラフィックコンテキスト
public void init(){
Dimension d = getSize();
img = createImage(d.width, d.height);
img_g = img.getGraphics();
button = new Button("Click me");
button.addActionListener(this);
add(button);
}
public void paint(Graphics g){
g.drawImage(img, 0, 0, this);
}
public void update(Graphics g){
paint(g);
}
public void actionPerformed(ActionEvent event){
img_g.drawOval(10,10,10,10); // 必要に応じてここに img_g に対する描画処理を追加する
paint(getGraphics());
}
}
0414デフォルトの名無しさん
05/02/06 17:49:56FileInputStream("hello.txt"),"MS932"));
みなさん毎回これ書いてる?一発でBufferedReaderを返すUtilクラスを
書いてもいいけど、そのUtilクラスに依存するのもイヤな感じ・・・。
0415デフォルトの名無しさん
05/02/06 17:52:240416デフォルトの名無しさん
05/02/06 18:04:51バイナリ:ストリーム
テキスト:リーダ
何となくね。
0417デフォルトの名無しさん
05/02/06 18:35:42特に413さん、わざわざソースまで書いていただいて本当にありがたいです。
無事上手く動かす事ができ、新たにJAVA APPLETについて知る事ができました。
さらに、書いていただいたソースからも自分が学ぶべきことが多数あり、
これを元にさらに勉強に励みます。
本当にありがとうございました。
0418デフォルトの名無しさん
05/02/06 18:46:49class Outer{
class Inner{
}
static class StaticInner{
}
}
StaticInnerのインスタンス作ると毎回違うものが返ってきた。
ここでのstaticってどういう意味なんでしょう?
0419デフォルトの名無しさん
05/02/06 19:25:218.5.2 staticメンバ型宣言
http://www.y-adagio.com/public/standards/tr_javalang2/classes.doc.html#246853
> キーワード static は,非内部クラス T の本体においてメンバ型 C の宣言を修飾する。
> その効果は,C が内部クラスでない宣言とする。T のstatic メソッドがその本体内にT
> の現在のインスタンスをもたないのと同様に,C もTの現在インスタンスをもたないだけでなく,
> 字句的に取り囲むインスタンスももたない。
0420デフォルトの名無しさん
05/02/06 20:01:01thx! staticメソッドと同じような意味になるのか。
0421デフォルトの名無しさん
05/02/06 20:35:30頭来るんですが、警告出すようにできませんか?
0422デフォルトの名無しさん
05/02/06 20:48:06public static void main(String[] args)
{
final double a_A=0.11, a_B=0.22, a_C=0.33;
String form = "A,2,B,1,C,6";
String[] token = form.split(",");
double[] cons = new double[10];
for(int i =0 ; i <= 4 ; i +=2)
{
if(token[i]== "A") cons[i] = a_A;
else if(token[i]== "B") cons[i] = a_B;
else if(token[i]=="C") cons[i] = a_C;
System.out.println("文字 " + token[i]);
System.out.println("定数 = " + cons[i]);
}
}
とすると、
文字 A
定数 = 0.0
文字 B
定数 = 0.0
文字 C
定数 = 0.0
となり、求める定数(0.11,・・・)が現れません。原因は何でしょうか?
0423デフォルトの名無しさん
05/02/06 20:55:11そんなに頭にきたなら警告出すようなコンパイラを自分で作れ。
>>422
同じインスタンスかどうかを比較するための == で比較してるから。
同じ値かどうかを比較したいなら equals を使え。
0424デフォルトの名無しさん
05/02/06 21:08:070426デフォルトの名無しさん
05/02/06 21:48:53コマンドラインから呼び出して使うこともできるぞ。
0427今年大学生
05/02/06 22:01:01今年入学の大学の授業で、1年生からJAVAをやるという
情報が入りました。グラフィックスなんですが、
今のうち自分で本を買って勉強できるようなものですか?
友達はいきなりJAVAはきついと言っているんで、
着いていけなくなるのが心配です。ちなみに今まで
PCは趣味程度でしか使ってません。
0428デフォルトの名無しさん
05/02/06 22:10:52プログラミング言語は人に教えてもらうようなものじゃないと個人的には思ってます。
>今のうち自分で本を買って勉強できるようなものですか?
全く問題なく勉強できると思います。
最初は「やさしいJava」とかでいいんじゃないですか?
>友達はいきなりJAVAはきついと言っているんで、
PC初心者に「いきなりプログラミング言語はきつい」と言ってるのか
「プログラム知らない人にいきなりJavaはきつい」と言ってるのかどっちか分かりませんが
後者ならそれはすこし前の話です。
あんまり本とか資料とかが出回ってないときは確かにそうだったかもしれませんが
「つまずくところが少ない」と言う点ではJavaは最初に学ぶ言語としてふさわしいと思います。
たとえ前者の意味だったとしても、若いうちは吸収が早いからなんでもすぐに理解できるでしょう。
まぁ結局はガンガレってことで。
0429デフォルトの名無しさん
05/02/06 22:11:02今日から始めましょう
0430デフォルトの名無しさん
05/02/06 22:13:28逆に、Javaすら難しいと感じるようであれば、やめたほうがいい
0431デフォルトの名無しさん
05/02/06 22:16:36俺はCから入った人間だからポインタが扱えなくてダメポ
0432デフォルトの名無しさん
05/02/06 22:17:49正規の教育機関で学んでこそ本当の力がつきます。
0433デフォルトの名無しさん
05/02/06 22:19:37プログラミングほど独学しやすいものはないし、
大学とかで教えてもらうなんてスタイルの奴で
まともに使えた奴を未だ一人も見たことがないわけだが
出来る奴はこっちが何も言わなくても勝手に本買って勉強してる
0434デフォルトの名無しさん
05/02/06 22:35:02そんなに煽るな。
0435デフォルトの名無しさん
05/02/06 22:39:12433は、どれほど多くの人間を見てきたのか。。
個人的には楽しく学べるかどうかがキモかと。
独学に楽しみを見出すことができる人は、どんどん力がついていくし
教育機関が肌に合う人なら、そこで力がつくのもまた然り。
0436デフォルトの名無しさん
05/02/06 22:40:05なんか昔からあるネタで飽きたよ。
0437今年大学生
05/02/06 22:42:35>>428が聞いた「きつい」の意味は後者だと思いますね。
それを読んだことで少し安心しました。
受験終わって遊びたいけど、本当に留年生が多い大学らしいので
今から気合入れてガンガリマス(?)
私の脳に限界が現れたときお世話になるかもしれないので
よろしくお願いします。
0438sage
05/02/06 22:44:320439デフォルトの名無しさん
05/02/06 22:44:46経験則的には正しいように感じるな。
なにしろ他に独学でバンバン吸収していく奴がいるんだから、「全部
教えてください」なんて人間に割く時間なんて、他の人間の邪魔にならない
くらいの知識を与える程度に留めるよ。
0440デフォルトの名無しさん
05/02/06 22:45:02変数が「配列」の場合は参照渡しになるのでしょうか??
0441デフォルトの名無しさん
05/02/06 22:50:48参照でっせ
値渡しはプリミティブ型の変数よん
0442デフォルトの名無しさん
05/02/06 22:54:25「大学入ってから勉強始めるやつは向いてない。
能力がある奴はとっくの昔に独学で力つけてる」
って言ってたなぁ…
0443デフォルトの名無しさん
05/02/06 22:54:27重ねての質問になっていしまいますが
値渡し→プリミティブ型
参照の値渡し→オブジェクト型
参照渡し→配列
こんな理解でよろしいんでしょうか??
0444デフォルトの名無しさん
05/02/06 22:59:34による手ほどきがあって、初めて成り立つって事です。
勿論、講義内容だけで終わらせてしまってはダメです。これは当たり前です。
一からの独学では独りよがりになってしまい、本当の力は身につかないって
事です。何事も基本が大事ですからね。
0445デフォルトの名無しさん
05/02/06 23:00:27だったら参照の値渡しじゃないの?
0446デフォルトの名無しさん
05/02/06 23:01:31正規の教育機関に手ほどきしてもらわないと基本が出来ない香具師は
向いてない以前の問題なんだよ
0447デフォルトの名無しさん
05/02/06 23:09:14ほとんど揃ってる。
ネット上でもアホみたいに解説サイトがある。
フリーのコンパイラも多数存在し、実際に自分で
プログラムを打ってコンパイル、実行出来る。
こんな環境で正規の教育機関の手助けがないと
学べないなんて香具師はどうかしてる。
0448デフォルトの名無しさん
05/02/06 23:11:58Javaは特に恵まれてるように思ふ。
0449デフォルトの名無しさん
05/02/06 23:12:51分かってないな。
例えばC++オンリープログラマの多くは、実務的じゃない。
隣の宿題スレとか、ゲームプログラムでガリガリコードを書くのに
特化してる人は、実務的な面ではさほどのレベルじゃない。
独学だとそういう部類に陥りやすい。
何故か? それは自分の興味のあるやつしか学ばないからだ。
プログラマには何より総合的な知識が要求される。
JAVAプログラマは標準APIという指針があるから、まだ
救いようがあるとはいえ、独学だと手付かずのAPIも多くなるだろう。
本当に学ぶには、どうしても正規教育機関の手ほどきが必要になるんだよ。
0450デフォルトの名無しさん
05/02/06 23:19:19ゲームプログラムをガリガリ書ければゲームプログラマとして十分「実務的」だと思うが……?
悪いけど,「実務的」「本当に学ぶ」という言葉の定義をしてもらえるかな?
APIを全部網羅して覚えることが「本当に学ぶ」ということなの?
0451デフォルトの名無しさん
05/02/06 23:27:310452443
05/02/06 23:28:54私もそう理解していたのですが、
要素が一つの配列を引数にすると参照渡しができるという話を聞いて混乱してます。
いろいろ調べているのですが、コレという回答が見つからないんですよ。。
0453デフォルトの名無しさん
05/02/06 23:33:35何を独学すればいいのか明らかじゃないんじゃないの?
大学の講義はそういう指針にはなると思う。
あと、Java言語だけを勉強すれば優秀なJavaプログラマになれるわけじゃないし。
0454デフォルトの名無しさん
05/02/06 23:35:02>>441がウソだと見抜けないってことはまだ修行が足りんということだ。
0455デフォルトの名無しさん
05/02/06 23:36:35ん?
Cで
int i;
foo(&i);
...
void foo(int *i) {
*i = ....
}
ってことやりたいときに、Javaでは&はつかえないから
int[] i;
foo(i)
...
vod foo(int[] i) {
i[0] = ...
}
ってやるって話だと思うけど。そんなことやらなくていいようにそもそも設計を見直すべきだと思うが。
0456デフォルトの名無しさん
05/02/06 23:36:37参照渡しっぽいことを模倣できるというだけであって参照渡しじゃない。
こういうことでしょ?
static void func(int[] a){
a[0] = 10;
}
public static void main(String[] args){
int[] ia = new int[1];
func(ia);
System.out.println(ia[0]); // 10と出力
}
その手の怪しい話は結構あるので惑わされないように。
0457デフォルトの名無しさん
05/02/06 23:39:57C++>>>>>>Java!とか
Java>>>>C++!!!とか
Ruby!!!!
とかいう変なおっさんになっちゃう悪寒
0458445
05/02/06 23:41:53public static void main(String [] args){
String[] strs = new String[]{"foo"};
reset(strs);
System.out.println(strs[0]);
}
static void reset(Object obj) {
obj = null;
}
でちゃんとfooが出るからやっぱ参照渡しじゃないぽ
0459443
05/02/06 23:42:49設計のほうは見直して、素直に戻り値をとるメソッドを書いたのですが、
理屈を理解したいと思いまして。
まさに456さんのソースのようなことをやっていたのですが、
理屈がわからないです。。
どうも参照渡しの様に見えてしまうのですが。。
0460デフォルトの名無しさん
05/02/06 23:45:32かたじけない。
そのコンパイラのFQDNなぞ教えていただけぬか。
0461デフォルトの名無しさん
05/02/06 23:46:57http://www.wikiroom.com/java/?FAQ#content_1_5
0462デフォルトの名無しさん
05/02/06 23:48:23>プログラマには何より総合的な知識が要求される。
ここでいう「総合的な知識」とは
すなわち 「>>449 が持っている知識の範囲」
という解釈で良いのですね?
0463デフォルトの名無しさん
05/02/06 23:54:41メッソドに渡されます(これを「値渡し」といいます)
「プリミティブ型 」「参照型」の2つの変数があり、
「参照の値渡し」「参照渡し」の区別はありません。
オブジェクトは常にメモリ(ヒープ)中の一か所だけに
存在しそこからうごきません。
オブジェクトそのものは渡しません。
プリミティブ型 の変数には、値そのものが格納されますが、
参照型の変数に格納されるのは常に「オブジェクトの存在場所」を知らせる
情報(アドレス)だけです。
参照型の変数にはオブジェクトそのものは格納しません。
0464デフォルトの名無しさん
05/02/06 23:56:02アドレス演算できんからなおさら。
0465デフォルトの名無しさん
05/02/07 00:00:20他人と技術用語の意味が一致しなくても全然構わないヒキコモリとかならそれでも良いけどね。
0466デフォルトの名無しさん
05/02/07 00:01:02もしかしてSmith君?
0467443
05/02/07 00:11:22以下のソースで実験してるんですが、
import java.io.*;
public class test{
static void func1(String a){
a = "10";
}
static void func2(String[] sa){
sa[0] = "10";
}
public static void main(String[] args){
String s = new String();
String[] sa = new String[1];
func1(s);
System.out.println(s); // 出力なし(ここは理解できる
func2(sa);
System.out.println(sa[0]);//10と出力(なんでー!?
}
0468デフォルトの名無しさん
05/02/07 00:13:15おまいは一回Javaから離れてC++で
ポインタと参照を使いまくれ
んでまた戻ってこい
0469443
05/02/07 00:21:39やっぱ道は険しいっすね。でも、がんばります。
そして戻ってきます!教えられる側になって。
0470デフォルトの名無しさん
05/02/07 00:28:50サーブレットで、トムキャットとmysqlを使用して
データベースの情報を参照するプログラムのサンプルを本から持ってきて実行したのですが
java.lang.NullPointerException at Sample203.doGet(Sample203.java:49) at javax.servlet.http.HttpServlet.service(HttpServlet.java:743) at 〜〜〜
というエラーが出てしまいます。
Sample.javaの49行目は
Statement statement=connection.createStatement();
なんですが、何が悪いんでしょうか...?
可能性でもいいので教えていただけませんか?
nullなわけないんですが...
0471デフォルトの名無しさん
05/02/07 00:31:12俺は会社に入ってから1からプログラミングを勉強したが、
6年経った今ではJavaの著書も何冊かあるし雑誌記事の依頼も来るし講演の依頼も来るようになった。
大学は文系の学部で情報処理やITとは何の関係もないよ。
IT系の専門学校など、自分で勉強できることを金取って教える詐欺のようにさえ見える。
0472デフォルトの名無しさん
05/02/07 00:33:25>nullなわけない
ホントにか?ちゃんと調べて言ってるんだよな?
0473デフォルトの名無しさん
05/02/07 00:39:22だと思うんですが...本をそのままうつしてますし...
でもヌルポインター〜〜が出るって事はヌルって事なんですよねぇ...
0474デフォルトの名無しさん
05/02/07 00:42:56クラスで実装するのってどうなんでしょうか?
0475デフォルトの名無しさん
05/02/07 00:51:19>>459や>>467はJavaで最もやってはいけないコーディングのひとつ。
こんなコード書く奴がいたらすぐクビにするから。そのつもりでな
実験ならもちろん構わんがね。
0476デフォルトの名無しさん
05/02/07 01:12:08参照型の配列変数を確保しただけです。
static void func2(String[] sa){
sa[0] = "10";
}
ここで初めてヒープにデータを作成。
System.out.println(sa[0]);//10と出力(なんでー!?
sa[0]に入っているアドレスを参照してオブジェクトにあくせす。
0477デフォルトの名無しさん
05/02/07 01:18:51自分の環境にあわせないといけないとこはあわせないといかんのに
本を丸写ししてるから正しいはずだってアホか?
データベースのURLかユーザ名かパスワードかが間違ってて
connectionが正しくオープンできてないんだよ。
0478デフォルトの名無しさん
05/02/07 01:20:26例外を静かに握りつぶす最悪のコードの悪寒
0479デフォルトの名無しさん
05/02/07 01:32:16Connection connection = null;
try{
connection = DriverManager.getConnection(略);
}catch(SQLException e){
}
こんな感じでスルーしてそうだな
0480デフォルトの名無しさん
05/02/07 01:51:06getConnectionで例外を投げずにnullを返す実装もあるぜ。
0481デフォルトの名無しさん
05/02/07 01:56:110482デフォルトの名無しさん
05/02/07 02:03:02書式指定でintからStringに変換するにはどうすれば良いのでしょうか。
何か一発で変換できるAPIはありますか?
J2SE1.4.2です。
0483デフォルトの名無しさん
05/02/07 02:08:39java.util.DecimalFormat
0484デフォルトの名無しさん
05/02/07 02:19:39「JTextFieldオブジェクトのテキストフィールドにマウスカーソルがある時に
キーボードのEnterを押すと、JButtonオブジェクトのボタンが押された時と同じ
働きをする」
というプログラムを書きたいのですが、まず「テキストフィールドにマウスカーソルがある時」
のとこから全くわかりません。
よろしくお願いします。
0486デフォルトの名無しさん
05/02/07 02:31:42java.text.DecimalFormatでできた!サンクス!!!
0487デフォルトの名無しさん
05/02/07 02:53:10Stringはちょっと特別だから、参照について調べる時はStringBufferでやってみな。
0488デフォルトの名無しさん
05/02/07 03:18:37ダイアログとコントロールの基本をもう一度見直せ
0489>>484(その1)
05/02/07 03:26:05import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class KeyTest extends JFrame implements ActionListener, MouseListener, KeyListener
{
Container cp;
JTextField mainField, stateField;
JButton writeButton, clearButton;
boolean mouseIn;
public KeyTest()
{
mouseIn = false;
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setBounds(10,10,400,100);
cp = getContentPane();
cp.setLayout(new FlowLayout());
mainField = new JTextField("",10);
mainField.addKeyListener(this);
mainField.addMouseListener(this);
stateField = new JTextField("Out",10);
writeButton = new JButton("書く");
clearButton = new JButton("消す");
writeButton.addActionListener(this);
clearButton.addActionListener(this);
cp.add(mainField);
cp.add(stateField);
cp.add(writeButton);
cp.add(clearButton);
this.setVisible(true);
}
0490>>484(その2)
05/02/07 03:27:15if(event.getSource()==writeButton) write();
else if (event.getSource()==clearButton) clear();
}
private void write(){
mainField.setText("hoge");
}
private void clear(){
mainField.setText("");
}
public void mouseEntered(MouseEvent e) { mouseIn = true; stateField.setText("In");}
public void mouseExited(MouseEvent e) { mouseIn = false; stateField.setText("Out");}
public void mouseClicked(MouseEvent e) {}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
public void keyPressed(KeyEvent e){
if(mouseIn && e.getKeyCode() == KeyEvent.VK_ENTER) write();
}
public void keyReleased(KeyEvent e) {}
public void keyTyped(KeyEvent e){}
public static void main(String[] args){
JFrame frame = new KeyTest();
}
}
0491デフォルトの名無しさん
05/02/07 03:35:24やっちゃいけないと思うけどswap()したいときってどうするのが
正解でつか?
0492デフォルトの名無しさん
05/02/07 03:44:54public static void main(String[] args) {
String s1 = "1";
String s2 = "2";
Object[] o1 = new Object[] { s1 };
Object[] o2 = new Object[] { s2 };
System.out.println("swap前");
System.out.println("o1[0]=" + o1[0]);
System.out.println("o2[0]=" + o2[0]);
swap(o1, o2);
System.out.println("swap後");
System.out.println("o1[0]=" + o1[0]);
System.out.println("o2[0]=" + o2[0]);
}
public static void swap(Object[] o1, Object[] o2) {
Object tmp = o1[0];
o1[0] = o2[0];
o2[0] = tmp;
}
}
0493492
05/02/07 03:52:29まぁ、こんなコードありえないけどな。
必要な場面もないだろうし。
0494470
05/02/07 03:53:18ありがとうございます!!
たしかにユーザとパスワードのところが空欄になっていたので
rootにしたら動きました!!本当にありがとうございます。
プログラムなんて初めてなものであほな事言ってすみませんでした。
本ではmysql使うのにわざわざrootとか書いてなくても色々できるみたいですが、
うちの環境では出来ないみたいで...
理由は僕にはよく分からないのでrootを付け足して色々本からぱくって行こうと思います。
ありがとうございました。
0495デフォルトの名無しさん
05/02/07 03:55:48凄く的外れな回答してる気がするんだが
0496デフォルトの名無しさん
05/02/07 04:25:03参照の値渡し→引数の参照先を変えても渡した側には反映されない
参照渡し→引数の参照先を変えると渡した側にも反映される
ってことですか?
0497484(その1)
05/02/07 05:01:45import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class TextFieldEnter extends JFrame implements ActionListener{
JTextArea tArea;
JTextField mainField;
JButton writeButton;
public TextFieldEnter(){
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setBounds(100,100,500,400);
tArea = new JTextArea();
tArea.setEditable(false);
mainField = new JTextField("",30);
writeButton = new JButton("書く");
JPanel pn = new JPanel();
pn.setLayout(new FlowLayout());
pn.add(mainField);
pn.add(writeButton);
Container cp = getContentPane();
cp.setLayout(new BorderLayout());
cp.add(pn, BorderLayout.SOUTH);
cp.add(tArea, BorderLayout.CENTER);
cp.add(new JScrollPane(tArea), BorderLayout.CENTER);
try{
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
SwingUtilities.updateComponentTreeUI(this);
}catch(Exception e){}
mainField.addActionListener(this);
writeButton.addActionListener(this);
this.setVisible(true);
}
0498484(その2)
05/02/07 05:03:03if(e.getSource() == writeButton || e.getSource() == mainField){
write();
}
}
private void write(){
String str = mainField.getText();
if(!str.equals("")){
tArea.append(str + "\n");
mainField.setText("");
}
}
public static void main(String[] args){
JFrame frame = new TextFieldEnter();
}
}
0499デフォルトの名無しさん
05/02/07 10:07:15確かにそうだが、参照渡しで渡されたクラスが参照している
データまで反映されるかどうかは状況による。
0500デフォルトの名無しさん
05/02/07 11:38:41Vectorでささっと検索してみたところ、「CoffeeMaker」なるものがヒットしたので早速インストールしてみたんですが、
コンテナが勝手にサイズ変更し始め高さ-2となって、「いわゆるタイトルバーだけ」になってしまうという謎の現象がおこり、
使い物になりません。
これ、自分だけなんだろうか_| ̄|○
ちょっと他のPCでも試して見ます。
0501デフォルトの名無しさん
05/02/07 11:45:59なぜSun謹製のNetBeansを使わないのかね?
Eclipse+Pluginでもいいけど。
0502デフォルトの名無しさん
05/02/07 11:51:30ぬあっ。。。そんなものがあったとは・・・
今まで馬鹿正直にエディタでGUI組んでました_| ̄|○
多謝。
0503デフォルトの名無しさん
05/02/07 16:04:37お願いします。
0504デフォルトの名無しさん
05/02/07 16:07:40Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Robot robot = new Robot();
BufferedImage image = robot.createScreenCapture(new Rectangle(screenSize));
0505デフォルトの名無しさん
05/02/07 16:08:41ttp://www.hcn.zaq.ne.jp/no-ji/javamemo/java_awt_Robot.html
0506デフォルトの名無しさん
05/02/07 16:19:320507デフォルトの名無しさん
05/02/07 16:30:17それだとビデオカード二枚差とかのマルチディスプレイに対応できんと思われ。
0508デフォルトの名無しさん
05/02/07 17:00:55GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice[] gds = ge.getScreenDevices();
あとはnew Robot(gds[i])を全部回ればOKかな。
0509デフォルトの名無しさん
05/02/07 17:04:22取得して、それをint型に入れたいです。
また、クラスライブラリ(であってるかな・・・?)を、一つ一つ細かく説明してるサイトってありますか?
まだまだクラスを覚えられなくて・・・
よろしくお願いします。
0510デフォルトの名無しさん
05/02/07 17:08:07netbeans.jp落ちてない?入れん。
0511デフォルトの名無しさん
05/02/07 17:08:28http://java.sun.com/j2se/1.4/ja/docs/ja/api/index.html
0512デフォルトの名無しさん
05/02/07 17:16:58GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice[] gds = ge.getScreenDevices();
Rectangle bounds = gds[0].getDefaultConfiguration().getBounds();
for(int i=1;i<gds.length;i++){
bounds = bounds.union(gds[i].getDefaultConfiguration().getBounds());
}
Robot robot = new Robot();
BufferedImage image = robot.createScreenCapture(bounds);
で良いのでは?
0513デフォルトの名無しさん
05/02/07 17:49:59以下がゲームの必要事項です。
スタートボタンを押すとロボットとHOMEをランダムで格子状のステージに配置します。
HOMEはプレイヤーにはわからないようにします。
ロボットはキーボード操作でマスを上下左右に移動できます。(斜めはなし)
上=I, 下=M, 右=L, 左=Jのキー配置です。
ロボットが一マス動くごとに1ドルのコストがかかり、それを計算して最終的にトータルコストを表示します。
ロボットが一マス動くごとにステージをアップデートしてHOMEまでの距離を表示します。
ロボットがHOMEについた時点でゴールです。
ゴール後ウィンドウをポップアップさせてトータルのコストとリプレイするかしないかを表示します。
アプレットとgridLayoutを使って作ります。
以上です。
どなたかできる方いますか?簡単ですかね?
0514デフォルトの名無しさん
05/02/07 18:01:080515デフォルトの名無しさん
05/02/07 18:02:570516デフォルトの名無しさん
05/02/07 18:09:280517デフォルトの名無しさん
05/02/07 18:30:44>参照の値渡し→引数の参照先を変えても渡した側には反映されない
これはプリミテイブ型の引数の場合
>参照渡し→引数の参照先を変えると渡した側にも反映される
参照型はアドレスがコピーされるのでアドレス先はヒープに
オブジェクトがあるので、そのオブジェクトの内容は変更されます。
0518デフォルトの名無しさん
05/02/07 18:44:38JPanel panel1 = new JPanel(); // 下を透過させる為にJPanel使用
panel1.setOpaque(false); // 透過モードにする
Graphics g = (Graphics2D) panel1.getGraphics();
// とりあえず透過色で全消し
g.setColor(new Color(255, 255, 255, 0));
g.fillRect(0, 0, 100, 100);
// 半透明な赤でライン描画
g.setColor(new Color(255, 0, 0, 128));
g.drawLine(0, 0, 100, 100);
// 今のラインを透過色で消したい
g.setColor(new Color(255, 255, 255, 0));
g.drawLine(0, 0, 100, 100);
↑ここが効きません、アルファを同じ128にすると赤はなくなりますが
白い半透明になってしまいます
g.setCompositeで合成モードを色々変えても期待する動作にはなりませんでした
要は「アルファ値0で上書き」したいだけなのですがアドバイスお願いします
0519デフォルトの名無しさん
05/02/07 19:43:55アルファ値0で塗りつぶすと、どうなると思っている?
0520デフォルトの名無しさん
05/02/07 19:45:260521デフォルトの名無しさん
05/02/07 19:46:08JRE同梱でカヴァー
0522518
05/02/07 19:54:29透明色を上から塗っても色は変わらないというのは分かりますが・・・
ではレイヤー概念のあるペイントアプレットの消しゴムは
どのように実現しているのでしょうか?
0523デフォルトの名無しさん
05/02/07 20:37:44あってもおかしくないと思うのですが、探してもないということは
ないんですかね
0524デフォルトの名無しさん
05/02/07 21:16:34Java はインタプリタ型じゃないから標準では eval は無い。
インタプリタやら実行時にバイトコードにコンパイルしたりするものやらがあるので自分が気に入ったもの使え。
0525デフォルトの名無しさん
05/02/07 21:19:47探しても見つからないのは存在しないからなのか?
それとも自分の探し方が悪いのか?
0526デフォルトの名無しさん
05/02/07 22:48:43Windows 環境で java コンパイラのダウンロードが出来ないのですが、どうすればよろしいのでしょうか?
ぐぐってそれらしきものを見つけてリンクを辿ったら
ttp://java.sun.com/j2se/1.4.2/ja/install-windows.html
にたどり着いたのですが、肝心のファイルのダウンロードが出来ません。
どうすればよろしいのでしょうか?
0527デフォルトの名無しさん
05/02/07 22:51:19http://java.sun.com/
ガンガレ
0528デフォルトの名無しさん
05/02/07 22:52:26>>1も読めない人にプログラミングは無理だ,諦めろ
0529デフォルトの名無しさん
05/02/07 23:06:31J2SE SDK のダウンロード
0530デフォルトの名無しさん
05/02/07 23:11:13>実行時にバイトコードにコンパイル
是非にそれを教えてください、お願いします
>>525
ないことはなかったんだけど
こんなん
ttp://www.ht.sfc.keio.ac.jp/~tailor/dragon/api/drg/eval/Eval.html
0531526
05/02/07 23:21:34>>528 さんのおっしゃる通りでした。お騒がせしましたm(_ _;)m
>>529さん、>>530さん、すみませんでした。
0532デフォルトの名無しさん
05/02/07 23:26:13>>528の言うとおりだって分かってるならプログラミングやめろよ。
ダウンロードしたって事はやる気だろ。
無理って書いてあるのに。
何が「おっしゃるとおりでした」だ厨房
0533デフォルトの名無しさん
05/02/07 23:30:330534デフォルトの名無しさん
05/02/07 23:33:08生暖かく冷やかしときゃいい。
0535デフォルトの名無しさん
05/02/07 23:44:25死ね
>>534
死ね
0536デフォルトの名無しさん
05/02/08 00:00:330537デフォルトの名無しさん
05/02/08 01:02:07tf = TextField("",20);
add(tf);
このようにテキストフィールドをアプレットに貼り付けたとき、
テキストフィールドの位置を座標で指定したいのですが
どうすればいいのでしょうか?
よろしくお願いします。
0538475
05/02/08 01:15:10swap(a, b) したい場面でのa, bってのは9割方リストの要素。
だからほとんどの場面で swap(collection, indexA, indexB); で事足りる。
(だからCollections#swap(List,int,int)というメソッドは既にある)
どうしてもswap(ref a, ref b)したければ、
展開してtmpを使うか、
class ObjectRef<E> { E ref; }みたいなものを作るか
のどちらかしかない。
>>492はクビな
0539デフォルトの名無しさん
05/02/08 02:42:46java 座標指定 でぐぐったりしてないね。
0540デフォルトの名無しさん
05/02/08 02:47:460541513
05/02/08 04:03:33java始めてようやくアプレットで四角とか絵をかけるようになっただけの自分にはきついっす。
gridLayoutの使い方だけはわかるんですけどね・・・。
どうしたらロボットがgridの上をキーボード操作で動いてくれるのだろう・・・。汗
0542デフォルトの名無しさん
05/02/08 04:04:280543デフォルトの名無しさん
05/02/08 14:42:39宿題なら宿題スレに行けば、回答プログラムがくるかもしれんよ
0544デフォルトの名無しさん
05/02/08 14:53:29学生のなにがいけないんだい?
研究しながらバイトしてどこが悪いんだい。
0545デフォルトの名無しさん
05/02/08 15:02:30社会を甘く見るな。
0546デフォルトの名無しさん
05/02/08 16:01:51以下のソースで、どこがおかしいのでしょうか?
String str1;
TextField tf;
Button bt;
public void init(){
tf = new TextField("",30);
bt = new Button("開始");
add(tf);
add(bt);}
public void actionPerformed(ActionEvent arg0) {
bt.setLabel("中止");
str1 = tf.getText();
}
インポートなどのソースは省きました。
よろしくお願いします。
0547デフォルトの名無しさん
05/02/08 16:16:560548デフォルトの名無しさん
05/02/08 16:49:21使わずにやる方法がわかりません、どなたか教えてください
0549デフォルトの名無しさん
05/02/08 16:55:09そんな釣りには誰もひっからないぞ。
0550デフォルトの名無しさん
05/02/08 17:01:010551デフォルトの名無しさん
05/02/08 17:01:520552デフォルトの名無しさん
05/02/08 17:02:560553デフォルトの名無しさん
05/02/08 17:05:150554デフォルトの名無しさん
05/02/08 17:07:360555デフォルトの名無しさん
05/02/08 17:10:14万単位のファイルのあるディレクトリでやると非常に重くなるわけですが、軽く処理する方法とかありませんか?
ファイルは一つずつ全て内容を確認し、その結果によって次の処理に入ります。(他のファイルと比べたりはしません)
今のプログラムだと、「ディレクトリのファイル全てを取得→確認」になって、間に時間差があるのがもったいないです。
0556デフォルトの名無しさん
05/02/08 17:12:04java.lang.Characterのこと?それともたんなるcharのこと?
まずはそれからだ。
0557デフォルトの名無しさん
05/02/08 17:16:11フィルタかけてリストとってったらどうだろう?
0558デフォルトの名無しさん
05/02/08 17:18:16for文で回すって一つの要素づつ変換していくってことですか?
0559デフォルトの名無しさん
05/02/08 17:19:55ファイルの一覧を別のファイルに保存しておくとか?
0560デフォルトの名無しさん
05/02/08 17:25:45その通り。これでいいだろ。
String[] a = { "abc", "def", "ghi" };
char[][] b = new char[a.length][];
for ( int i = 0; i < a.length; i++ ) {
b[i] = a[i].toCharArray();
}
0561デフォルトの名無しさん
05/02/08 17:26:29どういう状態から最終的にどういう形にしたいのかちゃんとかけよ。
例.String[] stringsをchar[] charsにしたいとか。
0562デフォルトの名無しさん
05/02/08 17:30:21Char t[] て形にしたいです
0563デフォルトの名無しさん
05/02/08 17:33:40char[]になればいいんだな?char[][]じゃなくて。
その場合はString[]の先頭からつめて一つの配列になればいいんだな?
0564デフォルトの名無しさん
05/02/08 17:35:49じゃあ、StringBufferでいいじゃん。
StringBufferが嫌なら、
String[] a = { "abc", "def", "ghi" };
StringWriter b = new StringWriter();
for ( int i = 0; i < a.length; i++ ) {
b.write( a[i] );
}
char[] c = b.getBuffer().toString().toCharArray();
0565デフォルトの名無しさん
05/02/08 17:37:08PDFをつくりページ数を○/○って感じで出したいと思ってるのですが
分子の方は $V{PAGE_NUMBER} で出るんですけど、分母の全ページ数の出し方がわかりません
デフォルトで $V{PAGE_COUNT} というのがあり、これがページ数と思うのですが
いくらページがあっても0のままです、どなたかわかりませんか?
よろしくおねがいします
0566デフォルトの名無しさん
05/02/08 17:38:51だからString[]の要素を一つの配列にするわけにはいきません
0567デフォルトの名無しさん
05/02/08 17:42:18どうしたいんだよ?char[][]ってことか?
それともchar[]のListか?すごいイライラするんですけど。
0568デフォルトの名無しさん
05/02/08 17:43:200569デフォルトの名無しさん
05/02/08 17:47:00String[] a = { "abc", "def", "ghi" };
List list = new ArrayList();
for(int i=0;i<a.length;i++){
list.add(a[i].toCharArray());
}
}
質問の仕方が下手すぎるせいでスレを無駄にした。
0570デフォルトの名無しさん
05/02/08 17:49:59ぬっころすよ?
char[][]でダメな理由がわからん。
ほれ。お前クソだから、取り出す方でも悩むと思ったので、そっちも書いてやったよ。
String[] a = { "abc", "def", "ghi" };
List b = new ArrayList( a.length );
for ( int i = 0; i < a.length; i++ ) {
b.add( a[i].toCharArray() );
}
for ( Iterator i = b.iterator(); i.hasNext() ) {
char c[] = (char[])i.next();
}
0572デフォルトの名無しさん
05/02/08 17:56:060573デフォルトの名無しさん
05/02/08 17:59:37むしろ俺が釣ってたんだよ!
0574デフォルトの名無しさん
05/02/08 18:03:42重要なのはここがJava質問・相談スレであることなのだが
0575デフォルトの名無しさん
05/02/08 18:05:36雑談スレかと思ったぜ。
0576デフォルトの名無しさん
05/02/08 18:11:50ありがとうございます。
ただ、現在ならJDK1.5の形式で書いてもらうと嬉しかったのですが・・・
0577デフォルトの名無しさん
05/02/08 18:12:25それぐらい自分でやれハゲ
0578デフォルトの名無しさん
05/02/08 18:15:03それにしてもイライラするとかお前クソだからとかぬっころすとか
偉そうな口聞いてる割には、前バージョンのコード書いてくるなんて
0579デフォルトの名無しさん
05/02/08 18:18:230580デフォルトの名無しさん
05/02/08 19:55:310581デフォルトの名無しさん
05/02/08 19:57:37好きなだけコピペしる。
0582デフォルトの名無しさん
05/02/08 19:58:530583デフォルトの名無しさん
05/02/08 20:12:450584デフォルトの名無しさん
05/02/08 20:46:40どういう教育機関だよ?
大学では教えてくれないところもあるし
授業にJavaを使うことがあっても
Servlet/RDBMS関係のプログラミングを教わることは僅かで
ほとんど独学だぞ。
0586デフォルトの名無しさん
05/02/08 20:53:04> だから、その独学ってのは、正規の教育機関(大学、メジャーな専門学校)
> による手ほどきがあって、初めて成り立つって事です。
> 勿論、講義内容だけで終わらせてしまってはダメです。これは当たり前です。
> 一からの独学では独りよがりになってしまい、本当の力は身につかないって
> 事です。何事も基本が大事ですからね。
それは言い過ぎだぞ。大学じゃ教わることは限られている。
ネットを使って独学するか実際にプログラマとして仕事をしたほうが学習速度が速い。
ネットなら@IT, メーリングリスト、Slashdot, Wiki, Blog, 掲示板などでJavaに関する最新情報
が手に入りやすい。Jakarta関係はネットで得たほうが効率的だ。
大学の教授でApache Struts, BeehiveやMaven, Hibernate, Spring Framework, Ant, Eclipse, JBossのことを知っている香具師は
ごく僅かだし大学でJavaの研究している香具師は大抵、Java言語そのもの、VMの研究ばかりしている香具師が多く
応用や実践で役立つ情報は得にくい。
0587デフォルトの名無しさん
05/02/08 20:56:00> プログラマには何より総合的な知識が要求される。
> JAVAプログラマは標準APIという指針があるから、まだ
> 救いようがあるとはいえ、独学だと手付かずのAPIも多くなるだろう。
そういう香具師もいるだろうけど経験を積み、最新情報を常にチェックして
新技術を実際に使ってみて試してみることができる奴ならいそういう
事態に陥ることは少ないと思うぞ。
独学だと手つかずのAPIってたとえばどういうAPIだ?
0588デフォルトの名無しさん
05/02/08 21:18:06普通にJavaプログラミングしてるだけでは使わないであろうAPIという意味ならいろいろありそうな悪寒
0589デフォルトの名無しさん
05/02/08 21:18:480590デフォルトの名無しさん
05/02/08 21:45:24RMIじゃない?
0591デフォルトの名無しさん
05/02/08 22:40:530592デフォルトの名無しさん
05/02/08 22:49:44・awtやSwingといったGUI全般
・JDBC方面
・utilとかlangとかコア
・XMLまわり
・JavaSound
・I/O
といったところだな
0593デフォルトの名無しさん
05/02/08 22:56:19アタリをつけて探せるようになれば一人前。
全部丸暗記しようとする奴はアホ
0594デフォルトの名無しさん
05/02/08 23:13:08GUIを弄りたくてSwingを先に覚えて、そこから少しずつJAVAを知ってったけど
これは駄目パターンなのかな
0595デフォルトの名無しさん
05/02/08 23:16:33最終的に理解できたのならいいとおもわれ
でもSWTからはじめるってのは勧めにくいかも
0596デフォルトの名無しさん
05/02/08 23:19:49Swing使ってれば必然的にクラスの継承やメソッドのオーバライド、
インタフェースの使い方などを覚えるはず(というか覚えないと無理?)
なので、それでうまくいったのなら良し。
乗り物だの動物だの、実感の湧かないクラスばかり作ってるよりはずっと有意義だよ。
0597594
05/02/08 23:28:30まぁ、確かに実感のわかないというかイマイチわかりにくいクラスをプロンプトで
動かしてるよりはいいかなと思ってる。
最初はアプレットだったけど。
ただ、俺はまだまだ初心者の領域ダケドナー
0598デフォルトの名無しさん
05/02/08 23:31:020599デフォルトの名無しさん
05/02/08 23:32:26for(int i=0; i< hoo[].length; i++)
{
if(hoo[i].isBar()) hoge.add(hoge[i]);
}
こんなことした場合、forから抜けたときに Vectorの hoge に追加した hoo[i] は null を返すようになるんでしょか。
0600デフォルトの名無しさん
05/02/08 23:42:23イテレータ使わんの?
0601デフォルトの名無しさん
05/02/08 23:46:08a=1; b=a; とやったら a は 1 じゃなくなるんですか?
>>600
何がいいたいのかわからん。
0602デフォルトの名無しさん
05/02/08 23:47:32そのSwingの学習を正規の教育機関の講義でやったのなら無問題だが、
独学だとやや難があるかもしれない。
0603デフォルトの名無しさん
05/02/08 23:51:12何を訳の分からんことを
0604デフォルトの名無しさん
05/02/08 23:52:44このスレで Swing を正規の教育機関の講義でやった
香具師ってどのくらいいるのよ?
0605デフォルトの名無しさん
05/02/08 23:58:23学べてない事が多い。ただコンポーネントを表示&操作だけに特化する
恐れがある。
0606デフォルトの名無しさん
05/02/09 00:00:16しょうもない妄想してる暇があったらオープンソースのソフトでも書いて社会に貢献しろ
0607デフォルトの名無しさん
05/02/09 00:00:21>>乗り物だの動物だの、実感の湧かないクラスばかり作ってるよりはずっと有意義だよ。
そういう考えが危険だという良い見本だ。
0608Java初心者です
05/02/09 00:12:33メソッドのオーバーロードについてなんですが、インターフェイスを以下のようにして
interface Answering{
void recording();
void playback();
}
インターフェイス実装してみたところ
class Phone implements Answering{
String str;
public void recording(){
System.out.println("録音メッセージをお願いします");
}
public void playback(String str1){
str=str1;
System.out.println("「"+str+"」というメッセージを受け取りました");
}
}
playbackメソッドをオーバーロードできなかったので、インターフェイスのメソッドをvoid playback(str1)としたらうまく
いったんですが、オーバーロードの際は、引数もかかなきゃだめなんでしょうか?
0609デフォルトの名無しさん
05/02/09 00:17:330610デフォルトの名無しさん
05/02/09 00:19:01インタフェースで定義しているのとは別の引数でメソッドをオーバーロードしたという話だろ?
0611608
05/02/09 00:22:040612デフォルトの名無しさん
05/02/09 00:24:44そしたら何で引数の型も必要なのかわかる。
0613608
05/02/09 00:41:08アドバイスありがとうございました。
あと、void playback(str1)じゃなくてvoid playback(Stirng str)ですねorz
0614デフォルトの名無しさん
05/02/09 02:43:22public class keinData {
public static void main(String[] args) {
String dt;
InputStreamReader input=new InputStreamReader(System.in);
BufferedReader in=new BufferedReader(input);
while (true) {
try {
dt=in.readLine();
if (dt!=null) {
System.out.println(dt);
}
} catch (IOException e) {
// TODO: handle exception
System.out.println("io error.");
}
}
}
}
0615614
05/02/09 02:44:40public class keinData {
public static void main(String[] args) {
String dt;
InputStreamReader input=new InputStreamReader(System.in);
while (true) {
try {
dt=Integer.toString(input.read());
if (dt!=null) {
System.out.println(dt);
}
} catch (IOException e) {
// TODO: handle exception
System.out.println("io error.");
}
}
}
}
0616614
05/02/09 02:46:38今読んでる参考書には[1]のプログラムが書いてあったんだけど自分で[2]も書いてみたら同じ結果になりました
参考書・javadoc読んでもバッファリングして効率化してるって言ってるけどよく解らないよ
どなたかもう少し噛み砕いて教えてください
0617デフォルトの名無しさん
05/02/09 02:59:16プログラムはreadline()で改行まで読み込むが、実は裏ではとっくにもっとたくさん読み
終わってる。次のループではたぶんメモリから読むだけだ。
2のコードは、input.read()で1バイト読んで、処理して、次のループで1バイト読んで、
処理して、を繰り返す。上記例だとSystem.inだけど、InputStreamReaderが読んでる
ものがディスク上のファイルであろうと、ループの度に1バイトだけ読んで、処理して、
次のループで1バイトだけ読む。1のコードならディスクから一気にバッファサイズ分
だけ読んでしまうので速い。
0618614
05/02/09 03:37:43有難うございます、とても解りやすいです
一つお聞きしたいのですが、バッファのサイズというのは個々のPC・つまりハードに寄るのでしょうか?
それともjavaプログラムで制御できるのですか?
0619デフォルトの名無しさん
05/02/09 04:45:52そんなあなたにjava.io.BufferedReader
使い方はjavadocを読んでね。
もっと細かく言えばハードウェアもバッファ持ってたりする。
HDDのキャッシュサイズがカタログに載っていると思うけど、あれもバッファの一種。
0620デフォルトの名無しさん
05/02/09 04:46:49java.io.BufferedReader(Reader, int sz) ←このszがバッファのサイズ
0621デフォルトの名無しさん
05/02/09 05:00:33度々回答していただいて有難うございます
i/ostream,ioパッケージ自体がちょっと初心者にはとっつきにくいです(俺が馬鹿だからかも)
でももう一度javadoc見たらさっきはポックリだったのが今度は理解できるようになってきた
本当に感謝です
0622デフォルトの名無しさん
05/02/09 06:59:43腐ったオブジェクト歯垢ライブラリの見本だね。
0623デフォルトの名無しさん
05/02/09 08:40:05まわりくどいって どの辺が?
ちなみに、腐ってないIOライブラリって何?
0624デフォルトの名無しさん
05/02/09 08:40:24C++なんかと比べるとね。
あ、でも例外は投げすぎかも。
0625デフォルトの名無しさん
05/02/09 08:52:43例外はあんなモンだと思うが。
削れるとしたら available() ぐらいでは?
0626デフォルトの名無しさん
05/02/09 09:31:570627デフォルトの名無しさん
05/02/09 10:51:56それだけでなくJAVA2前のAPIの設計の悪さ、
ある設計者の不評ぶりは有名だけどね。
0628デフォルトの名無しさん
05/02/09 10:58:250629デフォルトの名無しさん
05/02/09 11:12:17その後の処理をどうしたらいいの?
0630デフォルトの名無しさん
05/02/09 11:16:440631デフォルトの名無しさん
05/02/09 14:53:35単に例外処理書くのが面倒なんだろうけどさ……
InputStream でも OutputStream でも Writer でも Reader でも
nio の Channel だって close() で例外食らう可能性あるだろ。
close() で例外投げない方が凄い設計だぞ。
0632デフォルトの名無しさん
05/02/09 15:01:19C言語の fclose() で失敗した時とかと同じ処理。
0633デフォルトの名無しさん
05/02/09 16:06:26例えば、0.1に0.01をfor文で足していくとき、
0.11
0.12
0.130000000000000001
0.14
と、途中で0が多く付いた値(上の0の数は適当)が現れます。
原因と対策を教えて下さい。
0634デフォルトの名無しさん
05/02/09 16:18:19doubleでは数を2進表現で保持していますが、このとき、小数部分を
1/2, 1/4, 1/8, 1/16, 1/32, 1/64, 1/128 ... (2のn乗分の一)の和として
表している(おおざっぱな説明)ので、正確な値にならないのです。
対策:
内部で値を10進表現のまま管理している BigDecimal クラスを使いましょう。
0636デフォルトの名無しさん
05/02/09 16:39:00>>605
Servletから始めたが
振り返ってみれば確かに独学では初期は酷いソースコードになりがちだ。
だが独学でも独学に訓練を重ね新しい技術を学びたい、
開発効率を高めたい、より大きなものを作りたいという強い願望があれば
なんでも学ぶことができる。
他人に負担をかけるようなコーディングや設計も、職場で開発に携わる、
若しくは将来、オープンソースコミュニティで
活躍したいという意識も多少あれば、やらなくなる。
0637デフォルトの名無しさん
05/02/09 16:49:52お前はJDBCでclose()に例外をつける理由がわかってないな。
この無知め
0638デフォルトの名無しさん
05/02/09 17:47:23// 山の量の処理
}catch(Exception e){}
0639デフォルトの名無しさん
05/02/09 17:53:01例えば自分でSystem.out.write(byte buf[], int off, int len)メソッドのテンプレを作ろうとして
System.out.println()メソッドのテンプレを参考に以下のように書いてみました
「名前」
syswri
「パターン」
System.out.write(${word_selection}${},${},${});${cursor}
でもこれだと引数が3つとも同じ値で反映されてしまいます
どうしたらうまくいくでしょうか?
そもそもこれって何かのプログラミングなんですかね
もしかしてこれが正規表現ですか?
0640デフォルトの名無しさん
05/02/09 18:22:36String dore;
String mona = "( ´∀`)";
というデータがあるとして、外部から
dore="mona"
という文字列をもらった時に"( ´∀`)"を出力したいわけですが
こんな俺はどうしたらよいですか?
0641デフォルトの名無しさん
05/02/09 18:29:50if(dore.equals("mona"))
System.out.println(mona);
0642デフォルトの名無しさん
05/02/09 18:34:47なるほどそうすればよいのですか
thanks( ´∀`)
0643デフォルトの名無しさん
05/02/09 18:47:38>>637
データベースでもIOでもいいが、close()で例外が出たとして
その時どういう処理を書くんだ?
せいぜいログに出力するか、後で再度のクローズを試みる為にストック
しておくか、致命的ケースならアプリケーション終了フラグを
立てる位だろうが。
close()は、大抵、finallyブロックで記述するからその中にさらに
例外ブロックがあるのは構造上美しくない。
close()は、boolean値を返すようにした方が良い。
0644デフォルトの名無しさん
05/02/09 19:01:46> 立てる位だろうが。
サーバサイドでも通信時の close() に失敗したなら
プロトコルによっては再送信するとか選択肢があるし
クライアントサイドなら他にも選択肢はいっぱいある。
> close()は、boolean値を返すようにした方が良い。
read() write() で IOException 投げるのに
close() だけ boolean を返すのは綺麗な設計とはいえない。
0645デフォルトの名無しさん
05/02/09 19:08:05close()がboolean返してもtry、catchの代わりにif文書くだけなんだけどね。
一部の阿呆はエラーが出てても無視できるようになって喜ぶのかもしれんが。
0646デフォルトの名無しさん
05/02/09 19:23:38クライアントサイドなら一杯あるって具体的にはなんだ?
どう考えてもサーバサイドよりは、極論すれば無視できる
ケースに思うが。
>>645
じゃあ、アンタはclose()の例外処理に何を書いてるんだ?
0647デフォルトの名無しさん
05/02/09 19:28:11クライアントサイドでclose()の例外を無視するのは駄目すぎだろ。
正常に処理を完了できてない事をユーザにダイアログなりで通知すれ。
0648デフォルトの名無しさん
05/02/09 19:31:50サーバサイドのソケットcloseが失敗したら、クライアントに
再送信するってのも意味不明だ。
closeの例外は、双方の通信間の不備じゃなく完全にこちら側のハードウェアの
問題だから、相手側への影響もないし(closeする事自体が関係あるが)
自己完結する例外のはずだが。
憶測で語ってないだろうか?
0649デフォルトの名無しさん
05/02/09 19:34:34あんな考えなしのすべて例外処理すりゃいいってアホ仕様でも
Javaだからというだけで平気で肯定できるんだ
0650デフォルトの名無しさん
05/02/09 19:37:17はぁ? InputStream とか OutputStream みたいな汎用クラスの設計がどーとか言ってるんでしょ?
例えば BufferedOutputStream の close() で例外食らっても
実際にはソケットの write() で例外食らっている可能性もあるわけなんだが。
0651デフォルトの名無しさん
05/02/09 19:39:48まぁ、close() だけ boolean 返せば良いなんて阿呆な仕様よりは余程マシだからねぇ。
0652デフォルトの名無しさん
05/02/09 19:42:13> クライアントに再送信するってのも意味不明だ。
誰もクライアントなんて言ってないような。
サーバサイドで他のサーバと通信する事も全く考慮しないの?
0653デフォルトの名無しさん
05/02/09 19:43:170654デフォルトの名無しさん
05/02/09 19:46:44Javaは●バカ用言語●なんだよ
こうゆう時は例外処理が無意味だとか
こういう時は例外処理がパフォーマンス落とすとか
バカに判断できる分けないでしょ
いいんだよ常に例外処理するってルールに機械的に従ってりゃ
バカは頭使わなくていいの
0655デフォルトの名無しさん
05/02/09 19:48:41その通り。>>654みたいなバカに判断させるとプロジェクトがガタガタになるから判断させないようにするわけさ。
0656デフォルトの名無しさん
05/02/09 19:48:44Java厨になりすますなよ
Javaやってるやつで
Javaが全ていいなんて言ってるやつ見たことないよ
0657デフォルトの名無しさん
05/02/09 19:49:25どっちにしろおなじだ。
close例外は完全にこちら側の問題であり自己完結するものだから
(closeする事自体は他に影響がある)、通知以外の目的には
する必要がない。他サーバーへの通知なら、>>643に書いた
ログ出力と同じようなものだろうが。
0658デフォルトの名無しさん
05/02/09 19:51:39またその例外処理でもするの?≧∇≦ブハハハハハ
0659デフォルトの名無しさん
05/02/09 19:53:16>>650 で既に自己完結できない例が出てるが。
0661デフォルトの名無しさん
05/02/09 19:57:56Java以外だったらどうするんだ?
ただ例外と言うだけで特別じゃないだろうが
0662デフォルトの名無しさん
05/02/09 19:58:26普通処理する
0663デフォルトの名無しさん
05/02/09 19:58:50FilterOutputStream の close() と
BufferedOutputStream の flush() とか flushBuffer() をみてみろ。
BufferedOutputStream で close() すると間接的に write() 呼ぶから。
0664デフォルトの名無しさん
05/02/09 20:02:42今度はBufferedOutputStreamの実装が……とか言い出す悪寒。
0665デフォルトの名無しさん
05/02/09 20:04:41close()の前にflush()を呼べばいいんじゃない?
と初心者意見を述べてみる
0666デフォルトの名無しさん
05/02/09 20:06:24それは仕様とは無関係。
close() する際に flush() されてないデータが残ってたら例外投げるって「仕様」にするとかなら話は別だが。
0667デフォルトの名無しさん
05/02/09 20:07:05こうゆう時は例外処理が無意味だとか
こういう時は例外処理がパフォーマンス落とすとか
バカは頭使わなくていいんだよ
常に例外処理するってルールに機械的に従ってりゃいいの
0668デフォルトの名無しさん
05/02/09 20:17:29一つも挙げられないとは、お話にならなかった。
0669デフォルトの名無しさん
05/02/09 20:19:47いいんでないの、それで。細かいこと考えなくても、きちんとルールに従っていれば、誰でもそこそこの物を作れ
るのが、Java の良い所なんだし。たとえ意味のない例外処理でも、常に記述してれば、ソースに統一性があっ
て良いジャン。
0670デフォルトの名無しさん
05/02/09 20:22:090671デフォルトの名無しさん
05/02/09 20:27:07細かいことは気にするな
0672デフォルトの名無しさん
05/02/09 20:31:00とかく例外の重要性を叫んでただけってオチか。
頓珍漢な例ばかり出してるし。
0673デフォルトの名無しさん
05/02/09 20:32:34それはオマエの頭か書き方が悪いだけ。
0674デフォルトの名無しさん
05/02/09 20:33:46具体的なコード出しても駄目だろうな。たぶん。
0675デフォルトの名無しさん
05/02/09 20:36:59バカ?
0676デフォルトの名無しさん
05/02/09 20:37:260677デフォルトの名無しさん
05/02/09 20:40:20コメントがいちいち挿入されてるコードと同じ感じだ。
昔は、コメントが出来るだけ散りばめられたソースが良いなどと
された事があったが、すぐにすたれた。
例外処理の逐次記述ももう少し経てば同じように淘汰されて
いくだろうよ。
0678デフォルトの名無しさん
05/02/09 20:40:34他にも特定フォーマットに従ってターミネータを出力するとかイロイロ考えられると思うんだが。
それとも terminate() ってメソッド作って close() の前に必ず terminate() 呼ばなければならない仕様にするの?
0679デフォルトの名無しさん
05/02/09 20:45:54static void close(InputStream in){try{in.close();}catch(IOException e){ /*ログ出力とか適当に*/ }}
static void close(OutputStream out){try{out.close();}catch(IOException e){ /*ログ出力とか適当に*/ }}
とかみたいなユーティリティメソッド作れば良いだけでは?
0680デフォルトの名無しさん
05/02/09 20:47:21>>676
BufferedOutputStream(正確にはFilterOutputStreamだが)を
代表例みたいに挙げる時点でもうお話にならないって事。
バッファを使っても、close()時にflushしないストリーム(したらマズイ)
の実装は幾らでもある。
0681デフォルトの名無しさん
05/02/09 20:48:39スタックトレースの一番上のエレメントが
ユーティリティメソッドになるから
どこで例外発生したか分からなくなって駄目とか言われる悪寒。
0682デフォルトの名無しさん
05/02/09 20:50:58そりゃ典型的な下手な仕様だ。つーかもういいよ。
アンタのキャリアは分かった。
0683デフォルトの名無しさん
05/02/09 20:52:30close() 時に flush() するクラスが一つでもあるなら、
close() 内の flush() が投げる IOException をそのまま投げられる方が良い。
(たった一つだけだと言い切れるなら他にやりようもあるかもしれんが、>>678 の言うような事もあり得る)
その程度すら分からないのに仕様があーだこーだ言うなんてお話にならないって事。
0684デフォルトの名無しさん
05/02/09 20:54:11捨て台詞? もう終わり?
0685デフォルトの名無しさん
05/02/09 20:58:17アナタもclose()はfinallyプロックに書くだろうが、close()の実装が
flush()を伴うものであっても、そのflush実装機能をfinally節で使うのが
良いコードだと思うか? tryブロックの最後にflush()と一言書く方が
どう考えても自然だ。これは基本レベルの話だ。
0686デフォルトの名無しさん
05/02/09 20:59:20まだある。
0687デフォルトの名無しさん
05/02/09 21:01:42実装やら、実際にどう書くかは全く関係ないよ。
仕様の話をしてるんだから。
つまり、close() する際に flush() されてないデータが残ってたら
close() が(例外投げるなりして)失敗する仕様を支持するわけね?
0688デフォルトの名無しさん
05/02/09 21:05:29FilterOutputStream の close() は flush() は呼ぶけど、write() 呼ぶとは限らんよなぁ……
0689デフォルトの名無しさん
05/02/09 21:07:54不必要な例外は書かないって前提条件があって
必要な例外をもれなく記述するって事だろ
必要か不要かも考えずに全部書くという前提なら
最初から通用しない話だよな
0690デフォルトの名無しさん
05/02/09 21:11:110691デフォルトの名無しさん
05/02/09 21:12:07丁度通信の話が出てたから、終了パケット云々の実装の話をしてるかと
思って、もっと詳しく聞きたいと思った訳だが違ったのなら、もう
0692デフォルトの名無しさん
05/02/09 21:12:43InputStream とか OutputStream みたいな汎用クラスの設計に関して言えば
必要、不必要の何れもありうるなら必要と考えて設計すべき。
不必要な場合に面倒だからといって必要な場合を切り捨てるのは最初から通用しない話だよな。
0693デフォルトの名無しさん
05/02/09 21:12:50これJavaの鉄則。悪い事でもない。
0694デフォルトの名無しさん
05/02/09 21:14:26その通り。ついでに言えば、>>693が素人だと言う事を自覚できれば満点。
0695デフォルトの名無しさん
05/02/09 21:15:42仕様の話をしてるなら、なおさらストリームのclose()は
flush()、write()を伴うものではない。
標準APIのFilterOutputStreamはあくまで一つの実装であり
ストリームの話ではない。
0696デフォルトの名無しさん
05/02/09 21:17:18個々のケースにおいて適切に例外の必要・不必要を判断できる優秀な技術者
ではなくて
決められたルールに従ってルール通り記述できるある程度の技術者
だと思うんだが
そういう意味で例外処理は常に記述するで正解
0697デフォルトの名無しさん
05/02/09 21:17:56close() 時にバッファリングしていたものを吐き出す(よーするにflush()する)APIなんて他にもいっぱいあるんだがね?
ストリームに関して言えば非常に一般的な実装と言える。
それを無視するのは現実を見ない暴論と言って良いね。
0698デフォルトの名無しさん
05/02/09 21:19:38そうそう。
本当に「優秀な技術者」だったら良いけど実際には「自分が優秀な技術者だと思い込んでる奴」の場合が多いからね。
0699デフォルトの名無しさん
05/02/09 21:20:59そだね。本当に優秀な技術者なら、こんな阿呆な事で時間潰したりせんだろうし。
0700デフォルトの名無しさん
05/02/09 21:21:25一杯あるのなら、具体クラス名を幾つか出してくれ。
0701デフォルトの名無しさん
05/02/09 21:22:570702デフォルトの名無しさん
05/02/09 21:23:09例えばC言語の fclose() もそうだしね。
0703デフォルトの名無しさん
05/02/09 21:26:130704デフォルトの名無しさん
05/02/09 21:27:23じゃあ、アナタは例外ブロックに具体的に何を書いてるのか?
ログ出力、リトライの為のストック、close()→returnの外に
実例を出してくれ。
初心者は例外処理を常に書けば安全というが、例外処理の中身は
意外と難しいぞ。
0705デフォルトの名無しさん
05/02/09 21:29:43close() throws IOException {}だけで中身からっぽだった。
0706デフォルトの名無しさん
05/02/09 21:29:44一杯あるのなら、具体クラス名を幾つか出してくれ。
0707デフォルトの名無しさん
05/02/09 21:30:00えーとさ、俺は>>696じゃないけどさ、
参考にするから実例を出してくださいとかみたいに頼むべきなのでは?
>>704 だとなんの実例が欲しいのかもサッパリわからんが。
0708デフォルトの名無しさん
05/02/09 21:31:35一般的であることを示せれば良いので fclose をあげるだけでじゅうぶんだな。
今度は、close()時にflush()するのが一般的でない事をそっちが示してくれ。
0709デフォルトの名無しさん
05/02/09 21:35:58ログのclose()でまたエラー
それでもまた例外処理を行うのが普通というJava厨の常識は
ほかの言語も知っているJava技術者に受け入れられるでしょうか?
0710デフォルトの名無しさん
05/02/09 21:37:38ログに書き込むたびにイチイチopen()とclose()を繰り返すのか……
それはJava厨の常識じゃなくて>>709の常識だろう。
0711デフォルトの名無しさん
05/02/09 21:38:290712デフォルトの名無しさん
05/02/09 21:40:18logging用API使わんで自力でログ出力やってるってトコロに突っ込むべきなのでは?
0713デフォルトの名無しさん
05/02/09 21:41:35話はそれるが、そういうシステムあったなあ
0714デフォルトの名無しさん
05/02/09 21:43:33Javaのエラー処理がどれ程優秀でどれほど必要か書いてある
アンチは少しは勉強しろよ
0715デフォルトの名無しさん
05/02/09 21:45:15ちなみにまともなJavaの書籍って何?
0716デフォルトの名無しさん
05/02/09 21:49:340717デフォルトの名無しさん
05/02/09 21:53:59ちょっと異常だと思ったんだが
このスレには先輩みたいな人がいっぱいいるのか?
俺の方が異常だったってオチ?
0718デフォルトの名無しさん
05/02/09 21:54:01一つ一つ例外クラス作るのも大変だし、
かといってkeyに埋めるのも判別が面倒
どういうときに例外クラス作る?
0719デフォルトの名無しさん
05/02/09 21:55:00http://www.amazon.co.jp/exec/obidos/ASIN/4894711850/
みたけど2000年でちと古いし、レビューの評価もそんなに高くないね。
0720デフォルトの名無しさん
05/02/09 21:55:01例外処理書いてないところで例外が起きたら、
ユーザはどうすんだ?サポセンはどう対応すりゃいいんだ?
0721デフォルトの名無しさん
05/02/09 21:56:47全ての例外処理を記述って具体的にどーゆー状態なんだか?
メソッド呼び出しするごとにthrows節に書かれてる例外を全部キャッチしてるとか?
0722デフォルトの名無しさん
05/02/09 21:57:200723デフォルトの名無しさん
05/02/09 21:57:380724デフォルトの名無しさん
05/02/09 22:00:370725デフォルトの名無しさん
05/02/09 22:00:59みんな使ってる?
0726デフォルトの名無しさん
05/02/09 22:02:14例外の種類が分かれば何らかの対処できるなら面倒でも全部区別する。
種類が分かってもログ出力ぐらいしか対処できないなら一定規模でまとめる、とか。
どんだけ時間を割けるかとか、好みとか、プロジェクトの規約次第だけど。
0727デフォルトの名無しさん
05/02/09 22:05:02なるほど。やっぱそなんだね。
なんかモヤモヤがすっきりした気がしますた。ありがとう
0728デフォルトの名無しさん
05/02/09 22:06:55最近は
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/lang/Thread.UncaughtExceptionHandler.html
とか使うので出番が無いような。1.5からだっけ?
0729デフォルトの名無しさん
05/02/09 22:21:17お前な、DBでclose()におかしな挙動がおこると
何が起こるかわかってないな。
ほうっておくとDB接続プールがいっぱいになって
新規DB接続ができなくなって大変なことになるっちゅーに。
文句がある奴はO/R-Mappingを使え。
0730デフォルトの名無しさん
05/02/09 22:27:30> 例外が逐一書かれてるコードが見づらいのは確かだ。
> コメントがいちいち挿入されてるコードと同じ感じだ。
> 昔は、コメントが出来るだけ散りばめられたソースが良いなどと
> された事があったが、すぐにすたれた。
> 例外処理の逐次記述ももう少し経てば同じように淘汰されて
> いくだろうよ。
おめぇ、throwの使い方もデザインパターンによるテクニックも知らずに
たかがclose()のためだけに淘汰されると思っているなら相当のアフォだぞ。
0731デフォルトの名無しさん
05/02/09 22:39:53「素人は例外をすべてExcepitonだけでキャッチする」
をJavaの鉄則にしようとしているヴァカもいるがな。
0732デフォルトの名無しさん
05/02/09 22:40:480733デフォルトの名無しさん
05/02/09 22:51:15なんかいかにもプログラミング覚えて自信満々の学生みたいでワラタ
0734デフォルトの名無しさん
05/02/09 22:51:25IOException以外の例外は無視されるのか。
それだけじゃIOExcepiton以外どんな例外がでるのかわからんので駄目だな。
staticも癖があるのでもっとましな方法が欲しいところだな。
0735デフォルトの名無しさん
05/02/09 22:52:01http://jakarta.apache.org/commons/io/apidocs/org/apache/commons/io/IOUtils.html#closeQuietly(java.io.OutputStream)
0736デフォルトの名無しさん
05/02/09 22:53:15アフォがアフォにアフォ言うてワラタ
0737デフォルトの名無しさん
05/02/09 22:57:250738デフォルトの名無しさん
05/02/09 22:58:04てかコイツはレベル低すぎ
0739デフォルトの名無しさん
05/02/09 22:59:08>>696ではないが
catch内にロガークラスで例外内容をログ出力させることはよくあるぞ。
とくにServetでは。
下手にコンソールに例外スタックトレースを出力させると
顧客がビビってバグやエラーがまだ残っていると勘違いされて
過剰に反応するからな。
例外部分だけは顧客に見せびらかさないように
顧客向けではない別のヶ所にログ出力させている。
0740デフォルトの名無しさん
05/02/09 23:01:49久々にこんな自作自演を見たが
こんなスレに自作自演してまでJava叩きに必死になってるチミのほうがレベル低そうだな。
そんなにJavaが嫌いならこんなスレを見ることもなかろうに。
Javaよりも例外処理に優れた言語とやらがあるならそれを示してみればいいのに
それすらもできない。そうなると君の方がイタイ奴なのだが。
0741デフォルトの名無しさん
05/02/09 23:03:34書籍以外にもIBMのサイトでもJavaの例外処理の優秀さが説かれているわけだが。
馬鹿には読んでもわからんだろうが。
0742デフォルトの名無しさん
05/02/09 23:05:38すべての例外処理を記述とはたとえばどんな記述かね。
例をソースコードで示してみるんだな。
catchをする必要がないのに無駄にcatchしているのか
throwsする必要がないのに無駄似throws宣言をしているのか
といった程度のものか?
0743730
05/02/09 23:05:58>>677
自演乙。図星突かれたからって悔し紛れのバカレスしなくていいよw
余計笑っちゃうから。
つーかclose()の例外なくせの素人丸出しの意見には笑ったね。
特にデータベースじゃ、例外処理の書き方が明暗を分けるっつーのに。
例外処理は一つ一つ書かないと、万が一の事態にも備えられなくなる。
よくExceptionでまとめてるコードを見るけど、即訂正させるよ。
それがパラグラフ単位でやってたらさらに話にならないね。
コード書く前にデザパタの勉強しろっての
0744デフォルトの名無しさん
05/02/09 23:07:42IDEを使えばドラッグしたソースコードにキャッチすべき例外をすべて付加した
try-catch文を自動的に追加してくれるわけだが。
0745デフォルトの名無しさん
05/02/09 23:11:28>>743は>>730になりすましたつもりになってるみたいだが
煽ろうとしていること釣ろうとしていることが見え見え。
0746デフォルトの名無しさん
05/02/09 23:13:58自演乙。反論できないから釣りにしたいのだろけどね。
>>643 >>677くんw
0747デフォルトの名無しさん
05/02/09 23:14:01自分が自作自演していることを隠すために他人が自作自演しているように
見せかけ自分はさらに他人が自作自演しているところを叩くように
見せかけることで疑われにくくしようとする作戦のようですが
どうやら詰めが甘いようですねCがつく言語を崇拝している誰かさん(w
0748デフォルトの名無しさん
05/02/09 23:14:510749デフォルトの名無しさん
05/02/09 23:18:16争わせようとしているらしい。
子供っぽくておかしい。
C#厨?はそんな幼稚なことまでして自分の例外処理の話題で出た自分の失言を隠したいんだろうか。
0750デフォルトの名無しさん
05/02/09 23:27:57被害妄想かね、自作自演だとか、ドトネト厨だとか。
プログラムとか以前に、社会生活はちゃんと、おくれてるのかね?
0751デフォルトの名無しさん
05/02/09 23:30:36最凶のバカ出現
0752デフォルトの名無しさん
05/02/09 23:32:470753デフォルトの名無しさん
05/02/09 23:48:20学習方法なんて人によると思うが?
それともJavaに絶対の学習方法があるのか?
0754401
05/02/10 00:07:56ありがとうございます。やっと解決出来ました(o^o^o)!!
しばらく忙しくてなかなかJavaの勉強に手が回らなかったのですが
次の段階の勉強が出来そうです。
ありがとうございましたo(^o^)o
0755デフォルトの名無しさん
05/02/10 00:12:59わざわざドトネト厨と言い出し、さらには自作自演と言い出すあたり
おまいさんが自作自演のドトネト厨であることは図星だということがわかってしまったよワッハッハッハ。
社会生活はちゃんと送っているか? その言葉はそっくりそのままおまいさんにかえしてあげようファッハッハッハッハ。
おまいさんのそのレスは
Javaの例外処理を批判することでJavaスレを荒そうとしたことがバレまいとしたいがためのアンチの最後の言い訳
であることはとっくのとうに見抜かれているのだよ。
さて、Javaよりも優れた例外処理を持つ言語を紹介して貰おうか?
速くググっ来たまえ。
0756デフォルトの名無しさん
05/02/10 00:14:04どんな学習方法に悩んでいるのだ?
目的によって学習方法は異なるぞ。
0757デフォルトの名無しさん
05/02/10 00:35:250758デフォルトの名無しさん
05/02/10 00:35:41実際問題、close()でIOExceptionが発生したらどうすればいいの?
正常系(例外が発生せずに)finally節内のclose()が呼ばれた時と、
既にIOExceptionが発生してfinally節に入ってclose()が呼ばれた時の
2ケースがあると思うんだけど。
恥ずかしながら5年くらいJavaで飯食ってるけど、ログに出す以外の対処をしたことがないんだ。
例えばファイルIOの場合は?あるいはソケット通信の場合は?
0759デフォルトの名無しさん
05/02/10 00:50:20throwとthrowsで外部に任せればいい。
それか>>735を使えばいい。
0760デフォルトの名無しさん
05/02/10 01:22:52例外飛んできたときの対応ってどーすりゃいいんでしょう。
JDBCドライバ依存のリカバリ処理になるのかな?
0761デフォルトの名無しさん
05/02/10 01:23:53ちょっと質問です。
close()とは関係ないんですが、
コレクション系の
Hashtable/HashMap/HashSet
って何がどう違うのでしょうか?
天才な方教えてください。
最初に断っときますが、私は馬鹿ですんで聞きました。
インタフェース、スーパークラスが違うとか馬鹿な意見はやめてくださいね。
では、お願いします。
0763デフォルトの名無しさん
05/02/10 01:51:36HashtableはHashMapと同等だが、Hashtableは最初っからMT-Safeになってる。
ただ、HashtableはCollection APIが出来る前の遺物だから、いまから使う理由はない。
HashSetはハッシュテーブルじゃない。名前から明らかなように集合だ。
ただ、集合の実装にハッシュを使ってるので、
「ある要素がその集合に含まれているかどうか」
の判定がO(1)でできる。
0764デフォルトの名無しさん
05/02/10 02:07:25補足。
Hashtableはnullを入れられないが、HashMapはnullを入れられる。
>HashtableはCollection APIが出来る前の遺物だから、いまから使う理由はない。
同意。
HashSetはMapではなく、Setインタフェースのコレクション。
重複しない要素を保持するためにある。SQLでいうところのDISTINCTだな。
0765デフォルトの名無しさん
05/02/10 02:24:01このスレ見て、Java信者の一部がバカ、ってだけだと思った。
0766デフォルトの名無しさん
05/02/10 02:29:30例外処理中にエラーが発生しても
さらに例外処理なんてしないのが普通だからな
0767デフォルトの名無しさん
05/02/10 02:49:560768デフォルトの名無しさん
05/02/10 03:43:49boolean で返ってくるとなにがいいのか良く分からん。
0769デフォルトの名無しさん
05/02/10 04:47:350770デフォルトの名無しさん
05/02/10 04:48:43訂正 手段が
0771デフォルトの名無しさん
05/02/10 16:04:54キャッチしてログって処理を続ける。
処理が続行できないならthrowでぶん投げる。
ステートメントのクローズでエラーがでるなんてのは、
前のコードにバグがあってエラーが放置されているか
DBがいかれているかのどちらかなので、
throw new RuntimeException(e)する
0772デフォルトの名無しさん
05/02/10 16:27:56JDK のダウンロード
↓
Windows Offline Installation, Multi-language (jdk-1_5_0_01-windows-i586-p.exe, 49.78 MB)
Windows Online Installation, Multi-language (jdk-1_5_0_01-windows-i586-p-iftw.exe, 221.26 KB)
をDLし、ネットにつながってないパソコンでインストールしましたが
ネットがつながってないとjavaって使用不可能ですか?オフラインだと何も表示されない・・・
0773デフォルトの名無しさん
05/02/10 16:36:45はぁ?
0774デフォルトの名無しさん
05/02/10 16:41:11カスはこのスレこないでいいから。
0775デフォルトの名無しさん
05/02/10 18:11:07そのページにインストール手順へのリンクがあるだろ?読んだのか?
読んでもわからないのなら2ちゃんで説明を聞いてもわからない可能性が大きいからあきらめろ
0776デフォルトの名無しさん
05/02/10 18:27:13JDKが入ってるJAVAの入門書でも買っとけ
>>775
屑は黙ってろ
0777デフォルトの名無しさん
05/02/10 20:27:310778デフォルトの名無しさん
05/02/10 21:54:060779デフォルトの名無しさん
05/02/10 22:25:44Windows Offline Installation, Multi-language (jdk-1_5_0_01-windows-i586-p.exe, 49.78 MB)
を落としインストしたいパソに入れればいいんじゃないかなぁ…
0780デフォルトの名無しさん
05/02/10 22:42:22http://subversion.tigris.org/
0781デフォルトの名無しさん
05/02/10 22:52:08jarにまとめる。
0782デフォルトの名無しさん
05/02/11 00:01:01そのインストーラーをフラッシュメモリーを使用してネットがつながってないパソコンでインストールしました。
インストール時は「同意する」以外いじっていません。
インストール終了後、[java web start]のショートカットがデスクトップに。
ためしに起動してみたところ、オンラインだと何かしら表示されるのに、オフラインだと何も表示されず。
オンラインだと何かしら表示されましたが、よくわからないので放置。
オンライン、オフライン共にコマンドプロンプトで[javac]とも試しに入れてみましたが、どうやら開発環境が整ってないようで。
とりあえず、もう一度それをインストールしてみます。
説明書は字が小さいのが気になってあまり読んでません。
0783デフォルトの名無しさん
05/02/11 00:06:26ぽかーん
path通さんとjavacと入れても起動しないぞ
0784デフォルトの名無しさん
05/02/11 00:45:38ぽかーん
入門書にも書いてありましたが、「ちょっとよくわからないしいいや」とか思っていました。
これから説明読んで設定してきます。アドバイスありがとうございました。
0785デフォルトの名無しさん
05/02/11 02:24:030786デフォルトの名無しさん
05/02/11 03:33:230787デフォルトの名無しさん
05/02/11 03:35:140788デフォルトの名無しさん
05/02/11 03:37:350789769
05/02/11 05:18:06出来ました。ありがとうございます。
参考にしたページ
http://www.h5.dion.ne.jp/~tuyano/JavaTutor/JavaTutorZ3.html
もう一つ質問です。
*.exeみたく*.jarファイルそれぞれにアイコンを適応する方法を教えてください。
0790デフォルトの名無しさん
05/02/11 05:21:16a += 1 は a = a + 1 を簡略化した書式
0791デフォルトの名無しさん
05/02/11 08:12:50http://jsmooth.sourceforge.net/
0792デフォルトの名無しさん
05/02/11 08:24:25String "文字列";
とコーディングしますよね。
自分の場合その文字列の中に""がありまして、String "A""B";みたいに書くと
エラーがおこってしまって困っています。
表現したい文字列の中に""がある場合はどういう処理を行えばよいのでしょうか?
0793デフォルトの名無しさん
05/02/11 08:25:35\"
0794デフォルトの名無しさん
05/02/11 08:37:52いろいろためしましたけど、うまくいきません
ぜひ簡単な例を示して頂けないでしょうか
0795デフォルトの名無しさん
05/02/11 08:49:52「君は"ほげほげ"だ。間違いない。」って文章を表示したい時に
System.out.println("君は"ほげほげ"だ。間違いない。")
ってするとエラーになる。どうすればいいの?
そういうときは特別な文字列を無効化するエスケープシーケンス \ を使おう。
具体的には
System.out.println("君は\"ほげほげ\"だ。間違いない。")
ってすればいいのさ
じゃあ「君は\ほげほげ\だ。間違いない。」を表示したいときは?
System.out.println("君は\\ほげほげ\\だ。間違いない。")
これでOK
上はエスケープシーケンスの正しい意味ではないよ、もっと詳しく知りたかったらぐぐろう。
0796デフォルトの名無しさん
05/02/11 08:52:195行目の「文字列」は「文字」に脳内変換ね。
0797デフォルトの名無しさん
05/02/11 09:14:48普通に考えたら多分無理…
ShellExecuteさせて起動させるだけのフロントエンドっぽいものを
cなどで作ってやればいいと思う
0798デフォルトの名無しさん
05/02/11 12:03:02作れないことはないとは思いますが、どうやんの?
0799デフォルトの名無しさん
05/02/11 12:05:51どういうものかサクっと教えてYO!
0800デフォルトの名無しさん
05/02/11 12:15:17それはJAVA学習者にとって最大の難関であろう。
一見捕らえどころがなく、理屈だけでは全く理解できない。
参考書を読んだだけでは概念すら掴む事はできない。
最大の疑問はそれが何の役に立つのか?だろう。これは当然だ。
未経験者はインターフェースが何の為に存在するのか、さっぱり
分からない。開発者め、訳ワカランのを作りやがってと恨む事
だろう。インターフェースの理解はただ現場でのコーディングの
積み重ねによってのみ得られる。大規模なプログラムを組みにつれ
インターフェス無しでは、ソフトウェアデザインが到底不可能な事に
自然と気付き、いつの間にかそれを多用し使いこなしている自分に
気付く事だろう。
0801デフォルトの名無しさん
05/02/11 12:24:40exe ファイルを作りたければ Excelsior JET とか GCJ みたいな AOTコンパイラを使え。
0803デフォルトの名無しさん
05/02/11 12:31:38exeしかアプリ実行できないとおもってるのかね
0804デフォルトの名無しさん
05/02/11 13:27:17"実行"の捕らえ方によるだろ
0805デフォルトの名無しさん
05/02/11 13:30:370806デフォルトの名無しさん
05/02/11 13:32:57置いてある
その他のOSのところに
0807805
05/02/11 13:42:50× その他のOS
○ 他のOS用
JAVA・JAVA Scriptと一緒にされてる上にアプレットなんかも
混じってる
ttp://www.vector.co.jp/vpack/filearea/other/java/index.html
0809デフォルトの名無しさん
05/02/11 13:57:43それを言うなら "実行" でなくて "アプリ" のとらえ方なのでは?
0810デフォルトの名無しさん
05/02/11 14:02:56なぜ?というのと同じ話だな
0811デフォルトの名無しさん
05/02/11 14:07:27それは単なる関連付けの話で
アプリを作る(== exeファイルを作る(?))のとは直接関係ないような。
0812デフォルトの名無しさん
05/02/11 14:09:18なぜ?
0813デフォルトの名無しさん
05/02/11 14:26:02jarファイルの実行と同じだろ
0814デフォルトの名無しさん
05/02/11 14:26:10しゅごいですね〜
0815デフォルトの名無しさん
05/02/11 14:41:36おまえも馬鹿なレスする奴と同じじゃねえか。
ドキュメントちゃんと嫁や
0816デフォルトの名無しさん
05/02/11 14:44:58(゚Д゚)ハァ?
Subversionのどこがぬるぽなんだ?
0817デフォルトの名無しさん
05/02/11 14:54:19その時間Tomcatがエラー出していたよ
0818デフォルトの名無しさん
05/02/11 15:04:13未だにCVS利用者が多いのか?
0819デフォルトの名無しさん
05/02/11 15:30:20C言語みたいに指数表現は出来ないのでしょうか?
0820デフォルトの名無しさん
05/02/11 15:33:26double型の扱いが間違ってintやfloat,longのままになっているか
計算ミスで無限になったか
ただのオーバーフローで桁が足りないかだけ。
オーバーフローするならBigDecimal使え。
0821デフォルトの名無しさん
05/02/11 15:37:21Infinity って出るのは計算結果が無限大になってるから。
ゼロ除算とか、大きすぎる値を扱ってオーバーフローするとかしたんしょ。
指数表現にしても無限大は無限大なので Infinity と表示されなければならない。
1.5以降ならprintf使えるのでC言語と同じ感覚で指数表現使えるよ。
0822デフォルトの名無しさん
05/02/11 15:41:46おお。累乗したときに、int型に入れてましたw
ありがとうございました。
0823デフォルトの名無しさん
05/02/11 16:18:58とりあえずJavaによるアルゴリズム事典を読むことをおすすめする。
オーバーフローを避けるテクニック、極力減らす計算方法が
Javaの素のソースコードで沢山載っている。
それと、数値計算も勉強しろ。
同じものを二回掛けてから1回割るなら
一回掛けるだけで終わるほうがオーバーフローが起きる
可能性は低い。そのことについてよくわかる。
0824デフォルトの名無しさん
05/02/11 16:34:22アルゴリズムを見るのはいいけどソースの質は最悪だよ。
0825デフォルトの名無しさん
05/02/11 16:40:51アルゴリズム辞典でソースの書き方を勉強しちゃう奴は読むのを止めた方が良いかも。
ソースを無駄にオブジェクト指向っぽくすると
本質に関係ないところでソースがでかくなるような。
0826デフォルトの名無しさん
05/02/11 16:53:59使いまわす方法ってないですかね。
ずっと保持し続けてほかのアプリケーションから
要求があった時にインスタンスを返す、みたいな。
インスタンスじゃなくて処理結果を返すだけでも
良いんだけど。
アプリ間の通信(?)ってソケットを使うしかないんですか?
0827デフォルトの名無しさん
05/02/11 17:09:280828デフォルトの名無しさん
05/02/11 17:23:37if(y==0){
return 1;
}else{
return x = x * func(x, y-1);
}
}
int func(int x, int y){
int value;
for(int i=0; i<y; i++){
value *= x;
}
return value;
}
とかかね。
0829デフォルトの名無しさん
05/02/11 17:25:17どうもありがとうございました!!
0830デフォルトの名無しさん
05/02/11 17:27:50RMI、Serialization、Prototypeパターンあたりで調べてみ。
0831デフォルトの名無しさん
05/02/11 18:38:41JSPをJava sourceにプレコンパイルしようと思い、http://jakarta.apache.org/tomcat/tomcat-4.1-doc/jasper-howto.html#Web%20Application%20Compilation を参考にbuild.xmlを書いたのですがJasperExceptionが出てしまいます。
原因を探りたいんですがコンソールに出るのが
----
Buildfile: build.xml
jspc:
[jasper2] 2005-02-11 06:23:09 - エラー: ファイル '/main.jsp' は次の例外を発生しました:
BUILD FAILED
/home/tomcat/build.xml:33: org.apache.jasper.JasperException: Error compiling /main.jsp
----
でもうちょっと詳しい情報がほしいのですがどうやればいいでしょうか?
ちなみに<jasper2>タグのverbose属性を9999に設定してもだめでした。
0832デフォルトの名無しさん
05/02/11 19:08:02というのを試しています。しかし、自分のコードではページの途中までしか表示されません。
import java.nio.ByteBuffer;
import java.nio.channels.Channels;
import java.nio.charset.Charset;
import java.net.URL;
import java.net.URLConnection;
public class Test2 {
public static void main(String[] args) throws Exception {
URLConnection conn = new URL("http://www.apple.com/jp/").openConnection();
int contentLength = 128*1024; //conn.getContentLength();
ByteBuffer buffer = ByteBuffer.allocate(contentLength);
Channels.newChannel(conn.getInputStream()).read(buffer);
buffer.clear();
CharSequence chars = Charset.forName("Shift_JIS").decode(buffer);
System.out.println(chars);
}
}
0833832
05/02/11 19:15:50毎回、実行されるたびに出力される長さは違うように見えます。
$ java Test2
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
(中略)
function loadRandomA() {
var Aurl = myArrayA[rand(A)-1];
docum
$
おそらくバッファについて理解していないか、それともうっかりミスをしているかだと
思いますが、なにか助言をいただけませんか。
それと、Content-Lengthヘッダが返されない時の適切なバッファの作り方も
教えていただければ幸いです。何回かに分けて読むのかと思うのですが…
0834デフォルトの名無しさん
05/02/11 19:22:55何も考えずvectorとかarraylistとか。
0835デフォルトの名無しさん
05/02/11 19:33:07EJBとか
0836832
05/02/11 19:46:24そういえばArrayListのソースコードとかは勉強になりそうですね。
InputStreamReaderを利用した方法は成功していて、この方法にも特に不満は
ないのですが、せっかくだから nio のやり方も知っておきたいです…。
0837デフォルトの名無しさん
05/02/11 19:52:27readの戻り値使ってまわさないの?
NewIO以前に旧IOでも同じことが必要だよ?
ただし、2回目以降とかローカルファイルはバッファの問題で一見問題なく動くように見えることもある
0839832
05/02/11 20:34:00あたりですかね。試した範囲でうまく行きました。
Wikiに書くほどのことなのか、微妙
ともあれ、お世話になっています。ありがとうございました。
0840きのぽ
05/02/11 23:33:28技術的なこととは関係なのですが。。インストール時に感じた素朴な質問です。
SUNのサイトでは英語以外には日本語版のみしかないのですがなぜでしょうか?
他にヨーロッパ言語や中国誤等が入っていてもおかしくないかと。
COBOLのように日本以外ではほとんどJAVAは普及していないのではないのかと
不安になるのですが。。。。
0841デフォルトの名無しさん
05/02/11 23:40:08英語が出来ないのは日本人ぐらいだって馬鹿にされてるだけかもよ?
0842デフォルトの名無しさん
05/02/11 23:40:53あなたのブラウザが日本語表示ができるとサーバーに教えたから
サーバーが日本語のページも送ってきた
http://www.ugtop.com/spill.shtml
サポート言語のところ
0843きのぽ
05/02/11 23:54:39吉田豊氏などJAVAの仕様制定に日本人が深くかかわってるのは知ってましたが。。
英語と日本語だけぽこっとダウンロードページにあるのってちょっと目を引いたのできになりました。
0844デフォルトの名無しさん
05/02/11 23:58:07exeファイルみたいに単独で実行できるようにしたいのですが
どのクラスを利用すればいいんでしょうか
0845デフォルトの名無しさん
05/02/12 00:13:31中国やインドではエンジニアと呼ばれる人間で英語できな人は
少数派だぞ。
0846デフォルトの名無しさん
05/02/12 00:17:01それでもサーバサイドだけなうえ、この程度だから、他の国では(以下略
0847きのぽ
05/02/12 00:52:30そ、そんな高度なことを。。
それでは日本にいるほかの国の人や海外で作業する時はこまりますね。。
>>845
海外で仕事する人は出来てあたりまえですが、日本人だってそれは同じです。
半年ほど台湾で仕事してましたが、国内で作業する人たちは英語できない人もいっぱいいましたよ。
むしろ英語できる人は給料いいみたいです。
>>846
やっぱりそうなんですか。。
なんだかCOBOLみたいに独自路線で行っちゃうのかもしれないですね。
解答していただいた方たち、どうもありがとうございました。
0848デフォルトの名無しさん
05/02/12 02:26:08別に高度じゃないでしょ。
それに多言語版もすぐ見つけられるし。
0849デフォルトの名無しさん
05/02/12 02:29:48あれってどうやってるんでしょうか
0850デフォルトの名無しさん
05/02/12 02:39:460851デフォルトの名無しさん
05/02/12 02:45:22ありがとうございました
0852デフォルトの名無しさん
05/02/12 04:10:27〜(何らかの処理)
packet=new DatagramPacket(byte buf[], int length)
〜(何らかの処理)
こういう場合ってpacketオブジェクトは一つしか生成されず
DatagramPaclet参照用のメモリも一つになりますよね?
0853プログラマ見習い
05/02/12 09:27:36DBへ登録処理を行なっているのですがなぜか処理されません。
何が原因なのでしょうか?
<%
String user_name = (String)session.getAttribute("user_name");
/* ここからDBへの登録処理 */
request.setCharacterEncoding("Shift_JIS");
Class.forName("org.gjt.mm.mysql.Driver");
Connection member_table = DriverManager.getConnection("jdbc:mysql://localhost/myservlet_db","root","1234");
Statement state = member_table.createStatement();
try{
int res = state.executeUpdate("insert into member_table set user_name=\"" + user_name + "\"");
}catch(Exception ex){
}
state.close();
%>
0854デフォルトの名無しさん
05/02/12 10:13:44例外を握りつぶさない。せめてこう書け。
}catch(Exception ex){
ex.printStackTrace();
}
話はそれからだ。これによりコンソールに表示される結果を見てからでないとわからん。
0855プログラマ見習い
05/02/12 10:27:02ex.printStackTrace();
を記述しもう一度アクセスしてみたのですが
ダイレクトにDOSでテーブルを覗くとやはり処理がされて
いませんでした。何が原因だと思われますか?
0856デフォルトの名無しさん
05/02/12 10:32:30スタックトレース晒せと言われる予感。
0857デフォルトの名無しさん
05/02/12 11:54:06Statement state = member_table.createStatement();
を
Statement state = member_table.createStatement(ResultSet.TYPE_FORWARD_ONRY,
ResultSet.CONCUR_UPDATABLE);
に
0858デフォルトの名無しさん
05/02/12 12:03:45マルチバイトキャラクタでこけるぞ
0859デフォルトの名無しさん
05/02/12 12:36:560860デフォルトの名無しさん
05/02/12 13:08:280861デフォルトの名無しさん
05/02/12 13:09:39>int res = state.executeUpdate("insert into member_table set user_name=\"" + user_name + "\"");
こいつもSQL Injectionされがちだからダメ。PreparedStatement使いなさい。
0862デフォルトの名無しさん
05/02/12 16:07:24そういうことやりたいならVBですな。
javaはクライアントサイドでは負け組なのです。
仕事じゃなくて、趣味とか個人的理由でやるなら、
SWTとかSwingのパッケージを使いなさい。
exeファイルみたいに単独では動かないです。
JREをいれてもらって、javawあたりで動かす。
eclipseとかjavaで出来たアプリも、nativeな言語で起動用の
exeをつくって、内部でJREのインスコフォルダ探して、
javaw Eclipseとかやってると想像。
想像で回答しました。教えてあげてください、えろいひと
0863デフォルトの名無しさん
05/02/12 17:17:04想像いくない
普通にJavaでGUIアプリ使えるし実用的だし仕事で使ってる
趣味こそ何の言語でもいいだろう
サイズは大きくなるがJREとセットにして配布すればインストールの手間もなく動く
どうせVBだって.NETだってランタイムが必須なんだしそれに比べれば
ランタイムをいやがるやつにもJavaは使わせることが出来る
GUIを本格的に作りこむならNetBeansが必須か
0864デフォルトの名無しさん
05/02/12 18:28:48>> javaはクライアントサイドでは負け組なのです。
> 普通にJavaでGUIアプリ使えるし実用的だし仕事で使ってる
> 趣味こそ何の言語でもいいだろう
もちろんJavaで出来ないとはいってないです。
ただ、仕事でGUIのクライアントアプリケーション作るとしたら、
生産性、要員の確保のしやすさ、単価を考えたら
Javaではないだろうと思いますな。
まあここは質問者の判断なので。
javaで作ったクラスを"java クラス名"とか指定させずに
起動したいというのが>>844の質問なんだけど、
そんなときはどうするのでしょう?
スクリプト書いてそれを実行させるの?
まあそれでもよいんだけど、
eclipseは、eclipse.exeという実行ファイルがあるけど、
exeはネイティブで作られていて、内部でjavaw クラス名を
やってるのかな?と想像してるんだけどそれは違うかな?
0865デフォルトの名無しさん
05/02/12 18:40:55仕事でSwingで作っている俺は一体・・・
VBは手間のからないコンポーネントでは非常に効率はいいものの
細かい動きをさせようとすると躓く
BCBやDelphiも同じような感じだけど、こちらはオーナー描画とか
比較的考慮されているために対応はしやすいか
Swingを理解していればNetBeansのほうがVBより生産性は上
VBと同じように配置したいのならNullレイアウトでいいし
もしかしてJavaだとGUIがぺたぺた貼り付けれないと思ってるのか?
EclipseVEは正直仕事では使い物にならないし、SWTサポートしてから
Swingやるきないようだし
要員の確保といってもVBが使えることという条件だけでは俺はださないからな
ぺたぺたはりつけてイベントにコードかけるだけのやつしかあつまらんし
.NETになっただけでお手上げのやつすらいる
同じ質問何度も繰り返してるけど、もう結論でてるし、そもそも
過去ログに何度も出てるし
あと、さっきから想像だけで勝手に判断するのやめれ
0866デフォルトの名無しさん
05/02/12 18:49:24gcj + SWT とかで作れば単独で実行できるファイルを作れる。
0867デフォルトの名無しさん
05/02/12 18:51:36>VBは手間のからないコンポーネントでは非常に効率はいいものの
>細かい動きをさせようとすると躓く
そんな事はない。VBは簡単なものから複雑なものまで自由自在に
GUI制作ができる。しかもJAVAの半分の工数でだ。
JAVAはレイアウトがダメだね。現場じゃVBの方がよっぽど重宝
されtるよ。一番働いてるのがVB使いというオチ。
JAVAは尊大なだけで、どうも使いどころがない。
0868デフォルトの名無しさん
05/02/12 19:01:58Swingと比べないほうがいいよ
Swingの機能の多さは異常なほどだ
0869デフォルトの名無しさん
05/02/12 19:04:36環境かえたらラベルがはみ出るとかそんなんばっか作ってくる。
正直Javaのレイアウト程度のことが理解できないやつはVBも
ちゃんと理解できてない。
0870デフォルトの名無しさん
05/02/12 19:06:07あれが便利と思わない人もいるんだね。
絶対座標が好きならヌルレイアウトでいいじゃない。
0871デフォルトの名無しさん
05/02/12 19:43:47・javaでGUIは作れる。それはSWTとかSwingとかのパッケージを使え。
・jdkで用意されているものではexeファイルは作れない。
GCJ等のAOTを使ったらできる(制限あり)>>801
また起動用スクリプトを提供したり、native言語で起動用のexeを
こしらえてもよいが、とにかくそんなことを検討する必要がある。
>>864-870(除く>>866)の結論
・eclipseのexeが何かは謎。想像で語るな。
・javaとvbでともにやろうと思えば何でもできる
・現実としてvb要員はjava要員より遙かに確保しやすく、単価も半額に近い
・Swingは実は高機能だ
・が、vb使えますというヤツは怪しい。疑ってかかれ
ということで。
0872デフォルトの名無しさん
05/02/12 19:46:37Microsoft Visual C++ 6.0
0873デフォルトの名無しさん
05/02/12 19:55:11jarからでもダブルクリックで起動するやん。。
何が不満なんだ?
0874デフォルトの名無しさん
05/02/12 20:40:220875デフォルトの名無しさん
05/02/12 20:55:47からっていうユーザがかなりを占めるから、逆にそのへんとJRE環境だけインストーラが
体裁を整えれば実体がexeかどうかなんて瑣末な話になるんだけどね。exeかどうかに
こだわるのって小物をちまちま配布してるフリーウェアかシェアウェアの作者ぐらいではないかと。
0876デフォルトの名無しさん
05/02/12 21:39:10>>844をちゃんと読め。
>単体で
0877デフォルトの名無しさん
05/02/12 22:01:41java入門書は「やさしいjava」↓
http://www.amazon.co.jp/exec/obidos/ASIN/4797319062/qid=1108213170/br=1-2/ref=br_lf_b_1/250-8460186-9581062
でおkですか?
やる気はあります
0878デフォルトの名無しさん
05/02/12 22:04:05>>873は単独で動かなくてもいいじゃん
どうせダブルクリックで動くからと言いたいんだろ
0879デフォルトの名無しさん
05/02/12 22:13:33GUI サンプルアプリ作って見せてやればいんでないの?
初心者ほど言葉での説明が難しいし。
0880デフォルトの名無しさん
05/02/12 22:36:580881デフォルトの名無しさん
05/02/12 22:41:360882873
05/02/12 23:00:42今時まともなアプリでexe一個で動くなんて珍しいだろ。
WindowsならカレントディレクトリのDLLもロードできるし。
SWT使ってもjarから直で起動できるぞ?
0883デフォルトの名無しさん
05/02/12 23:18:25jarから直起動させるとしたら、そのjarにはアイコンがついて
欲しくなるのが、エンドユーザの心理になると思うのだが、
jarに任意のアイコンってつけれるの?
javaの質問じゃない気配もあるが・・・
0884デフォルトの名無しさん
05/02/12 23:43:28細かいオプション指定とか出来ないし、いまいちだよね。
いまだとJavaの起動用ツールも既成のがあるし、インストーラー
作成ツールも手軽に手に入るしもうちょっと手をかければ
いいのになあ。NSISなんか使うと一見ネイティブとかわんないよね。
0885デフォルトの名無しさん
05/02/12 23:53:32たとえば、文字列に0〜9以外が使っていたらエラーと出す感じです。
0886デフォルトの名無しさん
05/02/12 23:59:08正規表現を使ってはどうでしょうか?
ttp://fumichan.zive.net/prog/Java/se020101.jsp
0887デフォルトの名無しさん
05/02/13 00:19:28おk
0888885
05/02/13 00:34:22ありがとうございます。
ひとつ聞きたいのですが、aaの変数5桁の文字列から、0〜9とA〜Zを使用しているかでしたら、
("[0-9A-Z]{5}", aa)
でよろしいのでしょうか?
調べるのに時間がかかってしまいました(汗
0889デフォルトの名無しさん
05/02/13 00:49:13やってみろって。
0890デフォルトの名無しさん
05/02/13 00:59:41( ・ω・)どうもです
0891デフォルトの名無しさん
05/02/13 01:10:050892853
05/02/13 01:14:10得にエラーは何も表示されてはいないようです。
>>857
書き換えて実行した所
下記の様なエラーが出ました。???何が原因なのでしょうか?
シンボル: 変数 TYPE_FORWARD_ONRY
場所 : java.sql.ResultSet の インタフェース
Statement state = member_table.createStatement(ResultSet.TYPE_FORWARD_ONRY,ResultSet.CONCUR_UPDATABLE);
^
エラー 1 個
>>861
SQL Injection なんて言う言葉の意味自体知りませんでした。
今ぐぐってやっと意味が分かりました。結構SQLも怖いですね(w
0893885
05/02/13 01:16:32やってみましたが、出来ません。
aa に A123* との値を入れています。
if(Pattern.matches("[0-9A-Z]{5}", aa))
これでif文に入ってくれませんでした。
分かりませんので訂正お願いします。
0894885
05/02/13 01:20:440〜9とA〜Z以外だったらですので、
if(Pattern.matches("[^0-9A-Z]{5}", aa))
として実行しています。
0895デフォルトの名無しさん
05/02/13 01:30:12TYPE_FORWARD_ONRY
を
TYPE_FORWARD_ONLY
に
0896デフォルトの名無しさん
05/02/13 01:30:32sunのどこかにDemoがあった。
0897デフォルトの名無しさん
05/02/13 01:33:40単にcommitしてないだけなんじゃないの?
0898デフォルトの名無しさん
05/02/13 01:34:58if(!Pattern.matches("[0-9A-Z]{5}", aa)) {
error
}
簡単にこうするべきでは。。。
0899885
05/02/13 02:13:37そうでした(汗
("![0-9A-Z]{5}", aa)) {
と変なとこに付けていました。。。
答えて頂いた方々ありがとうございました。
0900デフォルトの名無しさん
05/02/13 03:06:56>DatagramPacket packet=new DatagramPacket(byte buf[], int length,InetAddress address, int port);
>〜(何らかの処理)
>packet=new DatagramPacket(byte buf[], int length)
>〜(何らかの処理)
>こういう場合ってpacketオブジェクトは一つしか生成されず
>DatagramPaclet参照用のメモリも一つになりますよね?
オブジェクトは2つ生成されるが、
new DatagramPacket(byte buf[], int length,InetAddress address, int port);
こちらは、どの変数からも参照されていないのででガーベジコレクションの候補となり
自動的に回収されます。
0901853
05/02/13 10:20:15State文ではダメとの事でしたのでぐぐって PrepareState文 でコード
を記述し再チャレンジしてみたのですがやはりダメでした。。。
どうすればMYSQL上へ反映されるのでしょうか?
String aaa = (String)session.getAttribute("user_name");
PreparedStatement pre_state = member_table.prepareStatement("insert into member_table set user_name = ?");
pre_state.setString(1,aaa);
try{
pre_state.executeUpdate();
}catch(Exception ex){
ex.printStackTrace();
}
pre_state.close();
0902デフォルトの名無しさん
05/02/13 10:59:48("insert into member_table set user_name = ?");
を
PreparedStatement pre_state = member_table.prepareStatement
("insert into member_table set user_name = ?", ResultSet.TYPE_FORWARD_ONLY,
ResultSet.CONCUR_UPDATABLE);
に
0903デフォルトの名無しさん
05/02/13 11:07:13PreparedStatement pre_state = member_table.prepareStatement
("insert into member_table set user_name = ?");
を
PreparedStatement pre_state = member_table.prepareStatement
("insert into member_table (user_name) values (?);", ResultSet.TYPE_FORWARD_ONLY,
ResultSet.CONCUR_UPDATABLE);
に
0904デフォルトの名無しさん
05/02/13 11:15:03根拠はアンタの脳内ソースか?
自分はJAVAも使いこなせるを先に言っとくが、JAVAは本当に
帯に短したすきに流しだね。その冗長さに見合うだけの成果が得られない。
同じ開発ならより工数が少ない言語を使うべきだろう。
その冗長な言語を使うJAVAプログラマも増長してる。自分は
凄い言語使ってるんだぞって変な驕りがある。作る物は同じで時間と
労力をかけてるだけなのにね。一般アプリはVB,WEBアプリは
Perl、PHPで十分だ。JAVAは尊大なだけでメリットがない。
これは現場の意見だ。ここでVBを軽んじる輩はどうせ理屈先行の
学生なんだろうが、ちょっと大人気なかったかな。
0905デフォルトの名無しさん
05/02/13 11:16:50>自分はJAVAも使いこなせるを先に言っとくが
(^^;
0906デフォルトの名無しさん
05/02/13 11:16:590907デフォルトの名無しさん
05/02/13 12:48:000908デフォルトの名無しさん
05/02/13 12:49:41可読性の低下を招く恐れがあるため実装されていません。
0909デフォルトの名無しさん
05/02/13 12:49:420910デフォルトの名無しさん
05/02/13 12:57:49>これは現場の意見だ。ここでVBを軽んじる輩はどうせ理屈先行の
>学生なんだろうが、ちょっと大人気なかったかな。
ここは笑うところだよね?
0911デフォルトの名無しさん
05/02/13 12:59:53そこはオチだ。ツボは他にもたくさんあるぞ。
言ってみれば吉本新喜劇のような完成された笑いだな。
0912デフォルトの名無しさん
05/02/13 13:05:580913デフォルトの名無しさん
05/02/13 13:47:070914デフォルトの名無しさん
05/02/13 14:15:02ストリングにバックスペースのエスケープ文字 \b を付け足したのですが、
一文字削除されずに、 . 半角のピリオドが挿入されてしまいます。
これはどうしてか教えて下さい。お願いします。
0915デフォルトの名無しさん
05/02/13 14:20:19それC言語でも文字が消えるとは限らないぞ
0916デフォルトの名無しさん
05/02/13 14:22:54レスありがとうございます。
subStringで一文字除くことにします。
0917デフォルトの名無しさん
05/02/13 14:32:48HTML内からimgタグで呼び出したいので一枚の画像として出力させたいのですが
画像を結合して出力可能(response.getOutputStream()に出力)なデータを得る
ところまでが上手くいきません。
ご教授ください。
0918デフォルトの名無しさん
05/02/13 14:50:48うまくいかなかったコードを提示してください。
アドバイスできるかもしれません。
0919デフォルトの名無しさん
05/02/13 15:03:13java.awt.image.BufferedImageクラスとjavax.imageioあたりを
使えばできるんじゃないか?
BufferedImage(int width, int height, int imageType);
このコンストラクタで結合後のイメージの大きさを指定して
javax.imageio.ImageIO#read(File input)
でファイルを読み込んで
BufferedImage#getRGB(int x, int y)
BufferedImage#setRGB(int x, int y, int rgb)
を使って結合後のイメージを作成して
javax.imageio.ImageIO#write(RenderedImage im, String formatName, OutputStream output)
で出力する
ドキュメントを見ての想像だからどうなるかわからんが
0920デフォルトの名無しさん
05/02/13 15:54:550921デフォルトの名無しさん
05/02/13 16:05:500922デフォルトの名無しさん
05/02/13 16:09:13JAVAにも演算子オーバーロードはあります。
0923844
05/02/13 16:27:33参考にさせていただきます。
なんか、自分の質問で場が荒れてしまってすいません。
0924デフォルトの名無しさん
05/02/13 22:10:190925デフォルトの名無しさん
05/02/13 22:23:31class Sample1
{
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+"が入力されますた。");
}
}
なにがおかしいんですか?
0926デフォルトの名無しさん
05/02/13 22:39:39import java.io.*;
0927デフォルトの名無しさん
05/02/13 23:32:56j2sdk1.4.2_07
PostgreSQL 8.0
CLASSPATHの設定.;C:\PostgreSQL\8.0\jdbc\postgresql-8.0.309.jdbc3.jar;
C:\Tomcat 5.0\common\lib\servlet-api.jar;C:\j2sdk1.4.2_07\lib\tools.jar;
C:\j2sdk1.4.2_07\lib\dt.jar
C:\java>javac TestPG.java
C:\java>java TestPG
java.lang.ClassNotFoundException: org.postgresql.Driver
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at TestPG.main(TestPG.java:12)
0928927
05/02/13 23:33:33Tomcatでサーブレットのテストをする以前のdos窓でのteatエラーです。
何が原因なんでしょう?教えてくださいm(_ _)m
0929927
05/02/13 23:34:52PG
Exception in thread "main" java.lang.NoClassDefFoundError: TestPG
C:\java>java -classpath C:\Tomcat 5.0\common\lib\servlet-api.jar TestPG
Exception in thread "main" java.lang.NoClassDefFoundError: 5/0\common\lib\servle
t-api/jar
0930927
05/02/13 23:38:38import java.sql.*;
public class TestPG {
public static void main(String argv[]) {
Connection conn = null;
Statement stat = null;
ResultSet rset = null;
String sql = null;
String url = "jdbc:postgresql://localhost:5432/wdb";
try {Class.forName("org.postgresql.Driver");
conn = DriverManager.getConnection(url,"user","1234");
stat = conn.createStatement();
sql = "select * from gero";
rset = stat.executeQuery(sql);
while (rset.next()) {
String name = rset.getString("day");
String email = rset.getString("onesy");
System.out.println("VALUES = " + "day" + "\t" + "onesy");}
} catch (SQLException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {if (rset != null) rset.close();
if (stat != null) stat.close();
if (conn != null) conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
0931デフォルトの名無しさん
05/02/13 23:40:34うーん、そういう試行錯誤やるくらいならjarの中身見て目的のクラスが
あるかどうか確認するほうがなんぼかましだと思うよ。
あと自分でクラスパスがおかしそうだと思っているようだけど、そういうときは
System.err.println(System.getProperty("java.class.path"));
して実行系中で確認しようね。
0932デフォルトの名無しさん
05/02/13 23:41:060933927
05/02/13 23:45:18すんません、よく分かりません(^_^;;;
>>932
>CLASSPATHの設定.;C:\PostgreSQL
1番最初に加えてるのですけど・・・
0934デフォルトの名無しさん
05/02/13 23:48:13>1番最初に加えてるのですけど・・・
929では加わってないのを指摘されているんじゃないの?
0936デフォルトの名無しさん
05/02/13 23:50:16|C:\java>java -classpath C:\Tomcat 5.0\common\lib\servlet-api.jar TestPG
|Exception in thread "main" java.lang.NoClassDefFoundError: 5/0\common\lib\servle
|t-api/jar
ワラタ. -classpathの引数をクォートしてないから引数が分割されちゃってるよ。
0937936
05/02/13 23:51:050938デフォルトの名無しさん
05/02/13 23:51:480939デフォルトの名無しさん
05/02/13 23:52:28java.lang.ClassNotFoundException: org.postgresql.Driver
だからそれはないね。
0940927
05/02/13 23:54:59こんなになりました・・・
C:\java>java -classpath . C:\PostgreSQL\8.0\jdbc\postgresql-8.0.309.jdbc3.jar TestPG
Exception in thread "main" java.lang.NoClassDefFoundError: C:\PostgreSQL\8/0\jdbc
\postgresql-8/0/309/jdbc3/jar
0941927
05/02/13 23:57:21>引数をクォート
って何ですか?詳しく
0942デフォルトの名無しさん
05/02/14 00:01:00作業が理解できてない人なのか。
1. パスを複数指定するときは;で区切る。
2. コマンドラインの複数の引数はスペースで区切られるので、スペースを含む引数は""で囲わないと正しく解釈されない。
0943デフォルトの名無しさん
05/02/14 00:05:52まず問題を整理してみようじゃないか。
・-classpathはCLASSPATH環境変数を無視して再設定する。だからCLASSPATHに指定している
ものも再度設定する必要がある。
・カレントディレクトリも自分でちゃんと設定しないといけない。
・クラスパスの区切り文字はWindowsでは「;」。
だから
java -classpath "C:PostgreSQL\8.0\jdbc\postgresql-8.0.309.jdbc3.jar;." TestPG
でどうだ。
0944927
05/02/14 00:07:08C:\java>java -classpath .; C:\PostgreSQL\8.0\...の(.;)しましたが変わらずエラーでした
というか、マイコンピュータ右クリ→プロパティ→詳細→環境変数のところで設定してるのですが・・・
0945927
05/02/14 00:08:30ありがとうございます。結果は↓でした(;_;)
C:\java>java -classpath "C:PostgreSQL\8.0\jdbc\postgresql-8.0.309.jdbc3.jar;." T
estPG
java.lang.ClassNotFoundException: org.postgresql.Driver
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at TestPG.main(TestPG.java:12)
0946デフォルトの名無しさん
05/02/14 00:11:47これを読め
http://java.sun.com/j2se/1.4/ja/docs/ja/tooldocs/win32/classpath.html
お前の場合は、-classpath オプションを付ける方法をやっている。
環境変数CLASSPATHを使う方法もあるが、決して使うなよ。(すべきではないし、お前は必ず間違うから)
あとは、>>942のいうとおり、スペースを含む引数を""で囲むこと。
Program Filesとか、Tomcat 5.0とかがそうだ。
"C:\Tomcat 5.0\common\lib\servlet-api.jar"
0947デフォルトの名無しさん
05/02/14 00:15:46全部まとめて、""で囲んでいる>>943は、間違っている。
それに、
C:PostgreSQL\8.0\jdbc\postgresql-8.0.309.jdbc3.jar
↑このパスならばスペースを含まないから、""で囲む必要はなし。
java -classpath C:PostgreSQL\8.0\jdbc\postgresql-8.0.309.jdbc3.jar;. TestPG
でどうだ?
C:PostgreSQL\8.0\jdbc\postgresql-8.0.309.jdbc3.jarのパスが間違いないことは、確認しとけよ
0948927
05/02/14 00:16:00分かりやすい例を出していただきありがとうございます。
0949デフォルトの名無しさん
05/02/14 00:19:59ちゃんと設定されているかmain()中で
System.err.println(System.getProperty("java.class.path"));
しろと。大体ドキュメントにJDBCに必要なjarについて書いてないの?
0950デフォルトの名無しさん
05/02/14 00:21:03すまん、C:PostgreSQL\8.0\jdbc\postgresql-8.0.309.jdbc3.jarのところな、C:PostgreSQLじゃなくて、
C:\PostgreSQL だった。
0952デフォルトの名無しさん
05/02/14 00:27:52|全部まとめて、""で囲んでいる>>943は、間違っている。
オイオイ.
0953デフォルトの名無しさん
05/02/14 00:30:00ということはいま927の相手をしているのは3人以上いるわけだな。
じゃ、俺は
_∧∧__ / ̄ ̄ ̄
|( ゚д゚)| < 寝る
|\⌒~\ \___
\ |⌒⌒|
0954927
05/02/14 00:30:15うおおおぉぉ!
すごすぎ!できました!ありがとうございます。
C:\java>java -classpath C:\PostgreSQL\8.0\jdbc\postgresql-8.0.309.jdbc3.jar;. TestPG
VALUES = day onesy
出ました!、、、でもデータベースの中身を引き出せてないような・・・ちょい調べてみます。
0955デフォルトの名無しさん
05/02/14 00:30:400956デフォルトの名無しさん
05/02/14 00:47:20web上にある画像(jpg)を読み込んで、その画像に画像処理を施す、
というプログラムを書いています。
ローカルにあるjpgファイルをImageオブジェクトやPixelGrabberを使って
ピクセル値を取り出すところはできたのですが、
「web上にある画像を読み込む」ところがわかりません。
Image img = Toolkit.getDefaultToolkit().getImage( URL url )
というメソッドがあるらしいのですが、
具体的にどのようにすればよいのでしょうか?
0957デフォルトの名無しさん
05/02/14 00:54:030958927
05/02/14 01:06:33>でもデータベースの中身を引き出せてないような・・・ちょい調べてみます
分かりました、ソース(TestPG.java)の記述が間違ってました(引用したソースのかけらが残ってました)。
>String name = rset.getString("day");
>String email = rset.getString("onesy");
>System.out.println("VALUES = " + "day" + "\t" + "onesy");}
訂正↓
String day = rset.getString("day");
String onesy = rset.getString("onesy");
System.out.println("VALUES = " + day + "\t" + onesy);}
C:\java>javac TestPG.java
C:\java>java -classpath C:\PostgreSQL\8.0\jdbc\postgresql-8.0.309.jdbc3.jar;. TestPG
VALUES = 2005-02-01 お父さん
VALUES = 2005-02-01 お母さん
0959デフォルトの名無しさん
05/02/14 01:12:02そのまま使いたいんですが、
たとえば、
Toolkit.getDefaultToolkit().getImage( new URL(h ttp://www.〜〜.co.jp/a.jpg) )
みたいに指定するだけだと、
action deniedというエラーが出ました。
ファイルのpermissionを確認しましたが、ちゃんと777になっています。
どう対処すべきかわからず、質問した次第です。
対処方法を教えてください。
0960デフォルトの名無しさん
05/02/14 01:19:36なんか自己解決してしまいました。
classファイルと同じところにある画像を読み込むことができました。
URL url = new URL(getCodeBase(), "〜〜.jpg");
img = Toolkit.getDefaultToolkit().getImage(url);
でいけました。
お騒がせしました。
ありがとうございました。
0961デフォルトの名無しさん
05/02/14 01:52:39アプレットはアプレットのおいてあるサーバとしかデフォルトでは通信できないだろ。
0962917
05/02/14 09:27:21ありがとうございます。
0963デフォルトの名無しさん
05/02/14 09:46:22コマンドプロンプトでのCUIアプリでもなく、
普通のWindowsアプリのように
ウィンドウを出してその中でツールなりゲームなりを作りたいのですが、
javaでスタンドアロンのアプリってどうやって作ればよいのでしょうか。
とりあえずアプリの自前ウィンドウを出して文字表示でもできればよいのですが、
特別な方法があるのでしょうか。
0964デフォルトの名無しさん
05/02/14 10:56:52|´・ω・`) そ〜〜・・・
|o源 o
|―u'
| ∧∧
|(´・ω・`)
|o ヾ
|―u' 源 <コトッ
| ピャッ!
| ミ
| 源
import java.awt.*;import java.awt.event.*;import javax.swing.*;
class JFrameSample{
public static void main(String args[]){
JFrame jf = new JFrame("JFrameSample");
JPanel jp = new JPanel();
JLabel jl= new JLabel("おはよう、世界");
JButton jb = new JButton("良し!");
jf.setContentPane(jp);
jb.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Toolkit.getDefaultToolkit().beep();}});
jp.add(jl);
jp.add(jb);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setBounds(0,0,150,80);
jf.setVisible(true);}}
0965963
05/02/14 12:40:22ありがとうございます。でもやはり結局コマンドプロンプトとかから起動するしかないんですかね?
なんかDOS窓とか開くのは気持悪いです。
なんていうか普通のWindowsアプリみたくexeファイルダブルクリックで
即、アプリが単独で起動するような感じに作ることっていうのはJavaでは無理なんでしょうか?
EclipseはJavaで作られてるって聞いたことがあるんですが、
exe形式の実行ファイルで普通に起動しますよね?
これはどういう事なんでしょうか。こういう風にできたら理想なのですが。
0966デフォルトの名無しさん
05/02/14 12:44:29#この話題はマジでFAQ入れた方がいいと思う
0967デフォルトの名無しさん
05/02/14 12:45:29http://jaist.dl.sourceforge.net/sourceforge/jsmooth/jsmooth-setup-0.9.7.exe
これをDL&インストールして起動後、対象とするJarを選択する。
英語だけど、まぁ見れば分かる。
それにしても、そんなにEXE化の要望って強いもんなのかな?
ちょっと驚いてる。
0968デフォルトの名無しさん
05/02/14 12:48:43配布したい人には重要なんじゃないの?
0969デフォルトの名無しさん
05/02/14 12:56:20例え、exe経由で実行できるようにしても、
JREまで配布しなければならないと知ったら、失望するんだろうな。
0970デフォルトの名無しさん
05/02/14 12:56:51>>873
結局Windowsでしか動かされないJavaも悲しいものだ
0971デフォルトの名無しさん
05/02/14 13:04:01そこらの*.exe何も警戒せずに実行している藻前らにそんなこといわれ
とうないわ、って感じだ。
0972デフォルトの名無しさん
05/02/14 13:15:07・一般ユーザにJARファイルが実行可能だという認識がない。(ダブルクリックして実行できると思わない)
・アイコンが設定できない
インストーラ作って、アイコンを設定したショートカットファイルを
スタートメニューなんかにおけば、おそらく要望は満たされると思うが、
インストーラまで作りたくない。
というのが理由だと思う。
0973963
05/02/14 13:18:24VM上で動くってのも分かっておりますし、EXE形式に拘ってるわけではないのであります。
説明のために、WinアプリのEXEみたいな起動方法を例として上げただけで、
あんな風に普通にアイコンダブルクリックで起動できればというのが希望していることです。
なのでそれができれば形式とかは問いません。
自分で起動するにも他人に配るにもいちいちコマンドプロンプト立ち上げて
「java 〜」とか打ち込むのは面倒くさいです。
とりあえずexe化する方法は教えていただけたので参考になりましたが(ありがとうございます)、
どうもすこし大げさな気がします。
他にも方法があったら教えて下さい。お願いします。
0974デフォルトの名無しさん
05/02/14 13:26:55であれば、どれかの方法が考えられる。
a)バッチファイルを作って、バッチファイルにコマンドラインと同じことを記述する
b)jarファイルにmanifestファイルを追加する(Windowsならダブルクリックで起動可)
c)b)で作成したjarに対するショートカットファイルを作って、アイコン設定する。
単にダブルクリックで実行したいだけなら、バッチファイルでも作れば楽だよ。
0975974
05/02/14 13:32:56Main-Classを指定した、manifestファイルを追加するだ。
http://java.sun.com/j2se/1.4/ja/docs/ja/guide/jar/jar.html#JAR%20Manifest
0976853
05/02/14 13:48:38PreparedStatement pre_state = member_table.prepareStatement
("insert into member_table set user_name = ?", ResultSet.TYPE_FORWARD_ONLY,
ResultSet.CONCUR_UPDATABLE);
と変更して実行したのですがやはりMySQL上に反映されておりませんでした。
何が原因なのでしょうか?全くもって不明です(●>_<●)
0977デフォルトの名無しさん
05/02/14 13:49:22その発言の中のキーワードで検索できるんじゃないか?
0978デフォルトの名無しさん
05/02/14 13:51:09なにか例外はでてない?
例外がでてたら書いてくれ
0980853
05/02/14 14:13:52例外は得に何も出ていませんでしたので、
自らMySQL上で下記のコード
insert into member_table set user_name="hogehoge";
と入力した所
ERROR 1062: Duplicate entry '' for key 1
というメッセージが表示されました。もしかすると
SQL文自体が間違っているのかもしれませんので
ぐぐって色々試してみます。
(回答頂き申し訳無いのですがこれから仕事へ出かけます)
どうもです(^o^)v
0981デフォルトの名無しさん
05/02/14 14:15:02JavaMailを使用して、受信メール一覧等、指定のフォルダのメール一覧の取得はできたのですが、
アドレス帳に登録されているメールアドレス一覧の取得はできるのでしょうか?
0982デフォルトの名無しさん
05/02/14 14:24:50アドレス帳って何のアドレス帳だよ…
0983963
05/02/14 14:33:36ありがとう!大変参考になりました。
そのmanifestファイルってのがなにやらよさげなので
探ってみます。バッチファイルもよさげです。
色々レスくれた皆様もありがとうございました。
0984デフォルトの名無しさん
05/02/14 14:41:22そこらへんも良く分からなくて、アドレスが保管されているものからだったら何でも良いのですが、
メールのように、取得できる方法何か良い方法はあるのでしょうか?
0985デフォルトの名無しさん
05/02/14 14:54:05ちなみに、eclipseなんかを使っているのであれば、
Manifestファイルなんかはあまり意識することなく、
GUIによるウィザード形式で、メインクラスを指定するだけで作れる。
eclipseの場合は、「エクスポート」を使う。
0986デフォルトの名無しさん
05/02/14 15:08:02メールはサーバから受信したり、送信したりする仕様が決まっているが、
アドレス帳は、様々なメールソフトが独自に実装しているもの。
だから、「Outlook Expressだったら、○○の形式で、××というファイルに保存される」
とか、「鶴亀メールは、xxxxの形式で、yyyyというファイルに保存される」
とか、ソフトによって勝手に実現されているわけ。
当然、JavaMailができるのは、全てのメールソフトのアドレス帳形式に
対応するなんてしているわけなくて、仕様が決まっている送受信の部分だけ。
アドレス帳を読みたいのであれば、まずは、
どのメールソフトのアドレス帳なのか決めろ。その上で
・(例えば)Outlook Expressのアドレス帳は、どんな仕様で保存されいるのか?
といった質問から始まる。そして、この質問はJavaと無関係なのでスレ違い。
0987デフォルトの名無しさん
05/02/14 15:08:20どうにでもできるから好きなように実装すればよい。
0988デフォルトの名無しさん
05/02/14 15:18:17Eclipseを前提にしていいのであれば、NSISのフロントエンド
となるプラグインがあるので、それ使ってインストーラー
つくっちゃうほうがいいね。スタートメニューにアイコンできるし、
JREを同梱するかどうかの判断を別にすれば、かなりベストに
近い解だと思う。ただ基本的に有償で、フリーで使えるのは
RCPアプリケーション向けの部分だけだけど。
0989984
05/02/14 15:27:34わかりやすい説明ありがとうございます。
とても参考になりました。
使用しているのはMSのOutlookなので、〜.pabと言うファイルを解析すれば上手く取得できそうです。
お忙しいところ答えていただき、ホントにありがとうございました。
0990サミー・コリル
05/02/14 15:41:40,. ' ´ 丶、
,.r' / \
,ィ//l / ヽ `、
/ミ/// / / n ヽ ヽ ',
/ミ///: / / // / l l .l l } i l ヽ
lミlトl=l:: / / // / / l | l l l l l /
j==|=l: :/ / // / / l l | | l | | < あっボク、サムエル・ワンジル。1000を取るから。ヨロシクね
《(@)}ノ: |//‐/‐!/l/!/ / //l|__/ / / l l \
lー'lξソ_,.r==ト`i! リ /イ/三レ'l|/ / l | l
l:: |ξ ヽ {:':::::リ ` ' ,.イ:':::::} ヾレi l l |
|:: lξ iヘ,. ''=‐' !;;__ノ ハリ | l _|
l:: |:ξt6l /// , /// シ´〉 / /l |
|_:: l::ξlート、 ‘ /-'l //::l| l
|:: !::ξl:::l::::ヽ、 ‐‐ ィ':::::ノ //::::|l /
`ィ!|:: l::::|:::::}. ` 、__ ,. イ:::::}::::/ //::::/!/
i!ヽ、|::::ト、:j |;;;;l;;/;;/ /'´ー.'|/
_ ー`ノ l\__//,_
/:::::\―/ ` `ー-〒コ ト、
ノ:::::::::::::`ヽ、_, ―‐、,,, ,.ー−‐l::l Y::ヽ、
,.-'::::,へ、::::::::::::`ヽ,_ /:/ l::::::::ヽ=、
/::::::/ : :`ヽ、::::::::`ヾ、、 /:/__|::::::::::i:::〕〕、
./::::::/ : : `ヽ、:::::::ヽ,`ヽ、 / ̄`ヽヽ\::::::l|:::|: :ヽ
/::::::/ : : `ヽ、::::`ヽ,-‐'‐‐==、 l:::|::::::\i!::l : `、
|:::::/ : : `ヽ:::::⊂ニニニ、ー |::|:::::::::::\l : : :ヽ
|:::/ : : : : `ヽ;:::ヽ_`> l:::l::::::::::::::::\: : :`、
0991デフォルトの名無しさん
05/02/14 15:42:44class ファイルが置いてあるディレクトリ名を取得したいのです。
0992986
05/02/14 15:43:16>使用しているのはMSのOutlookなので、〜.pabと言うファイルを解析すれば上手く取得できそうです。
そうそう、そこからがんばれ。
>お忙しいところ答えていただき、
誰が忙しいといった!皮肉か?それは。
0993デフォルトの名無しさん
05/02/14 15:49:38classファイルはファイルとしておいてあるとは限らないので(JARとかネットワーク経由とか)、だめじゃない?
システムプロパティjava.class.pathを見るとか。
なんのために、classファイルがおいてあるディレクトリ名を知りたいの?
本当はカレントディレクトリが分かれば良いとか、リソースとして取得することで十分とか
他の手段で十分な可能性もある。
0994デフォルトの名無しさん
05/02/14 16:02:13gpg の設定ファイルを class と同じディレクトリに置いておいて、
gpg の引数で指定しようと思っています。なので、ディレクトリ名が欲しいのです。
0995デフォルトの名無しさん
05/02/14 16:07:52new File(".").getAbsolutePath();
0996デフォルトの名無しさん
05/02/14 16:14:10それでは無理でしょ。
0997デフォルトの名無しさん
05/02/14 16:20:26やはり、JAVA言語はすでに廃れてる事が証明されたようだなw
JAVA厨たちよ。君らの時代は終わったw プゲラ
0998デフォルトの名無しさん
05/02/14 16:32:38gpgとはなにか知らんが、
File f = new File(new URI(ClassLoader.getSystemResource("hoge.conf").toExternalForm()));
System.out.println(f.getAbsolutePath());
でどうかな?
クラスと同じフォルダとは限らず、カレントディレクトリにおいてあるという前提であれば、
>>995でもよいと思うが、違うディレクトリからクラスパス指定して動かした場合は、>>995ではだめ。
0999デフォルトの名無しさん
05/02/14 17:05:37http://pc5.2ch.net/test/read.cgi/tech/1107350368/141-148
http://pc5.2ch.net/test/read.cgi/tech/1107350368/169-185
1000デフォルトの名無しさん
05/02/14 17:19:3010011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。