J'ai essayé plusieurs méthodes au cours des derniers jours sans succès ... J'ai parcouru plusieurs entrées de Stackoverflow et en vain ... Il me manque quelque chose.Le programme ne fonctionnera pas une fois .jar
J'ai essayé trois IDE différents ... IntelliJ, Eclispe et Netbeans. Le problème est lorsque vous essayez de transformer mon programme en un fichier exécutable impossible à exécuter (en double-cliquant ou en exécutant la commande).
Lors de l'exécution de la commande suivante sur:
java jar D: \ Computing \ Programmation \ Java \ Projects \ JavaFXGameMenu \ out \ objets \ JavaFXGameMenu_jar \ JavaFXGameMenu.jar
je reçois: erreur: Impossible de trouver ou de charger la classe principale root.Main
Quand je lance le même, mais avec javaw place .. i sont pas des messages d'erreur, mais rien ne se passe non plus. Je suis principalement en utilisant IntelliJ comme une application JavaFX que je construis.
C'est la hiérarchie du projet:
Lors de la création du Artefact je choisis ce qui suit basé sur d'autres sujets:
Je puis re courir ce à l'aide: Java jar D : \ Computing \ Executables \ JavaFXGameMenu.jar
Je reçois le message suivant:
J'ai mis les variables d'environnement pertinentes dans mon système et le chemin et je suis en utilisant jre1.8.0_144.
Toute aide à traquer ce que le problème pourrait être très apprécié
code ci-dessous ... mais compile entièrement et fonctionne dans IDE sans erreurs ... le problème est lorsque son transformé en .jar et a couru de la commande.
package root;
import javafx.application.Application;
import javafx.application.Platform;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Pos;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.CheckBox;
import javafx.scene.control.Label;
import javafx.scene.effect.DropShadow;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.Pane;
import javafx.scene.layout.StackPane;
import javafx.scene.layout.VBox;
import javafx.scene.paint.Color;
import javafx.scene.paint.CycleMethod;
import javafx.scene.paint.LinearGradient;
import javafx.scene.paint.Stop;
import javafx.scene.shape.Line;
import javafx.scene.shape.Rectangle;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
import javafx.stage.Screen;
import javafx.stage.Stage;
import javafx.stage.StageStyle;
import javafx.stage.Window;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Paths;
public class Main extends Application {
private double width = 1920;
private double height = 1080;
private Parent createContent(){
Pane root = new Pane();
root.setPrefSize(width, height); //W:860 H:600
ImageView imgLogo = null;
ImageView bottomlogo = null;
MenuItem newGame = new MenuItem("NEW GAME");
MenuItem continueGame = new MenuItem("CONTINUE");
MenuItem friends = new MenuItem("FRIENDS");
MenuItem settings = new MenuItem("SETTINGS");
MenuItem store = new MenuItem("STORE");
MenuItem exit = new MenuItem("EXIT");
try(InputStream is = Files.newInputStream(Paths.get("src/resources/Images/dark.jpg"))) {
ImageView img = new ImageView(new Image(is));
img.setFitWidth(width);
img.setFitHeight(height);
root.getChildren().add(img);
} catch (IOException e){
System.out.println("Couldn't Load Image");
}
try(InputStream is = Files.newInputStream(Paths.get("src/resources/Images/logo.png"))) {
imgLogo = new ImageView(new Image(is));
imgLogo.setX(1000);
imgLogo.setY(100);
imgLogo.setFitWidth(600);
imgLogo.setFitHeight(300);
} catch (IOException e){
System.out.println("Couldn't Load Image");
}
try(InputStream is = Files.newInputStream(Paths.get("src/resources/Images/SteamAgony.png"))) {
bottomlogo = new ImageView(new Image(is));
bottomlogo.setX(100);
bottomlogo.setY(800);
bottomlogo.setFitHeight(200);
bottomlogo.setFitWidth(200);
bottomlogo.setOpacity(0.7);
} catch (IOException e){
System.out.println("Couldn't Load Image");
}
MenuBox menu = new MenuBox(
newGame,
continueGame,
friends,
settings,
store,
exit);
menu.setTranslateX(width/3.4);
menu.setTranslateY(height/2.5);
settings.setOnMouseClicked(event -> new SceneCreator().createScene(200,300));
exit.setOnMouseClicked(event -> Platform.exit());
root.getChildren().addAll(menu, imgLogo, bottomlogo);
return root;
}
@Override
public void start(Stage primaryStage) throws Exception{
Scene scene = new Scene(createContent());
primaryStage.setScene(scene);
primaryStage.initStyle(StageStyle.UNDECORATED);
primaryStage.show();
}
@Override
public void stop(){
//TODO
}
public static void main(String[] args) {
launch(args);
}
}
Copie possible de [Que signifie "Impossible de trouver ou charger la classe principale" signifie?] (Https://stackoverflow.com/questions/18093928/what-does-could-not-find-or-load-main- class-mean) – Ravi
Pourriez-vous inclure le code qui ajoute l'élément nul – jrtapsell
@Ravi nulle part près du double de cette réponse. C'est l'un des threads que j'ai essayé et aboutit au même problème. – ArcherGilly