1

사용자에게 첨부 파일이있는 전자 메일을 보내는 프로그램이 있습니다. 프로그램은 예정된 시간에 따라 실행되어야하며, 그 때문에 나는 그것을 위해 작업 스케줄러를 사용합니다. 나는 이것을 실현하기 위해 필요한 모든 조치를 취했다. (jar 파일을 활성화/실행하기 위해 .bat 파일을 작성하면 작업 스케줄러가 지정된 스케줄에 도달하면 .bat 파일을 트리거합니다.) 문제는 지금 프로그램이 실행되거나 태스크 스케줄러에 의해 트리거 될 때 해제된다는 것입니다 이 오류 :작업 스케줄러와 함께 사용하면 jFileChooser가 작동하지 않습니다.

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"; 
} 

PS : 다음은 기본 디렉토리에 첨부 파일을 검색하는 기능입니다.

모든 필수 첨부 파일은 기본 디렉토리에 있으며 맞춤법이 틀린 단어 또는 잘못 배치 된 문자는 없습니다. 나는 또한 연구를했지만 아직까지는 어떤 해결책도 찾지 못했습니다.

+0

어떤 작업 스케줄러를 사용하고 있습니까? 창문 아래있어? –

+0

Yeap. Windows 작업 스케줄러. – jaycroll

+0

은 .bat 파일의 내용입니다 :'java -jar EmailNotification.jar >> javalogs.txt' – jaycroll

답변

0

마지막으로 문제가 발견되었습니다. jfileChooser()를 삭제하고 대신 getAbsolutePath()를 사용했습니다.

public String getMyDocument(String filename) 
{ 
String fileName = filename+'.xls'; 
File attachmentFile = new File(fileName); 
String filePath = attachmentFile.getAbsolutePath().toString(); 
return filePath(); 
}