Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java jFileChooser与任务计划程序一起使用时不工作_Java_Nullpointerexception_Scheduled Tasks_Jfilechooser_Event Dispatch Thread - Fatal编程技术网

Java jFileChooser与任务计划程序一起使用时不工作

Java jFileChooser与任务计划程序一起使用时不工作,java,nullpointerexception,scheduled-tasks,jfilechooser,event-dispatch-thread,Java,Nullpointerexception,Scheduled Tasks,Jfilechooser,Event Dispatch Thread,我有一个程序,可以向用户发送带有附件的电子邮件。程序应该按照计划的时间运行,因此我使用任务调度器为自己执行。我做了所有必要的步骤来实现这一点。(创建.bat文件以激活/运行jar文件,然后任务调度器将触发.bat文件,如果它达到规定的计划。)现在的问题是,当程序运行或由任务调度器触发时,它会发出以下错误: java.lang.NullPointerException at sun.awt.shell.Win32ShellFolder2$1.call(Unknown Source) at sun.

我有一个程序,可以向用户发送带有附件的电子邮件。程序应该按照计划的时间运行,因此我使用任务调度器为自己执行。我做了所有必要的步骤来实现这一点。(创建.bat文件以激活/运行jar文件,然后任务调度器将触发.bat文件,如果它达到规定的计划。)现在的问题是,当程序运行或由任务调度器触发时,它会发出以下错误:

java.lang.NullPointerException
at sun.awt.shell.Win32ShellFolder2$1.call(Unknown Source)
at sun.awt.shell.Win32ShellFolder2$1.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at sun.awt.shell.Win32ShellFolderManager2$ComInvoker$3.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
我尝试使用.bat文件手动运行它,它工作正常,没有任何错误。我怀疑它与jFileChooser()有关,因为它无法检索默认目录中的附件,但我不确定,可能还有其他原因。 以下是在默认目录中检索附件的函数:

 public String getMyDocument(String filename)
 {
     JFileChooser fr = new JFileChooser();
     FileSystemView fw = fr.getFileSystemView();
     return fw.getDefaultDirectory().toString()+"\\"+filename+".xls";
 }
附言


所有必需的附件都存在于默认目录中,没有拼写错误的单词或放置错误的字符。我也做了一些研究,但到目前为止我还没有找到任何解决办法。

终于找到了问题所在。我放弃了jfileChooser(),而是使用了getAbsolutePath()


您正在使用哪个任务计划程序?它在窗户下面吗?是的。下面是.bat文件的内容:
java-jar EmailNotification.jar>>javalogs.txt
public String getMyDocument(String filename)
 {
 String fileName = filename+'.xls';
 File attachmentFile = new File(fileName);
 String filePath = attachmentFile.getAbsolutePath().toString();
 return filePath();
 }