【初心者】Java質問・相談スレッド103【大歓迎】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2007/06/27(水) 07:23:27JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作板をご利用ください。http://pc10.2ch.net/hp/
過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/
これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、
wikiからのリンクをおたどりください。
よくある質問
・「コマンドまたはファイル名が違います」
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
「Exception in thread "main" java.lang.NoClassDefFoundError: 」
http://www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals() を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」
前スレッド
【初心者】Java質問・相談スレッド102【大歓迎】
http://pc11.2ch.net/test/read.cgi/tech/1180419689/
/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */
また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝なく存じます。
次スレは>>980あたりで。
Character.isLetter(char)は日本語の文字にもtrueを返してしまいます。
0375デフォルトの名無しさん
2007/07/05(木) 01:45:08結論いうと可能。アプレットだよね。
ソースファイルに以下のコメント記述でアプレットタグの内容を書く。
/**
<APPLET>内容</APPLET>
*/
コンパイルしたら、appletviewer.exeというjavaの実行フォルダにある
ビューワを使えば読める。
こんな感じ
c:\>appletviewer "ソースファイル名"
ただし、ブラウザと多少動作が違うから確認程度で我慢すること。
詳しくはぐぐれ
こことかどうよ
http://www.itlb.te.noda.sut.ac.jp/~takuma/lecture/java/step1.html
0376デフォルトの名無しさん
2007/07/05(木) 01:53:33あったようななかったような、、A〜Z、a〜zの範囲なら自作のAPIを作っても手間がそんなにかからないと思うけど。
http://charset.7jp.net/unicode2.html
0377デフォルトの名無しさん
2007/07/05(木) 01:59:02ありがとうございます!
0378デフォルトの名無しさん
2007/07/05(木) 02:00:240379デフォルトの名無しさん
2007/07/05(木) 02:06:440380デフォルトの名無しさん
2007/07/05(木) 02:10:140381デフォルトの名無しさん
2007/07/05(木) 02:41:15次はなにかを作りながら覚えて言ったほうがいいかなと思ったのですが
なにかいい参考書や方法はあるでしょうか?
みなさんはどういうステップJAVAを学んでいかれたのでしょうか?
よかったら教えてください。
0382デフォルトの名無しさん
2007/07/05(木) 03:02:31資格取ったり仕事で使ったりしたから、いろいろ知ってるけど。
どうでもいいような事とかJavaで出来ること、出来るけど困難なこと、そもそも出来ないこと
の区別が付けることが出来たら、お客さんに気に入られるよってアドバイスする俺はSE兼PGです。
趣味の範囲ならアソシエイツを取る勢いで浅く広く覚えれば面白いと思うよ。深く追求すると嫌になるから。
http://suned.sun.co.jp/JPN/certification/sjcaobj.html
0383デフォルトの名無しさん
2007/07/05(木) 09:35:44ほとんど無報酬のボランティアで答えている俺は
SE兼PG兼奴隷です。
0384デフォルトの名無しさん
2007/07/05(木) 10:37:04ソケットで自作しないとだめなんでしょうか?
0385デフォルトの名無しさん
2007/07/05(木) 10:57:13外部のライブラリ使えば簡単にできる。commons netとか
ttp://jakarta.apache.org/commons/net/
0386デフォルトの名無しさん
2007/07/05(木) 11:37:20Java "Script"なら関数オブジェクトを変数に入れて
コールすれば内部処理的にも関数ポインタに近いんだけどなぁ・・・
クロージャが追加されれば似たような事が出来るけど
Javaのクロージャってレキシカルスコープ引き継ぐんだろうか?
>>381
やさしいjavaをきれいさっぱり忘れて他の本をじっくり読む。マジオヌヌメ。
0387デフォルトの名無しさん
2007/07/05(木) 12:03:03htmlで<textarea>に入力した文字をdatファイルに出力しようとしています、正確にはJavaではなくJSPを使っていますが
・Htmlソース部分
<form action="test.jsp"method="POST">
<textarea rows=5 cols=60 name="honbun" wrap="off"></textarea>
<input type="submit"name="save"value="送信">
</form>
・Javaソース部分
String path = "フォルダパス";
String fname = "out.dat";
String gen = request.getParameter("honbun");
String hon = gen.replaceAll("\n","<br>");
BufferedWriter logwrite = new BufferedWriter(new FileWriter(path+ File.separatorChar +fname,true));
logwrite.write(hon);
logwrite.newLine();
logwrite.close();
改行コードを<br>に変換してdatファイルに出力しようとしていますが、<br>は付与されますがどうしても改行コードが残ってしまいます
datファイル内でも改行されないように出力出来ないでしょうか?(例えるなら、ギコナビのスレッドdatファイルの様に)
datファイルを見るのにはTeraPadを使用していますが、メモ帳では改行されていないように見えます
もしかするとTeraPadで見るのが原因なのでしょうか・・・しかしギコナビのdatファイルはTeraPadでも改行されずに表示されます
0388デフォルトの名無しさん
2007/07/05(木) 12:10:35\rが入ってるとか?
0389デフォルトの名無しさん
2007/07/05(木) 12:11:16LFだけ消して
CRLFを消してないから
CRが残ってる
0390387
2007/07/05(木) 12:21:08\rを消して無事に一行で出力することができました
>>388さん>>389さんご回答ありがとうございました!
0391デフォルトの名無しさん
2007/07/05(木) 13:04:01Javaのばあい、動作してるプラットフォームの改行コードに変換されるんじゃなかったけ?
0392デフォルトの名無しさん
2007/07/05(木) 13:25:240393デフォルトの名無しさん
2007/07/05(木) 13:28:12ブラウザがどういった改行コードを送ってくるかは環境依存?それとも何か決まりはある?
0394デフォルトの名無しさん
2007/07/05(木) 13:36:19WindowsからはCRLFで送られてくるし
UNIX系からはLFで送られてくるよ
HTTP以外のSMTPとかのプロトコルだと
ちゃんとCRLFになってるみたいだけどね
0395デフォルトの名無しさん
2007/07/05(木) 13:52:38システム上でファイルに関連付けられてるアイコンを
自動的に表示するような方法ってない?
やっぱりひとつひとつアイコン設定するしかない?
0396デフォルトの名無しさん
2007/07/05(木) 13:55:190397デフォルトの名無しさん
2007/07/05(木) 13:56:430398デフォルトの名無しさん
2007/07/05(木) 14:00:00そうなんだ!
どうやるの?
0399デフォルトの名無しさん
2007/07/05(木) 14:56:46ファイルに関連づけられてるアイコンって、
OS依存な気がするんだが・・・>>396は何か勘違いしてる気が・・・
0400デフォルトの名無しさん
2007/07/05(木) 14:59:090401デフォルトの名無しさん
2007/07/05(木) 15:00:06JTree上のアイコンだろ?
0402デフォルトの名無しさん
2007/07/05(木) 15:12:33エクスプローラみたいなのを作りたいってことは、exeファイルのアイコンとか
関連づけられたアプリのアイコンとかにしたいってことなんじゃないの?
>>401
0403デフォルトの名無しさん
2007/07/05(木) 15:47:41そういうことっす
0404デフォルトの名無しさん
2007/07/05(木) 19:04:570405デフォルトの名無しさん
2007/07/05(木) 20:49:420406デフォルトの名無しさん
2007/07/05(木) 21:03:29同じプログラムを Linux へ持っていたらまったく意図した通りに動かない、ということですな・・・
0407デフォルトの名無しさん
2007/07/05(木) 21:05:440408デフォルトの名無しさん
2007/07/05(木) 21:30:39デフォルトはシステムのどっかにアーカイブされてるんだろうが
0409デフォルトの名無しさん
2007/07/05(木) 21:45:570410デフォルトの名無しさん
2007/07/05(木) 21:50:05ttps://jdic.dev.java.net/
この辺のAssociationとか使えそうじゃね?
ttps://jdic.dev.java.net/documentation/Examples.html
0411デフォルトの名無しさん
2007/07/05(木) 22:50:43http://javadesktop.org/jdic/demo/FileExplorer/fileexplorer.jnlp
0412デフォルトの名無しさん
2007/07/05(木) 22:51:45また、画面から入力(Enter)があれば、ループを抜けずに、プログラムを強制終了させる。
上記の問題で条件文のことで質問があります。
while(true){
// 省略
if(System.in.available() > 0)
break;
}
「入力があれば」は上記if文でいいのでしょうか?
またEnterキーが入力された場合はどのように条件文を書けばいいのですか?
0413デフォルトの名無しさん
2007/07/05(木) 22:58:570414デフォルトの名無しさん
2007/07/05(木) 23:01:12それだと、ファイルの種類にかかわらずアイコンが全部同じになってるんだよね。
他に方法があるといいんだけど。
0415デフォルトの名無しさん
2007/07/05(木) 23:07:24まったく意図が通じていないと思うがエスパーしてみる
socket.getInputStream() を使ってバイナリを受信するべし
0416412
2007/07/05(木) 23:20:24・画面からの入力が「Enterキー」ならプログラム強制終了。
の部分だけを知りたかったんです。
サーバ、クライアントなしでただのプログラムとして考えてください。
0417デフォルトの名無しさん
2007/07/05(木) 23:21:270418デフォルトの名無しさん
2007/07/05(木) 23:30:010419デフォルトの名無しさん
2007/07/05(木) 23:33:58Scanner scanner = new Scanner(System.in);
scanner.nextLine();
0420デフォルトの名無しさん
2007/07/05(木) 23:42:01たぶんもう見てると思うけど
http://wisdom.sakura.ne.jp/system/java/swing/swing38.html
の一番下のとか
http://terai.xrea.jp/Swing/PreviewAccessory.html
とかがあるよね
でも >>395 の
「やっぱりひとつひとつアイコン設定するしかない? 」
の不満は解消されてないっぽ
シコシコやっても >>406-407 みたいになるのがオチ
0421デフォルトの名無しさん
2007/07/05(木) 23:43:41お勧めの教えてくらさい
軽くその本の内容も書いてくれると嬉しいです
0422デフォルトの名無しさん
2007/07/05(木) 23:49:540423デフォルトの名無しさん
2007/07/05(木) 23:57:28サンクス
ググってみたが,出版されて日が浅いせいか
全然レビューないな
とりあえず,明日本屋で立ち読みしてみるわ
0424デフォルトの名無しさん
2007/07/06(金) 00:04:15jdicのAssociationServiceのgetFileExtensionAssociationで拡張子指定して
Associationを取得してgetIconFileName()を使うとなんか帰ってくるな。
なんでか「絶対パス,整数」の形式になってる。
数字の意味がわからないが絶対パスの先はアイコンではなく
実行ファイルなのであった・・。
ああ、もしかするとアイコンを使ってるファイルのパスが帰ってくるのか(´д`)
0425デフォルトの名無しさん
2007/07/06(金) 00:04:250426デフォルトの名無しさん
2007/07/06(金) 00:05:50整数はリソースの番号だろ
0427デフォルトの名無しさん
2007/07/06(金) 00:06:45アイコンを使ってるファイルのパスじゃなくて
アイコンを格納しているファイルだろうね
0428デフォルトの名無しさん
2007/07/06(金) 00:13:18で、「もしや?」と思って試してみた。
上手くいったぞ。こんなコード。
JFileChooser chooser = new JFileChooser();
FileChooserUI ui = chooser.getUI();
FileView fileView = ui.getFileView(chooser);
JLabel pdfIcon = new JLabel("*.pdf");
Icon pdfIcon = fileView.getIcon(new File("a.pdf"));
pdfLabel.setIcon(pdfIcon);
こんなコードをJTreeのレンダラに仕込めば、
JTreeのノードに対応するすべてのファイルに対して、適切なアイコンが表示される。
もちろん、Windows L&F限定だが。
FileView#getIcon(File)に指定するファイルは、存在しないとFileNotFoundExceptionが発生した。
0429デフォルトの名無しさん
2007/07/06(金) 00:24:49乙。
0430428
2007/07/06(金) 00:35:40public class FSTreeCellRenderer extends DefaultTreeCellRenderer {
private FileView fileView;
public FSTreeCellRenderer(){
JFileChooser chooser = new JFileChooser();
fileView = chooser.getUI().getFileView(chooser);
}
public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) {
DefaultMutableTreeNode node = (DefaultMutableTreeNode) value;
File file = (File) node.getUserObject();
Component comp = super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus);
setText(file.getName());
setIcon(fileView.getIcon(file));
return comp;
}
}
0431デフォルトの名無しさん
2007/07/06(金) 00:43:17javax.swing.filechooser.FileSystemView 使えば
Windows では 16x16のアイコンと、ファイルの種類だけは取れる。
0432デフォルトの名無しさん
2007/07/06(金) 07:27:440433デフォルトの名無しさん
2007/07/06(金) 09:46:41Eclipseでプログラミングをしているのですが、
log4jとJCOMを外部jarとして追加しています。
この状態でjarファイルとしてプログラムをエクスポートすると、生成されたjarがそのまま実行できません。
CLASSPATHが通ってない・・・みたいなエラーが出ます。
通常のjarみたいにダブルクリックで起動させたいのですが、これはどうすれば解決できるでしょうか?
0434デフォルトの名無しさん
2007/07/06(金) 10:18:12実行可能Jarでググれ。
0435デフォルトの名無しさん
2007/07/06(金) 10:33:12ググってみたんですけど、
外部Jarを使ったプログラムのエクスポート方法
などが載ってるページが見つかりませんでした。
0436デフォルトの名無しさん
2007/07/06(金) 10:56:55お前さんが使ってるGoogleは別物なんだな。
わかった。ズバリ答え。
MANIFEST.MFにこう書け。
Class-Path: log4j.jar jcom.jar
log4j.jarとjcom.jarは、実行するJarファイルと同じフォルダに置くこと。
0437デフォルトの名無しさん
2007/07/06(金) 12:19:50ありがとうございます!!
無事に実行することができました。
これで実行jarと同じ階層に3つのjarファイルがあるわけなんですが、
コレを1つのexeファイルにしたいんです。
Fat jarでまとめてexewrapでexeにする・・・というのはできるんでしょうか?
0438デフォルトの名無しさん
2007/07/06(金) 15:46:00そこまで手順が確定しているなら自分でやってみればできるかどうかすぐ分かる。
0439たかひと
2007/07/06(金) 16:49:12どのようにすればいいのでしょうか。
宜しくお願いします。
0440デフォルトの名無しさん
2007/07/06(金) 17:52:310441デフォルトの名無しさん
2007/07/06(金) 18:05:44スレッドとかぶつかっても平気ですか?
0442デフォルトの名無しさん
2007/07/06(金) 21:19:09まぁ日付の書式に気をつければ何の問題もないけどね。
0443デフォルトの名無しさん
2007/07/06(金) 21:31:280444デフォルトの名無しさん
2007/07/08(日) 00:53:30> 1.7 Is log4j thread-safe?
> Yes, log4j is thread-safe. Log4j components are designed to be used in heavily multithreaded systems.
まことに残念
0445デフォルトの名無しさん
2007/07/08(日) 01:42:28例えば以下のソースで、
------------------------
int i = 0;
byte b = -1;
i = i | b;
------------------------
やりたいことは、iのビットパターンを以下のようにしたいんだけど、
00000000 00000000 00000000 11111111
実際はこうなってしまいます。
11111111 11111111 11111111 11111111
これってどうすれば回避できるんでしたっけ・・・
0446デフォルトの名無しさん
2007/07/08(日) 02:00:34単純に宣言や拡張が何か足りないだけなのでしょうか…
0447デフォルトの名無しさん
2007/07/08(日) 02:02:350448デフォルトの名無しさん
2007/07/08(日) 02:04:26i = i | (b & 0xFF)
0449デフォルトの名無しさん
2007/07/08(日) 02:04:330xFF と AND でもとれば
0451デフォルトの名無しさん
2007/07/08(日) 02:16:37Eclipse3.21 JDK1.6.0_02、Windows2000SP5です。同じような症状の人いますか? 普通に実行してる分にはNullPointerExceptionは発生しないのですが。
0453452
2007/07/08(日) 03:01:220454デフォルトの名無しさん
2007/07/08(日) 03:04:300455デフォルトの名無しさん
2007/07/08(日) 04:41:180456452
2007/07/08(日) 04:44:03GUI(Swing)を使えば必ず出てきます。
階層的にはJFrame#initの呼び出しの果てに
Window#init(GraphicsConfiguration gc)
が呼び出されて、さらにその後もメソッドの呼び出しが続いてTrueTypeFon.open()でヌルポが発生してしまいます。
ただこのヌルポ、デバッグモードで動かさないとわかりません。
Eclipseならデバッグモードじゃなくてもヌルポが発生したらコンソールに知らせてくれるはずなのだと思いますが。
0457デフォルトの名無しさん
2007/07/08(日) 07:33:330458452
2007/07/08(日) 11:06:54public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setSize(640, 400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
こんな単純なのでもデバッグモードで起動するとヌルポが出てしまいます。
0459452
2007/07/08(日) 11:10:080460デフォルトの名無しさん
2007/07/08(日) 11:31:51それでも発生するならばEclipseの実行環境(JRE)の設定でJDK1.6となっているかを確認。
さらに、プロジェクトのプロパティからコンパイルレベルが、6.0になっているかを確認
ダメならば、Eclipseを入れなおしてみる
とりあえず、そんなとこかな?
0461452
2007/07/08(日) 12:17:34どうもありがとうございます。JREの設定でJDK1.6、コンパイルレベルが、6.0、ともになっています。
ちょうどEclipse3.3が出たから、アドバイスどおりEclipseを入れなおしてみます。
0462デフォルトの名無しさん
2007/07/08(日) 12:23:473.3.1が出るまでは冒険でしょでしょ(=ω=.)
なんかプラグインが衝突しているんかねぇ
大量にプラグインいれた環境とかならば、再インスコがベストだろうな。
VEとかいれているならばかなり怪しい
0463デフォルトの名無しさん
2007/07/08(日) 13:46:20Exception in thread "main" java.lang.NoClassDefFoundError:Sample1とエラーが出ます
そこでシステム環境変数のCLASSPATHを削除したら治ったのですがこれは削除してもよかったんでしょうか?
0464デフォルトの名無しさん
2007/07/08(日) 13:47:110465デフォルトの名無しさん
2007/07/08(日) 14:04:21CLASSPATHは環境変数に設定するとトラブルを誘発するので勧めない
必要な時、javaコマンドなどのオプション-cpで設定する方がいいよ
0466デフォルトの名無しさん
2007/07/08(日) 14:08:51はいそうです。
CLASSPATHの値を控えずに消してしまいました。元の状態に戻すことは不可能ですか?
0467デフォルトの名無しさん
2007/07/08(日) 14:16:00不可能
Windowsのバックアップ機能とかあるならば可能かもしれないけど、そっちは詳しくないので知らん
何度も言うけどCLASSPATHに値を設定してトラブルになるより、-cpの使い方学べ、その上でCLASSPATHに必要ならば設定汁
0468デフォルトの名無しさん
2007/07/08(日) 14:23:49そうですか・・ありがとうございました。
まあ今のところ問題なく動いているので大丈夫だと思いますが
ちなみにCLASSPATHは全くいじってませんでした。
04692人の女性と付き合っている高1です
2007/07/08(日) 19:54:12よこから割り込みますがCLASSPATHを環境変数に設定するとまずいという
ご意見がありますが、どういう時にまずいのでしょうか?
僕は現在JavaSE6up2しかマシンにインストールしていませんが、そんな
状況で起こりうる誤作動の事例をよろしければ教えてください。
0470桜井葵
2007/07/08(日) 20:11:370471デフォルトの名無しさん
2007/07/08(日) 20:46:41CLASSPATHでググれカス
0472デフォルトの名無しさん
2007/07/08(日) 20:47:502人とも妊娠
0473デフォルトの名無しさん
2007/07/08(日) 23:43:42↓
http://www.yukinko-net.jp/
■ このスレッドは過去ログ倉庫に格納されています