Java FX / Maven błąd

0

Czesc,
jestem początkujący w Javie i próbowałem zrobić projekt w Maven w połączeniu z JAVA FX.
Niestety wyskakuje mi ciagle ten sam błąd. Wiem, że to powinno działać bo wcześniej mi wychodziło, jednak w tym wypadku nie mogę tego przeskoczyć.
Mglibyście rzucić okiem na to ?
screenshot-20170524125847.png
screenshot-20170524125826.png

Jeżeli chodzi o kod to:
Main:

package project.rental.front;

        import javafx.application.Application;
        import javafx.fxml.FXMLLoader;
        import javafx.scene.Parent;
        import javafx.scene.Scene;
        import javafx.stage.Stage;

public class Main extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception{
        Parent root = FXMLLoader.load(getClass().getResource("/sample.fxml"));
        primaryStage.setTitle("Rental Office");
        primaryStage.setScene(new Scene(root, 350, 275));
        primaryStage.show();

    }


    public static void main(String[] args) {
        launch(args);

    }
}

Controller:

package project.rental.front;


/**
 * Created by fmkam on 06.05.2017.
 */
public class Controller{

}

No i klasa sample.fxml

<?xml version="1.0" encoding="UTF-8"?>

<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>


<GridPane fx:controller="project.rental.front.Controller" xmlns:fx="http://javafx.com/fxml" alignment="center" hgap="10" vgap="10">

</GridPane>

i plik.pom:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>RentalMovieOffice</groupId>
    <artifactId>RentalMovieOffice</artifactId>
    <version>1.0-SNAPSHOT</version>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.39</version>
        </dependency>
        <dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
            <version>20160810</version>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.5</version>
        </dependency>
    </dependencies>

</project>

Z góry dzięki !!
Pozdrawiam!

1

Maven sam z siebie nie wygeneruje manifestu, w którym wskazana jest klasa z metodą main.

Musisz dopisać coś w rodzaju

<build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        ...
        <configuration>
          <archive>
            <manifest>
              <addClasspath>true</addClasspath>
              <mainClass>fully.qualified.MainClass</mainClass>
            </manifest>
          </archive>
        </configuration>
        ...
      </plugin>
    </plugins>
  </build>
0

Dzięki za pomoc. Problem rozwiązany na chwilę obecną. Chodziło jednak o to że linia :

Parent root = FXMLLoader.load(getClass().getResource("/sample.fxml"));

odnosiła sie do miejsca na dysku:
C:\Users\fmkam\OneDrive\Dokumenty\Intellij IDEA\RentalMovieOffice\target\classes

a IntelijIdea nie zapisywal mi tam kopi sample.fxm tylko zapisywał ją tu:
C:\Users\fmkam\OneDrive\Dokumenty\Intellij IDEA\RentalMovieOffice\src\main\java\project\rental\resources

takze cos musiało byc ze środowiskiem. Mysle ze przeinstalowanie IntelijIdea powinno pomóc.

Po skopiowaniu pliku to katalogu target/classes odpala bez zarzutu.

0

@Kamil O: czekaj, to nie jest windows, że musisz przeinstalować IDE. Masz walniętą konfigurację i tyle. To C:\Users\fmkam\OneDrive\Dokumenty\Intellij IDEA\RentalMovieOffice\src\main\java\project\rental\resources powinno być ustawione na C:\Users\fmkam\OneDrive\Dokumenty\Intellij IDEA\RentalMovieOffice\src\main\resources i powinno wtedy pomóc.

0

Kamil, na screenshocie masz jeszcze jeden folder Resources. I to z lepszą ikonką. Może tam wrzuć ten plik. Ewentualnie tam utwórz jeszcze podfoldery project/rental i wtedy.

Javove buildery mają zdefiniowane lokalizacje zasobów. Pliki z tych lokalizacji idą automatycznie do classpath i są potem dostępne.

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