1

問題は、Eclipse Juno をクリックして「Run as Java Application」をクリックして実行すると動作することですが、Linux シェル スクリプトまたは少なくとも Linux シェルから実行する必要があります。

$CATALINA_HOME/webapps/myapp/WEB-INF/lib のすべての jar ファイルをクラスパスに追加する必要があります。

これが私のコードです:

package com.myapp.client;

public class ClientApp {
    public static void main(String args[]) {
        System.out.println("Hi Client");
    }
}

$CATALINA_HOME/webapps/myapp/WEB-INF/classes/com/myapp/client に移動したら、次のコマンドを発行します。

java -classpath "/home/devuser/DevTools/apache-tomcat-7.0.32/webapps/myapp/WEB-INF/lib/*:." ClientApp

私はこの例外を受け取ります:

Exception in thread "main" java.lang.NoClassDefFoundError: ClientApp (wrong name: com/myapp/client/ClientApp)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: ClientApp.  Program will exit

ホーム ディレクトリ (/home/devuser) に移動してこれを入力しても、まだ機能しません。

java -classpath "/home/devuser/DevTools/apache-tomcat-7.0.32/webapps/myapp/WEB-INF/lib/*:." $CATALINA_HOME/webapps/myapp/WEB-INF/classes/com.myapp.ClientApp

Exception in thread "main" java.lang.NoClassDefFoundError: /home/devuser/DevTools/apache-tomcat-7/0/32/webapps/myapp/WEB-INF/classes/com/myapp/ClientApp
Caused by: java.lang.ClassNotFoundException: .home.devuser.DevTools.apache-tomcat-7.0.32.webapps.myapp.WEB-INF.classes.com.myapp.ClientApp
    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:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: /home/devuser/DevTools/apache-tomcat-7.0.32/webapps/myapp/WEB-INF/classes/com.myapp.ClientApp.  Program will exit.

これを読んでくれてありがとう...誰かが私を助けてくれれば幸いです。

4

1 に答える 1

1

ライブラリとクラスはすべてクラスパスにある必要があり、次の引数はクラスへのパスです。

java -cp '.:/path/to/libdir/*:/path/to/myapp.war' com.myapp.client.ClientApp
于 2012-12-13T00:13:35.263 に答える