Jak uruchomić klasę z WAR z linii poleceń?

Mam klasę Java, która ma główną i kiedyś uruchamiałem jako samodzielną aplikację z linii poleceń, np.

java -jar myjar.jar params

Musiałem przepakować kod, aby uruchomić go w apache, a cały mój kod, łącznie z klasą punktu wejścia ze starego słoika, znalazł się w pliku WAR w celu łatwej depilacji na serwerze WWW.

Jednak nadal chcę być w stanie uruchomić go z wiersza poleceń, a kod nie zmienił się i wszystko jest na swoim miejscu. Po prostu nie wiem, jak go uruchomić.

Oto co próbowałem ...

Przypuszczałem, że WOJNA jest jak słoik

java -jar mywar.war params

To nie powiodło się, mówiąc, że w manifeście nie zdefiniowano żadnej głównej klasy.

Ręcznie dodałem manifest do wojny i spróbowałem ponownie, z tym samym skutkiem.

Zauważyłem, że podczas mojej wojny miałem folder o nazwie META-INF zawierający manifest.mf, więc dodałem linię do tej deklarującej moją główną klasę, tak jak do normalnego manifestu ...

Manifest-Version: 1.0
Main-Class: mypackage.MyEntryPointClass

To dałonoClassDefFoundError mypackage.MyEntryPointClass, co jest pewnego rodzaju postępem. To doprowadziło mnie do przekonania, że ​​to tylko kwestia ścieżki, więc spróbowałem

Manifest-Version: 1.0
Main-Class: WEB-INF.classes.mypackage.MyEntryPointClass

Otrzymuję teraz ten sam błąd, ale ze śledzeniem stosu ...

Exception in thread "main" java.lang.NoClassDefFoundError: WEB-INF/classes/mypackage/MyEntryPointClass (wrong name: mypackage/MyEntryPointClass)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        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)

Poszukuję trochę, ale nie mogę znaleźć niczego, co odpowiadałoby na moje pytanie, i przeczytałem tutaj kilka innych pytań, które są nieco inne, więc pomyślałem, że będę pisać.

Java 1.5, nie, że myślę, że to powinno mieć znaczenie.

questionAnswers(9)

yourAnswerToTheQuestion