カテゴリー「java」の6件の記事

2008年11月29日 (土)

Windows2000上のjqs.exeをぶっ殺す

Windows2000だと、正規手順ではjqsは死なない

コントロールパネル、管理ツール、サービスを起動

Java Quick Starterを選んで停止
ついでに右クリック、プロパティを選び、スタートアップの種類を「無効」にする

追記
---------
1.6.0_11-b03でも直ってないみたいだ。しかもアップデートすると、jqs.exeはゾンビのごとく復活する。

まとめ
---------
WindowsXPはコンパネのJavaアイコンからjqsを止めると、jqsサービスもいなくなる
Windows2000は直接サービスを停止しないとダメ
Vistaは知らん・・・

| | コメント (3) | トラックバック (0)

2008年11月 3日 (月)

Javaのjqs.exeって、ぶっ殺すべきか悩む

 Java1.60_10からなにやらjqs.exeなるプロセスが常駐するようになっている。これってOfficeやAcrobatReader、秀丸エディタなどでよくありがちな、Windowsログオン時にアプリの関連ファイルをメモリ上に置いておき、あたかも高速で起動したかのように見せかけるテクニックのJava版みたいなのだが・・・・。

 ぶっ殺すべきか正直悩みどころですな。

 たしかにWEBブラウザ上のApplet起動は速くなっておる。しかしなー、今更感は否めないよな。為替レートの表示も昔はJavaが多かったが、起動速度がクソすぎて皆Adobe Flash Playerに移行しちゃったしな。10年前にやっとけよって思うよほんと。

とりあえずぶっ殺し方だけ、メモ

WindowsXP/Vistaの場合
コントロールパネルのJavaをクリック
詳細タブを選び、その他にある「Java Quick Starter」のチェックをはずす

Windows2000の場合(追記)
win2000だと上記の方法では止められない
コントロールパネルの管理ツール、サービスを起動
Java Quick Starterを選んで停止
ついでに右クリック、プロパティを選び、スタートアップの種類を「無効」にする

新しいバージョンをインストールすると、再び復活するので同じ方法で再度抹殺


メモリを20~30MB程度食うみたいなので、Javaアプリ使わなくて物理メモリ256MB以下の貧弱PCはjpsを抹殺しておくに限るじゃろう。メモリ2~4GB搭載の最新PCを使ってる諸兄はいてもいなくても関係無いかな?

追記
---------
10年前にやってたら、物理メモリ16~32MBとかの世界で20MB常駐しますって、ありえないよな。まあ、なんで20MBも必要とするかについては謎のままだがな。

| | コメント (2) | トラックバック (0)

2005年11月 1日 (火)

struts設定ファイルの書き方

 strutsの設定ファイルstruts-config.xmlと、strutsのtaglibを指定するweb.xmlファイルの記述には癖がある。

各パラメータの出現順があらかじめ決まった並びでないと、Webアプリケーションサーバ(ここではtomcatとする)を起動したときにorg.xml.sax.SAXParseExceptionの例外が発生するようになる。

エラーメッセージが
The content of element type "struts-config" must match "(display-name?,description?,…
という風に、「~とマッチしていないといけない」と書かれている。
私の場合、各パラメータが絶対そのとおりの並びでないといけない、という意味にはとても解釈できなかった。(単に英語力不足だといわれればそれまでだが、matchの解釈が難しくないか?)

以下に並びの順をメモ。並びが決まってるってxmlの意味がないような・・・・・・・・。

struts-config.xml
display-name
description
data-sources
form-beans
global-exceptions
global-forwards
action-mappings
controller
message-resources
plug-in

struts-config.xml
icon
display-name
description
distributable
context-param
filter
filter-mapping
listener
servlet
servlet-mapping
session-config
mime-mapping
welcome-file-list
error-page
taglib
resource-env-ref
resource-ref
security-constraint
login-config
security-role
env-entry
ejb-ref
ejb-local-ref

| | コメント (0) | トラックバック (0)

2005年4月12日 (火)

J2SE 5.0 (3)

またTigerネタかと思ってる人もいるでしょう。はい、そうです。

for文も拡張されてるとのこと。めんどくさいから、どのように拡張されたか調べたときのURLをそのまま晒す。

http://www.atmarkit.co.jp/fjava/javatips/114java019.html

要するに、

String[] strs = String[10];
int i;
for(i=0; i<str.length; i++){
って書くのは嫌だし、

だからと言って
Collection strs = new ArrayList();
Iterator it;
for(it=strs.iterator(); it.hasNext();){
って長すぎるから嫌だっていうので

Collection strs = new ArrayList();
for(String str : strs){
って書けるようにしたほうがいいよね。

ということらしいが、配列における添え字をインクリメントする様な処理ではない時ってどうするんだろう?(汗

| | コメント (0) | トラックバック (0)

2005年4月11日 (月)

J2SE 5.0 (2)

javaのソースをコンパイルしていたら

注: hoge.java の操作は、未チェックまたは安全ではありません。
注: 詳細については、-Xlint:unchecked オプションを指定して再コンパイルしてください。

とか言われてしまった。

ああ、なんでver5でこんなに変更したんだろうとぼやきながら調べる。
(1.4も何が変わったのか把握してなかったりするんだけど)

テストプログラムを作成

j2se5_test1.java
---------------------------------
import java.util.*;

public class j2se5_test1
{
     private static Set testSet = new HashSet();

     public static void main(String arg[]){
         testSet.add("sample1");
         testSet.add("this is test.");
         testSet.add("damn tiger");

         int i = 1;
         Iterator iterator = testSet.iterator();

         while(iterator.hasNext()){
             System.out.println(iterator.next());
         }
     }
}

Setが扱うオブジェクトの型を宣言時に明示しないといけないらしい。

従来はキャストで解決していたのをコレクションの宣言で型指定することで、実行時に型が違うって怒られるのをコンパイル時に検出しようってのが目的のようだ。

j2se5_test2.java
---------------------------------
private static Set testSet = new HashSet();
private static Set<String> testSet = new HashSet<String>();

ついでにprintfを使ってみる。

System.out.println(iterator.next());
System.out.printf("%d : \"%s\"\n", i++, iterator.next());

これで文句言われなくなった。
javac j2se5_test2.java

バージョンを古いのにver1.4指定してコンパイルすると元のソースでも文句言われない。
javac -source 1.4 j2se5_test1.java

しかし、新しいのをver1.4指定してコンパイルすると・・・・
javac -source 1.4 j2se5_test2.java

あたりまえだけど、<String>とprintfに対して文句言われる。

どこかの日記帳には-source 1.5指定しない限り、古いのでコンパイルされるって書いてあったけど、最近のだとデフォルトで1.5指定されている様子。
1.4以前に書かれたソースをコンパイルするたびに文句言われるのか・・・・・・。

| | コメント (0) | トラックバック (0)

2005年4月 6日 (水)

J2SE 5.0

いまなさらがらJ2SE 5.0からprintfの機能が追加されていることに気付く。

System.out.printf("%d\n", i);

あと、イテレータやらなんやらが言語拡張されてるような気配。orz
コアライブラリが増えるのはうれしいんだけど、言語をいじるのは
やめてほしい。C99も同様。

玄箱に導入しようとしているjava SDK環境はIBMの都合上1.4xなのだが、5に慣れると1.4以下に戻るのにはリハビリが必要そう。なんでバージョン番号を1.4 -> 5.0にしちゃったんだろう?SUN

| | コメント (2) | トラックバック (0)