- - PR -
JavaのJarファイルの実行でのエラー
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-09-29 09:54
java初心者です。 以下のエラーの対処策を教えてください。
jarファイルの中身は次の通りです。 C:\tmp\java_jar>jar tf SendMst META-INF/MANIFEST.MF LogLib.class SerialConnection.class SendProc.class SendMst.class IniLib.class SerialParameters.class SendParameters.class OracleLib.class ComFunc.class 実行時のエラー内容は次の通りです。 C:\tmp\java_jar>java -jar SendMst.jar SendMst.ini Exception in thread "main" java.lang.NoSuchMethodError at IniLib.getIni(IniLib.java:237) at SendMst.main(SendMst.java:39) すなわち、IniLibのクラスが参照できないようです。 ちなみに、プログラムはEclipseで作成しました。 Eclipse上では正常に動作しています。 また、jarファイルはEclipseのエキスポート機能で作成しました。 よろしくお願いいたします。 | ||||
|
投稿日時: 2004-09-29 12:49
と言うよりは、IniLibクラスのgetIniメソッドでエラーが発生しているようですが。 IniLibのソースを開示されると原因が見つかるかも知れませんね。 | ||||
|
投稿日時: 2004-09-29 13:26
引用:
-------------------------------------------------------------------------------- たーぞう様の書き込み (2004-09-29 12:49) より: と言うよりは、IniLibクラスのgetIniメソッドでエラーが発生しているようですが。 IniLibのソースを開示されると原因が見つかるかも知れませんね。 -------------------------------------------------------------------------------- たーぞう様 早速、返信有難うございます。 ご指摘のように関連しているソース部分をコメントにしたところ エラーは無くなりました。 その部分は、 String iniBuf = cf.getPrivateProfileString("Common", "PrevTime", iniFile); if (iniBuf.equals("") == false) { String dum[] = iniBuf.split(","); iVal = Integer.parseInt(dum[0]); } else { iVal = 0; } となっています。実行時には iniBufは「62, TRUE] という文字列が返ります。 split がまずいのでしょうか? 特にimport文も記述していないのですが??? ご面倒ですが、教えていただければ幸いです。 | ||||
|
投稿日時: 2004-09-29 14:16
ここが怪しそうですが、cfのクラス定義はどのように記述されていますか? また、ひょっとして「GetPrivateProfileString」が正しいのでは?(^^; | ||||
|
投稿日時: 2004-09-29 14:35
たーぞう様 ビギナーです。
getPrivateProfileString はjarファイル中のComFuncクラスで定義しており、 これ自体は問題ありませんでした。 問題はやはり、「split](JDK 1.4以降)で Eclipseでの作業はJDK1.4で行っていましたが、 テストした環境のJDKは1.3.1のため、エラーになっていたようです。 お騒がせしました。 これからもよろしくお願いいたします。 | ||||
|
投稿日時: 2004-09-30 01:58
もう解決したみたいですが、java.lang.NoSuchMethodError は呼び出そうとしたメソッドの定義が存在しないことを示します。
おそらく根本的な原因はクラス毎にコンパイルのタイミングがことなってインターフェースが古いままになっていたからではないでしょうか。この場合は全部まとめてコンパイルしてやれば Ok です。 コンパイル環境、実行環境の差異は関係ないと思います。 | ||||
|
投稿日時: 2004-09-30 10:12
Stringクラスにsplitメソッドが実装されたのは1.4からのようなので、ビギナーさんのご意見が正しいようです。 | ||||
|
投稿日時: 2004-09-30 13:00
あ、ほんとですね。思い込みで誤ったことを書き込んでしまいました。
混乱させてしまっていたらごめんなさい。m(. .)m |
1