Java JAR文件没有';t运行方式与从Eclipse运行项目时完全相同

Java JAR文件没有';t运行方式与从Eclipse运行项目时完全相同,java,eclipse,jar,Java,Eclipse,Jar,这是我在这里的第一篇文章 我遇到了一个奇怪的问题,我真的不明白 我已经使用Eclipse开发了一个Java桌面应用程序,当从Eclipse运行它时,所有的功能似乎都正常工作。但是当我导出并运行jar文件时,执行情况是不同的 jar文件不执行以下两行代码: JOptionPane.showMessageDialog(null,"I'm here"); LireExcel lierexcel = new LireExcel(this.matrivule,this.nomOAC,this.lblDat

这是我在这里的第一篇文章

我遇到了一个奇怪的问题,我真的不明白

我已经使用Eclipse开发了一个Java桌面应用程序,当从Eclipse运行它时,所有的功能似乎都正常工作。但是当我导出并运行jar文件时,执行情况是不同的

jar文件不执行以下两行代码:

JOptionPane.showMessageDialog(null,"I'm here");
LireExcel lierexcel = new LireExcel(this.matrivule,this.nomOAC,this.lblDate,this.poste);
lierexcel.traiterFichier(lierexcel);
我添加了消息对话框以查看执行停止的位置。。。它不执行方法
traiterFichier()

编辑:

当我将java错误流重定向到txt文件时,我发现:

> Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apache/poi/ss/usermodel/Workbook
    at control.EcouteurBoutonGenererRapport.actionPerformed(EcouteurBoutonGenererRapport.java:124)
    at view.CreerRapport$1.btnGnrerActionPerformed(CreerRapport.java:108)
    at view.CreerRapport$1.actionPerformed(CreerRapport.java:102)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$300(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.apache.poi.ss.usermodel.Workbook
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 39 more

我不明白为什么从Eclipse运行项目时不会发生这种情况。

LireExcel
对每个人来说都意味着
ReadExcel
,所以我猜文件无法访问。编辑:不要期望每个人都懂法语;)请提供更多信息,请参阅。如果您不确定这些行的执行位置,我们无法回答。。。它们在你的主楼里吗?在课堂上?你的程序有参数吗?如果你导出你的项目,很可能是你的程序找不到你的excel。您在try catch中显示的代码是什么?您是否检查您的文件是否已读取?再一次,仅从这些行中,我们不可能(imo)提供答案。我们可能需要查看LireExcel#traiterFichier的代码,还有什么不一样的意思?当您从命令行运行Jar时,将控制台输出重定向到一个文件(如何做取决于您所在的系统)看看是否有异常抛出。请注意,在windows上,使用
javaw
从shell启动程序时,通常不会看到任何控制台输出。