Maven problem z działaniem pliku .JAR

0

Problem jest dosyć dziwny, ponieważ aplikacja włączana z posiomu IDE (netBeans) działa bez zarzutu, problem zaczął się kiedy chciałem zrobić release.
Aplikacja desktopowa nie działa z poziomu pliku .jar i nie mam tutaj na myśli tego że się nie włącza. Problemem jest przycisk służący do parsowania strony, pomimo tego że reaguje on na kliknięcię, nie pociąga to za sobą żadnych efektów.

Myślę że jest to kwestia konfiguracji Mavena, jednak nigdzie nie potrafię dojść do tego co muszę zmienić, aby aplikacja była użyteczna gdzieś poza IDE.

Jeśli chodzi o release w oparciu o maven to wydaje mi się że zrobiłem go dobrze. Komendą mvn release:prepare pozbyłem sie SNAPSHOT z nazwy pliku. Nie rozwiązało to jednak problemu.

Wrzucam Link do gita z projektem

https://github.com/KamilAntczak/Mercury-Web-Parser-Zadanie-Rekrutacyjne-SkyRise

Proszę o pomoc i z góry dziękuje !

1

A ja idę o zakład że aplikacja jednak nie działa, tylko wali wyjątkami jak klikasz ten guzik bo np. odnosisz się niepoprawnie do jakichś ścieżek.
Odpal tego jara z konsoli przez java -jar twójplik.jar i patrz co się pojawi na konsoli jak klikniesz guzik.
Jeśli to mimo wszystko nie pomoże, to odpal aplikacje w trybie remote debug i podłącz do niej debuger.

edit: albo nic nie zobaczysz skoro w kodzie masz takie cuda jak

catch(Exception exception)
{}

Ja bym z miejsca uwalił kandydata za taki kod... Tak samo zresztą za te piękne copy-paste tych wszystkich Save... czy za return null który potem wcale nie jest sprawdzany. O publicznych niefinalnych polach nie będę wspominać, bo zaraz ktoś się będzie kłócił że kwestia stylu.
Anyway, kod dość słabo napisany.

0

Ok, pomijając fakt jak źle piszę i jak bardzo nie ogarniam obsługi wyjątków, zrobiłem tak jak zalecałeś.

Masz rację, program wali błędami na lewo i prawo, nie rozumiem jednak dlaczego w IDE wszystko się kompiluje i działa.

Screen

Dalej wydaje mi się że to kwestia mavena jednak nie mam pojęcia co robić.
Oczywiście szukam w internetach ale byłbym bardzo wdzięczny za pomoc, pozdrawiam.

1

skoro twierdzisz, że to wina Mavena to jest na to prosty sposób:

  1. usuń katalog repository z katalogu .m2
  2. mvn clean install

faktycznie rzuca błędem NoClassDefFoundError i to może być to, ale daj mi trochę czasu bo dopiero się wgryzam w Twój kod

1
magnusik22 napisał(a):

Ok, pomijając fakt jak źle piszę i jak bardzo nie ogarniam obsługi wyjątków, zrobiłem tak jak zalecałeś.

Masz rację, program wali błędami na lewo i prawo, nie rozumiem jednak dlaczego w IDE wszystko się kompiluje i działa.

Screen

Dalej wydaje mi się że to kwestia mavena jednak nie mam pojęcia co robić.
Oczywiście szukam w internetach ale byłbym bardzo wdzięczny za pomoc, pozdrawiam.

Dziwne, u mnie działa https://ibb.co/b9nPrc

2

Maven nie spakował bibliotek do twojego jara. Wyrzuć z pom.xml całe pluginManagement i zamiast tego dodaj poniższy kod. Potem mvn clean package i powinno działać

    <build>
        <plugins>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>3.1.0</version>
                <configuration>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                    <archive>
                        <manifest>
                            <mainClass>com.mercuryparser.Application</mainClass>
                        </manifest>
                    </archive>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
1

Haha nie nie, tak na prawde to w tym kodzie są moje perwsze linie wyklepane w javie :D Chce się dostać na staż do niedużej firmy. Muszę jeszcze nad tym popracować zanim oddam to zadanie :D

akurat to kierowałem do @Baniowy ;)

@magnusik22: kod działa, jak się go zbuduje i odpali plik -with-dependencies
popracuj nad tymi wyjątkami i tym return null;, bo Ciebie staż ominie :P

0

Dopiero dziś mogłem usiąść przy komputerze ale mieliście rację ! Dziękuję @Baniowy, twój kod rozwiązał problem. Od tego momentu aplikacja działa tak jak powinna odpalana z poziomu pliku .JAR :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1