【问题标题】:Runnable .jar or.exe file doesn't run correctly可运行的 .jar 或 .exe 文件无法正确运行
【发布时间】:2013-05-20 19:27:49
【问题描述】:

我在 java-eclipse 中创建了应用程序,当按下键盘上的随机键时,它会使用打印机打印随机的 .pdf 文件。当我在 Eclipse 中运行它时,该应用程序运行良好,但是当我创建一个可运行的 .jar 文件时,它运行应用程序(GUI),但是当我按下键时它不打印任何东西。如果我按随机键几次,它会打印...

我也使用 Launch4J 创建可执行文件,但问题是当我按下键时它不打印任何内容。

对于我使用 .jar 库打印 .pdf-s 的项目。

有什么问题?

【问题讨论】:

  • 信息量这么多,真的很难说。当您从 jar 文件运行程序时,您是否有任何错误、消息或一切与从 eclipse 运行完全相同
  • 尝试在JD-GUI等反编译器中打开编译后的文件,看看代码是否一样。信息这么少,真的想不出别的了
  • 当我使用 Eclipse 创建可运行的 .jar 时,我收到 2 个警告:-一个用于许可证 - 查看与库关联的许可证。我认为这是因为我正在使用该库来打印 pdf-s。 -第二个警告 - JAR 导出完成时出现警告。有关更多详细信息,请参阅详细信息:示例:带有编译警告的导出:Printer/src/PDF/PrinterZaPDF.java
  • 使用 JD-GUI 的代码看起来几乎一样..

标签: java jar executable


【解决方案1】:

我不知道你需要什么样的信息,但我会尽量说得更具体一些。 我有一个项目,它包含三个类——Graphics.java、Logic.java 和 Runnable.java。它使用外部 .jar 库来打印 pdf-s。在一个项目中,我还有 46 个 .pdf 文档,程序会随机选取并在按下任意键时打印出来。这是描述,我如何执行可运行的 .jar 文件: http://shrani.si/f/34/He/14Tn9ZWq/description.jpg

这里也是KeyEventDispatcher的代码:

KeyboardFocusManager.getCurrentKeyboardFocusManager()
          .addKeyEventDispatcher(new KeyEventDispatcher() {
              @Override
              public boolean dispatchKeyEvent(KeyEvent e) {

                  if(e.getID() == KeyEvent.KEY_PRESSED){
                      if(print == true){  
                          pzp.printaj(); //This is the object to the Logic.java where he calls the method print();
                          print = false;

                      }
                  }

                  if(e.getID() == KeyEvent.KEY_RELEASED){
                      print = true;

                  }

                  return false;
              }});

别忘了,如果我在 Eclipse 中运行应用程序,它就可以工作!

【讨论】:

  • 好的,我发现了一些新东西!整个逻辑部分在 try-catch 块中,如果它没有在 try 中运行,则 system.out.println("Unsuccesfull");。我尝试从 cmd 运行 .jar,当我按任意键时,我在控制台中收到 Unsuccesfull 消息。肯定是代码有问题,或者外部.jar库的license有问题。
猜你喜欢
  • 2022-06-14
  • 1970-01-01
  • 2015-05-17
  • 2012-09-13
  • 2014-02-20
  • 2013-10-18
  • 1970-01-01
  • 2013-07-04
  • 1970-01-01
相关资源
最近更新 更多