★★Java質問・相談スレッド135★★

このエントリーをはてなブックマークに追加
952デフォルトの名無しさん:2010/02/05(金) 20:19:21
今年は2010年だけど、1980年というのはもう既に30年も前のことなのかなって感じ・・・

http://journal.mycom.co.jp/articles/2010/02/05/nico_guide/index.html
進化し続ける『アイドルマスター』の"P"たち
953デフォルトの名無しさん:2010/02/05(金) 20:47:10
Javaプログラムをexeにはできないんですか。ソースコードをみられたくないんですが!
954デフォルトの名無しさん:2010/02/05(金) 20:55:27
JETを使えば?
それが無理ならProGuardとかで難読化で我慢かなぁ。
955デフォルトの名無しさん:2010/02/05(金) 20:59:45
javaをexeにするのと、
ソースコードを見られないのとは別問題。

ソース見られたら困る問題でもあるん?
956デフォルトの名無しさん:2010/02/05(金) 21:07:19
だって恥ずかしいんだもん・・
957デフォルトの名無しさん:2010/02/05(金) 21:11:58
恥ずかしいソフトのコードなんて見る気にもならねーよ。
958デフォルトの名無しさん:2010/02/05(金) 21:58:07
私の恥ずかしいソース売ります
959デフォルトの名無しさん:2010/02/05(金) 23:07:23
JSmoothでラップしたexeからsrc取り出せます?
960デフォルトの名無しさん:2010/02/05(金) 23:11:45
exeのもとのjarの中にsrcが入ってれば取り出せるだろうけど。
まあ、普通ははいってないわな。
961デフォルトの名無しさん:2010/02/05(金) 23:16:26
jarにソースが含まれていなくてもclassファイルの逆コンパイルはかなりの精度で行えるため、含まれているようなもの。
説明するまでも無いと思うけれど、念のためね。
962デフォルトの名無しさん:2010/02/05(金) 23:18:41
web.xmlってこういう風に書いて大丈夫でしょうか?

<web-app>

<servlet>
<servlet-name>Test1</servlet-name>
<servlet-class>Test1</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>Test1</servlet-name>
<url-pattern>/Test1</url-pattern>
</servlet-mapping>

<servlet>
<servlet-name>Test2</servlet-name>
<servlet-class>Test2</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>Test2</servlet-name>
<url-pattern>/Test2</url-pattern>
</servlet-mapping>

</web-app>
963デフォルトの名無しさん:2010/02/05(金) 23:20:56
たぶん
964デフォルトの名無しさん:2010/02/05(金) 23:30:50
<servlet>タグの存在価値が昔からよくわからんかった。今もだが。
<servlet-mapping>だけでいいじゃんとか誰もが思ったはずだ。
965デフォルトの名無しさん:2010/02/05(金) 23:35:11
Javaというか基本的な算数の話になっちゃうと思うんですが、
GMT+1 のタイムゾーンの現地時間って
通常は東京時間から8時間引いて
サマータイムだと7時間引くっていう計算でいいんでしょうか?
966デフォルトの名無しさん:2010/02/05(金) 23:42:08
いいですよ
967デフォルトの名無しさん:2010/02/05(金) 23:42:24
パズル的にはあってるが、何が”通常”なのかが分からない。
システム的にはUTC(≒GMT)を基準にしてるわけだし。挙げ足でしかないけど。
968デフォルトの名無しさん:2010/02/05(金) 23:48:34
>966 >967ありがとうございます。
通常=サマータイム以外(冬時間?)のつもりだったんですが・・・
ごめんなさい。
969デフォルトの名無しさん:2010/02/06(土) 01:05:01
ここのおかげでようやく日本語ドキュメントを手に入れた
探しまくっても手に入らなくて困っていたけど
久々に心のそこから2ちゃんに感謝しました
みなさまありがとう
970デフォルトの名無しさん:2010/02/06(土) 08:16:24
public static void xxx(PrintWriter pw){
・・・
pw.println(・・・);
・・・
}

こんなメソッドなんですが、
このメソッドが動いたときにできる文章をファイルに出力する場合どうしたらいいんでしょうか?
971デフォルトの名無しさん:2010/02/06(土) 08:24:06
HttpURLConnectionを使ってネットと通信してるのですが、
3万回くらい接続すると1回くらい(3日に1回くらい)
IOException: Connection refused: connect が返されます。
これの原因を予想できませんか?
972デフォルトの名無しさん:2010/02/06(土) 08:44:43
>>971
サーバ側の接続数オーバー?
もしくは、ネットワークの調子が悪いとか?

サーバ側のログは見れないの?
973デフォルトの名無しさん:2010/02/06(土) 08:45:47
>>970
PrintWriterってのはファイルを出力しようとしてるのか?
closeしてないとかってオチか?

いっそのことプログラム全部はってくれ。
974デフォルトの名無しさん:2010/02/06(土) 09:05:52
975デフォルトの名無しさん:2010/02/06(土) 09:13:29
>>974
出力先を変えずにファイルにも出力するってことだよな?
じゃ、statInfoメソッドで、
pw.printlnに一行ずつ出力せずに、
いったん文字列を作成しておいて、
ファイル出力してから、
pw.printlnすればいいんじゃね?
976デフォルトの名無しさん:2010/02/06(土) 09:38:54
>>975
出力先を画面ではなく、ファイルにだけpw.printlnの内容を出力するようにしたいです。
977デフォルトの名無しさん:2010/02/06(土) 09:48:55
>>976
ならこれで。

  public clientProc(Socket s) throws IOException {
    this.s = s;
    in = new BufferedReader(new InputStreamReader(
          s.getInputStream()));
    // out = new PrintWriter(s.getOutputStream());
    out = new PrintWriter(new BufferedWriter(new FileWriter("出力したいファイル名")));
  }
978デフォルトの名無しさん:2010/02/06(土) 10:04:45
>>977
できました!
ありがとうございます。
979899:2010/02/06(土) 14:01:42
もうええわ。ほな
980971:2010/02/06(土) 14:11:11
>>972
すいません、間違えました。
約10秒一回ペースで通信して2000回に一回くらいIOExceptionが発生します。
ログが見れればいいんですが、残念ながらログは見れません。
981デフォルトの名無しさん:2010/02/06(土) 14:13:35
サーバの backlog がいっぱい。
ルーターのキャパシティがいっぱい。
ファイアウォールに攻撃認定された。
982デフォルトの名無しさん:2010/02/06(土) 15:46:45
>>980
なんにせよConnection Refusedならサーバー側の問題じゃね?
クライアントに問題あるかどうか知りたいなら、
同じプログラムでURL変えて別のとこつっついてみたら?
983デフォルトの名無しさん:2010/02/07(日) 01:10:41
読書感想文はもう結構
お前自身がどういった問題に直面し、どのように考え、どうやって解決したのかを語ってみろ
984デフォルトの名無しさん:2010/02/07(日) 01:11:37
どこのなにが感想文だって?w
985デフォルトの名無しさん:2010/02/07(日) 01:13:12
画像を大きくするとき、
img.getHeightに値を掛けると拡大するんだけど、
内部処理はどうなっているかわかりますか?
線形補間とかが勝手に行われるんですか?
986デフォルトの名無しさん:2010/02/07(日) 03:04:39
>>980
パフォーマンスや可用性にシビアなシステムじゃなきゃ、
そのぐらいのエラーは、処理上は何回かリトライして繋がれば
それでよし、で済ましてしまうのが一般的だと思う。

どうしても原因が追求したければ、とりあえず、
近場のマシン(設定が好き勝手できて、通信経路も自分で掌握できるマシン)
でサーバー立てて、そこで再現するか調べるべき。
それで再現しないなら、通信経路の問題で、多分 java の知識だけでは
どうにもならない。
987デフォルトの名無しさん:2010/02/07(日) 09:42:37
>>985
線形補間とかしないでスケーリングはできない。
スカスカの離散dotならできるが、スケーリングとは言わないよな。
abstractだから内部処理はプラットフォーム実装によるんだろう。
988デフォルトの名無しさん:2010/02/07(日) 15:12:31
>>965
Javaの中で処理しようとしてるなら、そういう余計な計算するよりも、日時関係のAPIに現地に対応したLocale情報渡した方がいいんじゃね?
989デフォルトの名無しさん:2010/02/07(日) 15:19:00
>>985
Graphics2D で画像を拡大して描画することを言っているのなら、
RenderingHints で補間の種類を指定できる。
デフォルト値は実装依存(?)
990デフォルトの名無しさん:2010/02/07(日) 15:21:45
その辺のapiが存在するかを調べる手段が無いし、任せても、表示が間違ってれば、プログラマに苦情は来るだろうな。
設定が間違ってるとか、機能が無いとかまでサジェスチョンしてやるべき?
991デフォルトの名無しさん:2010/02/07(日) 19:48:14
コンストラクタ = 初期化(リセット)ってことでしょうか?
今シューティングゲームのソース見てるんですが
スコアはリセットメソッドを作りそこで初期化してるようです。
コンストラクタになぜ入れないんですか?
992デフォルトの名無しさん:2010/02/07(日) 19:54:56
コンストラクタはオブジェクトが生成されるときの初期化のためのメソッド
リセットしつつ使い回す必要があるなら初期化用のメソッド作るんじゃない
993デフォルトの名無しさん:2010/02/07(日) 19:58:20
誰か新スレを立ててくれ
994デフォルトの名無しさん:2010/02/07(日) 19:59:57
>>991
一般的には、
コンストラクタ=作成(インスタンスの生成)
です。
標準APIのドキュメントの日本語版でも、コンストラクタの説明は、
「○○(クラス名)を作成します」のようになっています。
ついでに初期化も行うことが多いですが、必ずしも初期化を行うとは限りません。

ゲームのスコアなどについて考えると、コンティニューを行う場合など、
値だけ初期化されればよくてインスタンスを作り直す必要がないので、
そのようになっているのだろうと思います。(ほかにも理由はあるかもしれませんが)
995デフォルトの名無しさん:2010/02/07(日) 20:02:14
コンストラクタはメモリのアロケーションおよび初期化を行います。
初期化コードを書かない場合は、デフォルトで0, 0.0, nullなどで初期化されます。

そのゲームプログラムでリセットメソッドを使っているのは
メモリアロケーションのコストを嫌ってのものかと思われます。

ゲームでは例えば60fpsなら1フレームあたり16ミリ秒以内に描画を含めた全ての処理を
終える必要があるため、メモリアロケーションは大きなコストとなります。

また、中途半端に寿命の長いオブジェクトを残すとガーベッジコレクションが働くため、
最後まで使い回すオブジェクトと1フレーム内で破棄するオブジェクトの仕分けが重要となります。
996デフォルトの名無しさん:2010/02/07(日) 20:12:31
次スレ立てた

★★Java質問・相談スレッド136★★
http://pc12.2ch.net/test/read.cgi/tech/1265541019/

1の
次スレは>>950あたりで。
は、980ぐらいでも問題ないんじゃないかと思ったけど、とりあえずそのままにしておいた
997デフォルトの名無しさん:2010/02/07(日) 20:28:53
>>991-995
コンストラクタ=初期化の方が正しい。(リセットではないが)

オブジェクトの生成(メモリ割り当て)はnew演算子の、つまり言語の機能。
new演算子によって、(メモリ割り当て後に)初期化処理であるコンストラクタが呼び出される。
998デフォルトの名無しさん:2010/02/07(日) 20:34:22
>>997
new演算子がなくてもメモリの割り当てはできるんだが・・・
999デフォルトの名無しさん:2010/02/07(日) 21:08:11
ええっ、知らない。ファクトリとか言わないよねもちろん。
1000デフォルトの名無しさん:2010/02/07(日) 21:08:52
答えはCMの後
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。