不久前,我编写了一个Java程序,在我早上上班之前自动打开一个网页。为此,我从Java调用一个批处理文件,该文件打开了网页。这个计划持续了三四个月,没有任何问题,但是有一天它就停止了工作。我也尝试过从Java内部打开网页,而不是批处理文件,但我始终遇到了问题。这是我使用的过程:
当我手动运行Java程序EXE时(从桌面上双击),它正确运行,调用批处理文件,并打开网页。但是,当我尝试从Windows任务调度程序运行EXE时,它不会(明显地)打开网页。它确实在后台运行Chrome (根据任务管理器/Process),但是网页本身似乎没有打开(我可以看出,因为我打开的网页应该在播放音乐,但我什么也没听到)。
这是我用来运行批处理文件的Java函数:
public static void openWebpage() throws Exception {
String[] startupBat = {"cmd", "/c", "start", "/B", System.getProperty("user.home") + "\\Desktop\\WebpageStart.bat"};
ProcessBuilder pb = new ProcessBuilder(startupBat);
try {
webpage = pb.start();
} catch (IOException e) {
logWriter.write(tf.format(new Date()).toString() + " - Unable to start webpage");
}
if (webpage != null) {
try {
webpage.waitFor();
} catch (InterruptedException e) {
logWriter.write(tf.format(new Date()).toString() + " - Webpage startup interrupted");
} finally {
webpage.destroy();
}
}
}下面是我用来启动网页的批处理文件的内容:
@echo off
start "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" http://www.myWebpage.com再次,当我手动运行Java时,一切都很好,但是当我尝试从任务调度器运行它时,网页似乎没有打开。是什么导致了这种行为?当任务调度程序运行程序时,与手动运行时相比,会发生什么变化?
发布于 2016-08-24 13:58:19
有几件事要检查
https://stackoverflow.com/questions/39123560
复制相似问题