poniedziałek, 20 września 2010

"Failed to load Main-Class ..." i NetBeans

Ostatnio pracując z malutkim projektem w NetBeans w pewnym momencie świeżo zbudowany plik JAR uraczył mnie komunikatem:

Failed to load Main-Class manifest attribute

Po krótkim guglaniu dowiedziałem się, że najczęściej taki komunikat dostają osoby, które do pisania programów wykorzystują tylko javac i cat i zapominają umieścić w pliku JAR plik manifest.mf. Proponowane rozwiązanie: użyj jakiegoś IDE, takiego jak Eclipse. Taaaa....

W JARze budowanym przez NetBeansa znajdował się wspomniany plik manifest.mf, ale nie mówił on która klasa w pliku jest główną. Przyczyną takiego błędu w tym IDE jest utworzenie projektu "class library", a nie "java application" - tak brzmi oficjalna wersja. Ale przecież 10 minut temu to jeszcze działało i było założone jako "java application".

Co ciekawe, pod samym NetBeansem cały projekt się uruchamiał, miał wybraną klasę główną itd., itp. Co poszło nie tak?

Moja aplikacja tworzyła pewne pliki w folderze głównym projektu. Kasowałem je czasami, żeby nie było bałaganu. I w pewnym momencie skasowałem z folderu głównego projektu plik manifest.mf. Jak się okazuje, to jego obecność oznacza dla NetBeansa projekt jako "java application". Wystarczyło utworzyć ten plik z jedną linijką treści:

Manifest-Version: 1.0

I śmiga jak zwykle. Cóż, każde IDE ma swoje tajemnice... ;)

Więcej: http://wiki.netbeans.org/FaqNoMainClass

Brak komentarzy:

Prześlij komentarz