Java 从控制台启动 jar 和通过双击启动 jar 之间的 Hibernate 不同行为
Java Hibernate Different Behavior between starting jar from console and explorer with double click
在我的 JavaFx 项目中,我使用 Hibernate 连接到本地 Postgresql 数据库。
在 Intellij 中,项目运行并且连接有效。此外,当我从控制台启动形成的 jar 时,一切正常并且可以读取数据。
但是,当我双击从资源管理器中启动 jar 时,它不起作用。也没有报错。
@FXML
protected void onHelloButtonClick() {
System.out.println("Test");
welcomeText.setText("Welcome to JavaFX Appdssdasdalication!");
try{
Session session = HibernateUtil.getSession();
Alert alert = new Alert(Alert.AlertType.INFORMATION);
alert.setTitle("Information Dialog");
alert.setHeaderText("Look, an Information Dialog");
alert.setContentText("test");
alert.showAndWait();
session.beginTransaction();
Name name = new Name();
name.setEmail("p.gue@gmail.com");
name.setEmployeeId(1);
session.save(name);
session.getTransaction().commit();
session.beginTransaction();
String email = session.get(Name.class, 1).getEmail();
welcomeText.setText(email);
alert = new Alert(Alert.AlertType.INFORMATION);
alert.setTitle("Information Dialog");
alert.setHeaderText("Look, an Information Dialog");
alert.setContentText(email);
alert.showAndWait();
//welcomeText.setText(((Name)session.createQuery("From Name").list().get(0)).getEmail());
session.getTransaction().commit();
HibernateUtil.shutdown();
}catch(Exception e){
welcomeText.setText(e.toString());
Alert alert = new Alert(Alert.AlertType.INFORMATION);
alert.setTitle("Information Dialog");
alert.setHeaderText("Look, an Information Dialog");
alert.setContentText(e.toString());
alert.showAndWait();
}
welcomeText.setText("Welcome to sadssaddsadsaasd Appdssdasdalication!");
}
双击启动时没有打开第一个测试警报。
Java JDK 16.
感谢您的帮助!
我的问题有了答案。
问题出在 hibernate.cfg.xml。我已经在我的程序中加载了这个文件。
但是当我双击我的 jar 时,工作目录是另一个。所以他找不到 cfg.xml.
感谢您的帮助!
在我的 JavaFx 项目中,我使用 Hibernate 连接到本地 Postgresql 数据库。 在 Intellij 中,项目运行并且连接有效。此外,当我从控制台启动形成的 jar 时,一切正常并且可以读取数据。 但是,当我双击从资源管理器中启动 jar 时,它不起作用。也没有报错。
@FXML
protected void onHelloButtonClick() {
System.out.println("Test");
welcomeText.setText("Welcome to JavaFX Appdssdasdalication!");
try{
Session session = HibernateUtil.getSession();
Alert alert = new Alert(Alert.AlertType.INFORMATION);
alert.setTitle("Information Dialog");
alert.setHeaderText("Look, an Information Dialog");
alert.setContentText("test");
alert.showAndWait();
session.beginTransaction();
Name name = new Name();
name.setEmail("p.gue@gmail.com");
name.setEmployeeId(1);
session.save(name);
session.getTransaction().commit();
session.beginTransaction();
String email = session.get(Name.class, 1).getEmail();
welcomeText.setText(email);
alert = new Alert(Alert.AlertType.INFORMATION);
alert.setTitle("Information Dialog");
alert.setHeaderText("Look, an Information Dialog");
alert.setContentText(email);
alert.showAndWait();
//welcomeText.setText(((Name)session.createQuery("From Name").list().get(0)).getEmail());
session.getTransaction().commit();
HibernateUtil.shutdown();
}catch(Exception e){
welcomeText.setText(e.toString());
Alert alert = new Alert(Alert.AlertType.INFORMATION);
alert.setTitle("Information Dialog");
alert.setHeaderText("Look, an Information Dialog");
alert.setContentText(e.toString());
alert.showAndWait();
}
welcomeText.setText("Welcome to sadssaddsadsaasd Appdssdasdalication!");
}
双击启动时没有打开第一个测试警报。
Java JDK 16.
感谢您的帮助!
我的问题有了答案。
问题出在 hibernate.cfg.xml。我已经在我的程序中加载了这个文件。 但是当我双击我的 jar 时,工作目录是另一个。所以他找不到 cfg.xml.
感谢您的帮助!