前段时间我写了一个Java程序,在我上午工作之前会自动打开一个网页。我这样做是通过从Java调用批处理文件来打开网页的。这项计划大约有三四个月没有任何问题,但有一天它停止了工作。我也试过从Java中打开网页而不是批处理文件,但我一直遇到问题。这是我使用的过程:
当我手动运行Java程序EXE(从桌面双击)时,它正确运行,调用批处理文件,然后打开网页。但是,当我尝试从Windows任务调度程序运行EXE时,它没有(明显地)打开网页。它确实在后台运行Chrome(根据任务管理器/ Process Explorer),但网页本身似乎没有打开(我可以说,因为我打开的网页应该播放音乐,但我什么也听不到)。
这是我用来运行批处理文件的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 EXE时,一切正常,但是当我尝试从任务调度程序运行它时,网页似乎没有打开。什么可能导致这种行为?任务调度程序运行程序与手动运行时会发生什么变化?
答案 0 :(得分:1)
要检查的一些事项