
Ubuntu日本語フォーラム

ログインしていません。
Ubuntu9.04にJava Eclipse3.5をいれて通信のプログラムを勉強しています。
ThreadMain.javaというサーバプログラムで、プログラムの引数は3つあり、を次のようにしています。
ポート番号、プロトコル名、ディスパッチャ名の3つです。
このプログラムは、他のソースファイルにかかれているプロトコルとディスパッチャのクラスを以下のように取得し処理を行います。
ProtocolFactory protoFactory = (ProtocolFactory)Class.forName(protocolName + "ProtocolFactory").newInstance();
Dispatcher dispatcher = (Dispatcher)Class.forName(dispatcherName + "Dispatcher").newInstance();
このプログラムを実行すると、
Exception in thread "main" java.lang.ClassNotFoundException: EchoProtocolFactory
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at socket_110.ThreadMain.main(ThreadMain.java:22)
というエラーが生じます。調べてみると、このエラーはクラスが見つからないということだと分かりました。
socket.110
--src
--socket_110
--ThreadMain.java
--プロトコルのファイル
--ディスパッチャのファイル
というように、ThreadMain.javaと同じ場所にはいっています。
場所が悪いのか、なにか設定をするのか、まったく分かりません。
どなたか教えていただけないでしょうか?お願いします。
オフライン
クラス名だけでなく、パッケージ名を付けてみてもだめですか?
Class.forName("socket_110." + protocolName + "ProtocolFactory")
オフライン
回答ありがとうございました。
epiiさんのアドバイスどおりに試してみたところ、正常に起動しました。
助かりました。本当にありがとうございました。
また何かありましたら、質問させていただきますので、アドバイスよろしくお願いします。
オフライン