- 1 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 15:21:29 ]
- 過去ログ、関連スレッド、よくある質問とその回答、
質問をする前に、貴方が見なければならないサイトについての情報は、 下のwikiのページにまとめてあります。 www.wikiroom.com/java/ これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、 wikiからのリンクをおたどりください。 よくある質問 ・「コマンドまたはファイル名が違います」 「'javac' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 「Exception in thread "main" java.lang.NoClassDefFoundError: 」 www.wikiroom.com/java/?path,classpath ・String に == は使うな。equals() を使え。 ・「\12288 は不正な文字です。」 文字リテラル以外で全角スペースは使えません。半角スペースに。 ・その他の質問→「APIのjavadoc見ろ」 前スレッド 【初心者】Java質問・相談スレッド101【大歓迎】 pc11.2ch.net/test/read.cgi/tech/1177938653/ /* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。 質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */ また、当スレで質問をするかたは、回答をもらえたときに、 wikiの更新をして頂ければ、忝なく存じます。 JavaScript, Ajaxの質問は、ここでは受け付けていません。 Web製作板をご利用ください。pc10.2ch.net/hp/ 次スレは>>980あたりで。
- 930 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 14:56:46 ]
- いや、多分サーバを用意する必要があるのが面倒っていってるんだろう。
PHPを例に出すってことは。 PHPは、Apacheのモジュール有効にするだけでいいし、という話かと。 CGI経由で、起動するJavaのテンプレート系フレームワークがあってもいいかな、とは思う。
- 931 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 15:02:04 ]
- >>929
PHPに比べたらややこしいだろ。 ファイルアップロードとかで差が出る。
- 932 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 15:31:22 ]
- そう、ファイルアップロードは致命的だよな。デフォルトで Java にないのは。
- 933 名前:デフォルトの名無しさん [2007/06/26(火) 16:30:21 ]
- <%@ page language="java" pageEncoding="UTF-8" %>
<%@ page import="java.io.*" %> <% response.setContentType( "application/octet-stream;charset=Windows-31J" ); response.setHeader( "Content-Disposition", "attachment; filename=\"sample.csv\""); String text = "sample!!!"; out.write( text ); %> 上のプログラム動かしたら冒頭に改行が3個入るんですけど、 入らないようにする方法ってないでしょうか?
- 934 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 16:31:00 ]
- System.out.printlnのoutがPrintStream型でバイナリのストリームってのが納得いきません
入力を受け取るInputStreamのinも同様に納得がいかないです 文字を入出力してるんだからテキストデータのストリームであるべきじゃないんですか?
- 935 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 16:42:00 ]
- >>933
%> と <% の間の改行を消すといいかも
- 936 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 16:42:37 ]
- >>934
標準入出力はリダイレクトでバイナリファイル扱う可能性があるので、 バイナリのストリームの方が良い。テキストからバイナリに 完全な復元ができない事も考えればバイナリであるべき。 System.in がテキストデータを扱う事の方が多いのに InputStream だとバイナリしか取れなくて、いちいち InputStreamReader でラップするのが面倒ってのは同意するけど。
- 937 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 16:44:16 ]
- >>934
gzip -dc foo.tar.gz | tar xf - みたいに、標準入出力はバイナリを受け渡すことも多いのです。
- 938 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 16:46:43 ]
- 文字を入出力しているという前提が間違っている、ということで。
>>934 の憤りはどこへぶつければいいのかwww
- 939 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 16:55:38 ]
- >>935
改行削ったら上手くいきました! レスありがとう!!
- 940 名前:934 mailto:sage [2007/06/26(火) 17:16:18 ]
- なるほど…バイナリもテキストもどっちも扱う可能性があるので
変換可能なバイナリストリームを採用してるんですね。 でも、System.out.println("Hello"); のようなありきたりの文は、 Helloという文字列のテキストデータをバイナリストリームで扱ってることになりませんか? InputStreamReaderの場合と同じようにPrintWriterでラップするなら分かるんですが。
- 941 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 17:36:27 ]
- 端末から見たらテキストなんてエンコーディングに従ったバイト列だろ。
out.print形式はjavaがデフォルトのエンコーディングを使って変換してるだけ。 たしかjavadocに書いてあるぞ。 ところでjavaって標準出力がDOS-BOXなどの端末だった場合、 System.outへ一度出力した文字は消せないの? テキストがスクロールアウトして新しいテキストが流れてくるんじゃなくて ローグライクみたいにスクロールさせずに画面更新したりクリアしたりってどうするの?
- 942 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 17:37:03 ]
- >>940
そのままバイナリストリームで扱ってて、最終的にシェルがそれをテキストに変換にしてるんじゃね?
- 943 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 17:40:22 ]
- >>941
端末操作はモロ環境依存
- 944 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 17:42:12 ]
- >>941
> System.outへ一度出力した文字は消せないの? 改行前なら \r で行頭に戻れるかもしんない。 端末と System.out の実装の両方に依存するけど。 > ローグライクみたいにスクロールさせずに画面更新したりクリアしたり jcurses みたいな外部ライブラリ使ってくれ。
- 945 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 17:45:57 ]
- というかテキストストリームとバイトストリームの区別って改行コードの扱いだけだったと思ってたんだが違うの?
- 946 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 17:46:41 ]
- >>942
その理論だと標準入力をInputStreamReaderでラッピングする必要も無い気がする
- 947 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 18:14:42 ]
- int型のメソッドでreturnでxという変数を返すとき、mainの条件で「xが帰ってこない場合」というifは作れるのでしょうか?
- 948 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 18:15:18 ]
- 変数 x は返せない
- 949 名前:デフォルトの名無しさん [2007/06/26(火) 18:25:01 ]
- jdbcでpostgreSQLにつなごうとしているのですが、
以下の設定でなぜかNo Suitable Driverと言われてしまいます。 どこがおかしいのでしょうか? CLASSPATHにはjarファイルの絶対パスを記述しています。 jdbcドライバは、postgresql-8.2-505.jdbc3.jar postgreSQLは8.2を使っています。 String url = "localhost:5432"; // args[0]; String usr = "test"; // args[1]; String pwd = "test"; // args[2]; // JDBCをここでロード Class.forName("org.postgresql.Driver"); // 接続 System.out.println("Connecting to Database URL = " + url); Connection db = DriverManager.getConnection(url, usr,pwd);
- 950 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 18:25:56 ]
- エルレガーデンのHPでメニューバーがグラデーションになっていてスクロールすると
バックが透けているのですが、javaで出来るんでしょうか? 気になって調べてみたんですが、分からなかったので。。どなたか教えてください。 エルレHP www.ellegarden.jp/ja/index.asp
- 951 名前:デフォルトの名無しさん [2007/06/26(火) 18:29:58 ]
- 誰か>>850を、、
- 952 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 18:34:18 ]
- >>951
いくら出す?
- 953 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 18:35:43 ]
- 何をきっかけとして>>817の処理を行うつもりなの?
IEのスクリプト?
- 954 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 18:42:06 ]
- >>947
そのメソッドで例外を投げれば、値を返さずにメソッドを終了すること ができる。mainではtry-catchすればいい。 そんなことはしないで、Integerなどクラスを使って、値を返したくない ときはnullを返すのが良いと思う。
- 955 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 18:47:21 ]
- >>950
Javaだとかなり難しい。ウェブ制作板へどうぞ。
- 956 名前:941 mailto:sage [2007/06/26(火) 18:48:56 ]
- thx!
やっぱ依存か。 Consoleクラスが追加されたけど現状だとエコー文字列のマスクしかできないからなぁ。
- 957 名前:デフォルトの名無しさん [2007/06/26(火) 19:26:11 ]
- 任意のURLからHTMLの特定部分、例えばTABLEだけを吸い出したい
時に、純粋にJAVAだけを使うのと他のスクリプト言語を併用するのでは どちらが効率や再利用性の面で優れてますか。 またできたら、上記の場合のお勧めのスクリプト言語を教えてください。
- 958 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 19:28:46 ]
- GroovyやRhinoからjavaのライブラリ使う。
HTMLParserとか。
- 959 名前:デフォルトの名無しさん [2007/06/26(火) 19:29:24 ]
- >>950>>955
java script を使うほうが一般的ですがjavaアプレットでも簡単にできます
- 960 名前:デフォルトの名無しさん [2007/06/26(火) 19:36:45 ]
- Rhinoってサーバサイドで動くんですか?
- 961 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 19:46:29 ]
- javaしか使えないくせに
俺一流プログラマー みたいな顔してる上司がうぜぇ Cマスターの俺に指図すんじゃねーよ屑 こんな糞言語使えるだけで満足か 早く市んでくれ
- 962 名前:デフォルトの名無しさん [2007/06/26(火) 20:10:55 ]
- cは開発の能率悪いでしょ
- 963 名前:デフォルトの名無しさん [2007/06/26(火) 21:02:02 ]
- >>957
TidyLibというものがあります。 ほとんどの言語に対するバインディングがあるので、 一度調べてみてください。 商用製品でも採用例が多く、一番実績があると思います。
- 964 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 23:04:05 ]
- >>949
>String url = "localhost:5432"; // args[0]; ↓ String url = "jdbc:postgresql:dbnamehogehoge"; しかしそのエラーメッセージも不親切だよなw
- 965 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 23:18:58 ]
- Socketって後始末に明示的にclose()呼び出さなくてもいいですか?
SocketインスタンスがGCに回収されるときに自動的にコネクション切断 などの面倒は見てくれるんでしょうか?
- 966 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 23:40:54 ]
- 明示的に呼び出せるタイミングがあるなら、そのタイミングでcloseを呼び出せ
- 967 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 23:54:50 ]
- >>965
面倒見てくれるかどうかは実装依存だろう。 SocketもSocketImplもfinalizeはオーバーライドされていないから、 GCのタイミングでの処理は何もしないかもね。 まあ適当な時に適当に切断はされるだろうけど、エレガントに処理されるかどうかは分からん。
- 968 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 23:57:54 ]
- 基本的にネイティブなリソースを触った場合GCに任せないで自分で解放する。
ファイナライザ使うのも間違い。
- 969 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 00:03:17 ]
- >>966-968
レスありがとうございました! なるほど、close()は明示的に呼び出さないとダメなんですね。 勉強になりました。
- 970 名前:デフォルトの名無しさん [2007/06/27(水) 00:04:19 ]
- GC時に処理させたいならファイナライザを使うのは間違いじゃないと思うがね
最後までその機会が来ないことがあることは想定しておかないといけないが
- 971 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 00:06:53 ]
- >>970
この質問の場合はfinalizeに処理させるのは間違いだろ。 一般論で質問者を惑わせるな。
- 972 名前:デフォルトの名無しさん [2007/06/27(水) 00:31:11 ]
- 便乗ですが
Socket s = new Socket(hogehoge); BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream(), "UTF-8")); 見たいな処理したあとの解放って s.close(); だけでいい? br.close(); も必要? あるいは InputStreamReader の close() とかもしとかないとだめ?
- 973 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 00:32:02 ]
- >>970
この場合はGCに任せて良いかどうか判断するのが難しいだろう。 javaのファイナライザがどういうためのものかちゃんと理解してないならなおさら。
- 974 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 00:47:58 ]
- >>957
JavaにXMLパーザってついてなかったっけ?
- 975 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 00:51:00 ]
- HTMLはSGMLアプリケーションなんだが。
XMLパーサにHTML食わせても整形式エラー吐くと思うぞ。
- 976 名前:デフォルトの名無しさん [2007/06/27(水) 00:56:20 ]
- >>974
ドキュメント検索したらHTMLパーサも付いてましたね HTML->JAVA JAVA->HTML HTML->HTML でXMLも噛ませられれば操作上は十分になってきますね XMLパーサとサーブレット&JSPを使うとXSLは必要なくなるんでしょうかね? ご回答いただいた方々、まことに有難うございました いただいた回答の中のRhinoは有用性が高そうなので 検討してみます。
- 977 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 00:57:40 ]
- >>972
(1) 使ってるラッパークラスのコンストラクタが例外を発生しないこと (2) ラッパークラスの close がラップしてるクラスの close を呼び出すこと を確認して、最も外側のクラスの close を対処すればいい。
- 978 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 00:57:53 ]
- javax.swing.text.html.parser
- 979 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 01:03:51 ]
- >>972
s.close() すれば s.getInputStream() で得られたストリームも自動的に close() される。 sclose() してない時に br.close() した場合、成功すれば、 s も勝手に close() される。
- 980 名前:デフォルトの名無しさん [2007/06/27(水) 01:06:08 ]
- >>979
IDEによってはエラーを吐きますね。 明示的にクローズした方がいいと思います。
- 981 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 01:06:11 ]
- >>978
あれパーサでパースして結果をレンダラに渡す程度の使い道しか想定してないからなぁ。 パース結果を自分でハンドリングするなら他のライブラリの方が良い。 まあ、それ以前にHotJavaのパーサは3.2finalの独自拡張なんで現行とは少し違うが。
- 982 名前:デフォルトの名無しさん [2007/06/27(水) 01:09:33 ]
- パーサの存在を知らなくて自作してしまったorz
- 983 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 01:12:37 ]
- SGMLのパーサを実装できるほど程の知識と腕があるなら自前が良いけどなw
正規表現なんかで実装しちゃだめだぜ。
- 984 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 01:16:45 ]
- javaでbigintの変数を宣言するときにはどのようにすればよいのでしょうか?
bigint a; のような感じにしても認識してくれません
- 985 名前:デフォルトの名無しさん [2007/06/27(水) 01:20:31 ]
- java.math.BigInteger
- 986 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 01:22:04 ]
- 前にもあったぞこのネタ
- 987 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 02:25:03 ]
- このスレはネタとバグでできています
- 988 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 02:30:27 ]
- long型でないと数値がオーバーするので、long型の配列を作りたいのですが、
long p[]=new long[(int) (n+1)];だと結局エラーが出てしまいます。どうすればよいでしょうか?
- 989 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 02:36:05 ]
- >>988
何がどうエラーが出るんだ? 明確なエラーが出るのにその状況とエラーメッセージを書かないのは問題を解決したくないからか?
- 990 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 02:41:38 ]
- エラトステネスのふるいのメソッドをlong型に変更して扱える最大数を増やしたいのですが、上手く行かないのです。
public static int Primes(int n){ int i,k; int x[]={0}; int p[]=new int[n+1]; for(i=2; i<=n; i++) p[i]=1;{ for(i=2; i<=n; i++){ if(p[i]==1){ x[0]=i; for(k=2; i*k<=n; k++) p[i*k]=0; } } } return x[0]; }
- 991 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 02:51:07 ]
- >>990
エラーも書けよ
- 992 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 02:53:12 ]
- エラーは
Exception in thread "main" です
- 993 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 02:57:48 ]
- 小出しにするなよ、もっといろいろ出てるだろ
- 994 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 02:58:16 ]
- >>990
配列サイズはintなのでlongは無理。 配列以外のコレクションを使うか、配列を複数用意して使う。 でも単純に考えてもint限界のInteger.MAX_VALUE*8バイトでもギガバイトをはるかに超えてることは認識してる? そのプログラムのような単純なエラトステネスのふるいはかなり効率が悪いと思うし。
- 995 名前:デフォルトの名無しさん [2007/06/27(水) 03:03:04 ]
- whileに直せばいいじゃん
- 996 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 03:17:50 ]
- > for(i=2; i<=n; i++) p[i]=1;{
ここじゃね? シンタックスエラー出てない?
- 997 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 03:19:52 ]
- じゃあ1000取り合戦でもしますか
- 998 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 03:20:00 ]
- >>996
文法的には問題ないはずだが、アルゴリズム的には知らん
- 999 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 03:20:33 ]
- 殺伐としてきたZE!!!!
- 1000 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 03:21:15 ]
- いやっほーーーーーーーーーーーぅ!!!
- 1001 名前:1001 [Over 1000 Thread]
- このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
|

|