FC2ブログ

えらーだらけ。

えらー奮闘記。 様々なエラーと解決策。

Win環境で、インストール済みのJDKのバージョンを調べる方法

Win環境で、インストール済みのJDKのバージョンを調べる方法


コマンドプロンプトを開き、

java -version


と入力し、Enterを押下。

JDKがインストール済みの場合は、バージョン情報が表示される。

jdk_ver.jpg


※XP以外では未確認。
スポンサーサイト



  1. 2008/01/08(火) 14:58:49|
  2. やりたいこと。
  3. | トラックバック:0
  4. | コメント:5

[Java] 型 ArrayList のメソッド add(int, Object) は引き数 (int) に適用できません。

■エラー内容■
型 ArrayList のメソッド add(int, Object) は引き数 (int) に適用できません。


■原因■
ArrayListに直接int型(基本型)をaddした場合にエラー発生

基本型参考HP:Javaの道

ArrayList arrList = new ArrayList();
int i = 0;
arrList.add(i); ←この部分に対してエラーが出る



■解説■
現在の最新バージョンであるJDKを使用している場合は、
add(int)と言う指定方法が使用可能であるが、
JDKのバージョンが低いと、int型のみを引数としてaddする事ができない。

■対処法■
今の所、思いつく対処法は下記の2種類。

①JDKのバージョンを最新にする。
②addしたいint型をIntegerやStringなどにキャストし、オブジェクトにした後addする。


①の方法は便利だし、ソースを変更せずに済むし、
使用可能となるメソッドも増えるが、
JDK自体のアップデートは他部分へも大きくかかわってくるので、
慎重に行わなければならない。

また、仕様的にアップデートできない場合もあると思うので、
一部のソースでこのエラーが出た際には、
②で対処を行っておく方がいいと思います。

参考URL:http://www.javadrive.jp/start/arraylist/index1.html




+ どれだけお役に立ってるのか調査の為に ポチッとお願いします +

テーマ:エラー - ジャンル:コンピュータ

  1. 2008/01/08(火) 14:41:26|
  2. java
  3. | トラックバック:0
  4. | コメント:0

[Eclipse]操作実行中にエラー

【エラー内容】
起動中(エラー:指定された VM インストールが見つかりません: 型 標準 VM、名前 jdk1.5.0_06)
20080108_eclipse00.jpg


【エラー発生方法】
Lombozを利用したプロジェクトに対して、
warファイル作成時にEclipseでエラーが発生する。
(ビルドは通る)

Lomboz JSEE→Deploy Module→『操作実行中にエラー』発生


【エラー発生原因】
このエラーが発生する事になった原因は思い当たる。
今まで問題なく使用していたEclipseを、
JREやらJDKやら全て新しくインストールした
Newマシン(別PC)で起動した事にあるかと。

そして、このエラー自体はJDKをバージョンアップしたり
した際によく見られる現象らしいです。(ぐぐった結果)

原因は、大きく言ってしまえば「キャッシュの蓄積」による問題。
詳細は下記ページを参照して下さい。
参考ページ:OZACC.blog


【解決方法】
①エラーが発生しているプロジェクト内の「build.xml」を右クリック
②実行(R)⇒外部ツール(E)を選択
20080108_eclipse01.jpg

③Antビルド配下に、キャッシュされている部分を選択し、削除
 (複数ある場合は、複数を一括削除可能)
20080108_eclipse02.jpg

20080108_eclipse03.jpg

④「選択した起動公正を削除しますか?」で「はい(Y)」を選択
20080108_eclipse04.jpg

⑤Antビルド配下で選択した項目がクリアされている事を確認し、「閉じる」を選択
20080108_eclipse05.jpg



これでwarファイルが正常に生成されました。




+ どれだけお役に立ってるのか調査の為に ポチッとお願いします +

テーマ:エラー - ジャンル:コンピュータ

  1. 2008/01/08(火) 14:35:51|
  2. eclipseエラー
  3. | トラックバック:0
  4. | コメント:0

[Java] ListとArrayListの違い


Listはインターフェイス

ArrayListは実装クラス


だそうです。
意外と調べたこと無かったのですが、
偶然見つけたのでメモ。



APIを読み比べて、納得。



ListについてのAPIはこちら。
ArrayListについてのAPIはこちら。

参考URL:http://rararahp.cool.ne.jp/cgi-bin/lng/java/javalng.cgi?print+200309/03090008.txt



+ どれだけお役に立ってるのか調査の為に ポチッとお願いします +

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2007/10/26(金) 11:42:35|
  2. java
  3. | トラックバック:0
  4. | コメント:0

Arrays.toString

配列要素をカンマ区切の文字列に変換してくれる
Arrays.toString(配列要素)


String[] arrStr = new String[3];
arrStr[0] = "a";
arrStr[1] = "B";
arrStr[2] = "c";

上記のような配列要素があった場合、

String str = Arrays.toString(arrStr);

このようにすると、strには

a, B, c

と言う文字列が返って来る。

「配列をカンマ区切で返してくれる」と先に述べたが、
実際には「, 」(カンマ+半角スペース)で区切られる。


私的に、このスペースはいらない。。。


スペースを入れるか入れないかのオプションがあれば
もっと便利なのに・・・・・。


ArraysのtoString(配列要素)に関するAPIはこちら。



+ どれだけお役に立ってるのか調査の為に ポチッとお願いします +

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2007/10/26(金) 11:19:11|
  2. java
  3. | トラックバック:0
  4. | コメント:2

フォームのファイル部品<input type=file>の値をクリアする処理

form内の部品値をクリアする場合は、
JavaScriptでいくつか方法があります。

テキストボックスに対して値をクリアしたいのであれば
下記の用に、テキストボックスへ空白を入れてあげれば良いです。

-処理-
document.frm.テキストボックス.value = "";

-実行結果-
テキストボックス内の値はクリアされる。

ファイル部品も、画面の見た目上はテキストボックスと似ているので
同様の処理が行えるかと思ったのですが、
ファイル部品に対して空白を入れても、
ファイル名が表示される部分の値はクリアされませんでした。

-試した処理-
document.frm.ファイル部品.value = "";

-実行結果-
ファイル部品に表示されているパスはクリアされない。




なぜか?を調べた結果




フォーム部品のfileは、セキュリティの関係上
JavaScriptでの値変更、クリア等が不可能
だそうです。


理由は、任意の値に変更できた場合、
クライアントの任意のローカルファイルが
JavaScriptで取得可能となってしまう為と言う事でした。


唯一、<input type="reset">を使用すれば
値のクリアが可能なようですが、
resetは同一form内の全ての値をクリアしてしまう為
残念ながら私には使用ができませんでした。


フォーム部品のみのクリア処理と言うのは、
今の所あきらめるしかないようです(涙)



+ どれだけお役に立ってるのか調査の為に ポチッとお願いします +

テーマ:web制作 - ジャンル:コンピュータ

  1. 2007/10/24(水) 20:06:41|
  2. JavaScript
  3. | トラックバック:0
  4. | コメント:0

eclipce Getter および Setterの生成 コメントの編集

GetterおよびSetterの生成と言う便利な機能がありますが、Ecripceの初期設定では
自動生成された各メソッドのコメントが下記の様になています。

/**
* @param xxx xxx を設定。
*/
public void setXxx(String xxx) {
this.xxx = xxx;
}
/**
* @return xxx を戻します。
*/
public String getXxx() {
return xxx;
}

お好みのコメントへ編集する場合は下記の通り。

[ウィンドウ(W)]→[設定(P)]
  Java→コード・スタイル→コード・テンプレート
    コメント→Getter→【編集】ボタン押下
          →Setter→【編集】ボタン押下


+ どれだけお役に立ってるのか調査の為に ポチッとお願いします +
  1. 2007/07/03(火) 13:39:01|
  2. 未分類
  3. | トラックバック:0
  4. | コメント:0

[JSPサーブレットエラー]org.apache.struts.taglib.logic.IterateTag.doStartTag(IterateTag.java:238)

【エラー内容】
javax.servlet.jsp.JspException: コレクションが見つかりません
org.apache.struts.taglib.logic.IterateTag.doStartTag(IterateTag.java:238)

【エラー発生部分】
JSP内の<logic:iterate name="xxxBean" property="listxxx">タグでエラー発生。


【確認事項&解決策】
  1. FormでGetterもSetterも作成しているかどうか。
   →使用しなくても、GetterとSetterはペアで定義する方がいいようです。
  
  2. パラメータ(例の場合ではlistxxx)がJSPに渡って来た時にnullとなっていないか。
   →<logic:iterate>タグは、null値に対して行うとエラーになります。
  
  3. Actionクラスから該当JSPへ遷移させる場合、HttpServletRequestで受け取ったリクエストを
   Formに受け渡しができているかどうか。


+ どれだけお役に立ってるのか調査の為に ポチッとお願いします +

テーマ:エラー - ジャンル:コンピュータ

  1. 2007/06/29(金) 16:31:17|
  2. サーブレットエラー
  3. | トラックバック:0
  4. | コメント:2

Strutsのファイルアップロードでjava.lang.IllegalArgumentException: argument type mismatchエラー

Strutsのファイルアップロード<html:form>で
java.lang.IllegalArgumentException: argument type mismatchエラーが発生。


■エラー内容■
HTTPステータス 500 -

type 例外レポート

メッセージ

説明
The server encountered an internal error () that prevented it from fulfilling this request.

例外
javax.servlet.ServletException: BeanUtils.populate

原因
java.lang.IllegalArgumentException: argument type mismatch


JSPの記載内容
<html:form action="/xxx" styleId="frm">
  <html:file property="imageFile" size="40" />
</html:form>

Formの内容
private FormFile imageFile;

public void setImageFile(FormFile imageFile){
  this.imageFile = imageFile;
}

public FormFile getImageFile(){
  return imageFile;
}


■原因■
Strutsのファイルアップロードを行う<heml:file>を使用する際、
Formクラスでは対象プロパティーの型にFormFileクラスを使用しますが、
JSP側の<html:form>タグ属性にenctype="multipart/form-data"を指定しないと
上記のようなエラーが発生します。


■解決策■
JSPの<html:form>タグ属性へenctype="multipart/form-data"を指定する。

<html:form action="/xxx" enctype="multipart/form-data" styleId="frm">
  <html:file property="imageFile" size="40" />
</html:form>



+ どれだけお役に立ってるのか調査の為に ポチッとお願いします +

テーマ:エラー - ジャンル:コンピュータ

  1. 2007/06/06(水) 14:35:11|
  2. サーブレットエラー
  3. | トラックバック:0
  4. | コメント:0

シンボルを解決できません。

2つのCalendarオブジェクトを比較する部分でエラー発生。
自分の環境ではエラーが起きないのに、他の環境でエラー。
(文法的にも間違っているとは思えない)

■エラー内容■
xxx.java:530: シンボルを解決できません。
シンボル: メソッド compareTo (java.util.Calendar)
場所 : java.util.Calendar の クラス
if(begin_date.compareTo(end_date) == 0){
           ^
エラー 1 個


■原因■
CalendarクラスにcompareToメソッドが導入されたのはJREの1.5からの為、
それ以前のバージョン環境では使用不可。
その為、上記のようなエラーが発生。
JREのバージョンを調べ、使用可能なメソッドで処理を書き換える必要が有り。

■対処法の一例■
DateクラスではcompareToがJRE1.2から導入されているので、Dateクラスで比較可能。
CalendarオブジェクトはgetTime()メソッドで、Dateオブジェクトを取得可能。


+ どれだけお役に立ってるのか調査の為に ポチッとお願いします +

テーマ:エラー - ジャンル:コンピュータ

  1. 2007/05/31(木) 18:28:51|
  2. エラー
  3. | トラックバック:0
  4. | コメント:0
次のページ