- PR -

AppletがNoClassDefFoundErrorで止まってしまう原因について

1
投稿者投稿内容
kato
会議室デビュー日: 2007/04/19
投稿数: 4
投稿日時: 2007-04-19 02:03
はじめて、この会議室を利用させていただきます、
加藤と申します。

アプレットで、IAXクライアントである、jiaxclientをダウンロードし、(↓)
http://www.hem.za.org/jiaxclient/
画面のレイアウト再編集してリリースしたいと思っております。

前置きですが、、、
私は、元々phpを使っておりまして、javaは今回初めて扱うのですが、ブラウザ版のソフトフォンを作成するには、上記アプレット版のソフトフォン(jiaxclient)しかないので、今回、頑張って調べながら作業している次第です。




さて、
まず、http://www.hem.za.org/jiaxclient/からソースをDLし、
Eclipse3.2(windows版)にて。。
 □デフォルトパッケージ
   IAXTest.java
   
 □inifileパッケージ
   IniFile.java
   IniFileParser.java
   IniFileParserConstants.java
   IniFileParserTokenManager.java
   ParseException.java
   SimpleCharStream.java
   Token.java
   TokenMgrError.java
 
 □net.sourceforge.iaxclientパッケージ
   Call.java
   CallState.java
   CallStateEvent.java
   IAXAdapter.java
   IAXListener.java
   JIAXClient.java
   LevelsEvent.java
   LibInstaller.java
   NetStatsEvent.java
   OptionDialog.java
   Registration.java
   RegistrationEvent.java
   Sound.java
   TextEvent.java
   UrlEvent.java

 □net.sourceforge.iaxclient.jniパッケージ
   AudioDevice.java
   Constants.java
   IAXEvent.java
   LibJiaxc.java
   NetStat.java
を作成し、各パッケージにソースをインポートしました。

また、http://www.hem.za.org/jiaxclient/ で、配布しております、
  jiaxc_linux_x86.jar
  jiaxc_linux_x86_md5.jar
  jiaxc_windows_x86.jar
  jiaxc_windows_x86_md5.jar
も、同プロジェクト上に配置しました。

編集作業。。
(本来は、ここで編集を加えたいところですが、ビルドして正しく動作するか確認したいため、編集していません。)


デフォルトパッケージにインポートした、IAXTest.javaの
Ecripse上で、ビルドしたときは、アプレットビューアで、問題なく表示され、使用できました。

次に配布用に、jarファイルにエクスポートして、表示のためのHTMLを作成します。
 [HTML]
<html>
<body>
<applet archive="jiaxtest.jar" code="IAXTest.class" width="70" height="100"></applet>
</body>
</html>


しかし、
HTML上では、アプレットが表示できず、javaコンソールで確認すると
__________________________
java.lang.NoClassDefFoundError: Could not initialize class net.sourceforge.iaxclient.JIAXClient
at IAXTest.initIaxc(IAXTest.java:545)
at IAXTest.init(IAXTest.java:415)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
__________________________

といったエラーが表示され、アプレットを表示させることができませんでした。
いろいろ調べてみたのですが、JIAXClientは読み込まれない理由が分からず質問させていただきました。

どなたか、ご存じの方がいらっしゃいましたらご助言頂ければ幸いです。
どうぞ、よろしくお願いいたします。
ひろ@ya
大ベテラン
会議室デビュー日: 2006/02/23
投稿数: 168
投稿日時: 2007-04-19 09:02
jiaxclientについては何も知らないので一般論で。

NoClassDefFoundErrorなので、実行に必要なクラスファイルの何かが足りないということです。

ブラウザ側のjavaの実行環境に含まれないライブラリを使っているのなら、それもWebサーバからダウンロードさせる必要があります。

http://www.asahi-net.or.jp/~sd5a-ucd/rec-html401j/struct/objects.html#h-13.4
kato
会議室デビュー日: 2007/04/19
投稿数: 4
投稿日時: 2007-04-19 13:52
ひろ@yaさま
ヒントありがとうございます。

クラスファイルが足りないというエラーとのこと、、
自分で0から作成していたらわかりそうなのですが、既存のソースからですので、ちょっと読み解いてみたいと思っております。
(Ecripseの設定の間違いの可能性も考えておりました。)

なんらかの原因がわかりましたら、他の方のお役に立てるよう投稿したいと考えております。

ありがとう御座いました。

1

スキルアップ/キャリアアップ(JOB@IT)