2013-03-14 10 views
5

Mam plik jar zawierający dwie klasy java, obie mają główne metody. Czy istnieje sposób, który mogę określić podczas uruchamiania pliku jar, do której klasy należy wywoływać? Wiem, że plik manifestu można zmodyfikować, aby określić główną klasę, ale ponieważ można wymienić tylko jedną klasę, to nie pomaga. Sprawdziłem poniższe linki, ale te nie odczuwało rozwiązania problemu:Jak uruchomić określoną klasę główną ze słoika

https://stackoverflow.com/questions/5474666/how-to-run-a-class-from-jar-which-is-not-the-main-class-in-its-manifest-file

oczywisty plik execute a main class from a jar

To daje NoClassDefFoundError.

+6

java -jar

+0

możliwe duplikat [Jak uruchomić klasę z słoik, który nie jest Main-Class w pliku manifestu] (http://stackoverflow.com/questions/5474666/how- uruchamiać-klasa-z-słoik-który-jest-nie-główną-klasą-w-jego-pliku-manifestu) –

Odpowiedz

1

Posiadać klasę, która działa jako kontroler. W swoim main() wywołaj inne klasy na podstawie przekazanych argumentów. Dodaj to jako główną klasę w manifeście

0

Napisz klasę główną, w której główna metoda wywołuje właściwą metodę w zależności od przekazanego argumentu wiersza poleceń. Dodaj tę główną klasę do manifestu.

2
java -cp target/your_file.jar your.package.name.YourClass