私のウェブサイトは、ubuntu の Apache でホストされています。内部に 2 つのフォルダーといくつかの .class および .scc ファイルを含む JAR ファイルが提供されました。jar ファイル名 = myJarfile、このアーカイブ内のフォルダー = myFolder、およびこのフォルダー内のクラス = myClass としましょう。
次のようにクラスを実行するように言われました。
java myFolder.myClass
しかし、私はこのエラーが発生します:
$ java myFolder.myClass
Exception in thread "main" java.lang.NoClassDefFoundError: myFolder/myClass
Caused by: java.lang.ClassNotFoundException: esGateKeeper.cookieServer
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: myFolder/myClass. Program will exit.
私も試しました:
$ java myJarfile.myFolder.myClass
Exception in thread "main" java.lang.NoClassDefFoundError: myJarfile/myFolder/myClass
Caused by: java.lang.ClassNotFoundException: myJarfile.myFolder.myClass
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: myJarfile.myFolder.myClass. Program will exit.
管理者は、それが CLASSPATH の問題であると私に言いました。何も思いつきません。私のウェブサイトでは、PERL CGI を使用しており、JAVA はまったく使用していません。私は Java プログラマーではありません。グーグルで調べても、これを実行する方法がわかりませんでした。
クラス/または JAR ファイルは、認証のために、PERL CGI から通信するローカルホストで IPC デーモンを開始することになっています。ブラウザから取得した Cookie を復号化します。
これを実行するためにサーバーに何をインストールする必要があるかわかりません。私は以下のようにJavaを持っています:
$ java -version
java version "1.6.0_21"
Java(TM) SE Runtime Environment (build 1.6.0_21-b06)
Java HotSpot(TM) Client VM (build 17.0-b16, mixed mode, sharing)
アドバイスお願いします。
タイ。ラジーヴ
_ OK __ .jar ファイルを指す CLASSPATH 変数をエクスポートすることで、これを解決しました。
export CLASSPATH="/full/path/to/myJarfile.jar"
その後、正常に実行されます:
$ java myFolder.myClass
デーモンを起動します....
しかし、正直なところ、ここで何が起こっているのかわかりません。この .jar ファイルには、myFolder と META-INF の 2 つのフォルダーがあります。myFolder には、多数の .class ファイルと 1 つの .scc ファイルがあります。それらのどれも「メイン」と名付けられていません....
時間と助けが私に差し伸べられたことに感謝します。
タイ。ラジーヴ