从任务计划程序运行时,从Java应用程序打开网页不起作用

时间:2016-08-24 12:38:00

标签: java batch-file scheduled-tasks

前段时间我写了一个Java程序,在我上午工作之前会自动打开一个网页。我这样做是通过从Java调用批处理文件来打开网页的。这项计划大约有三四个月没有任何问题,但有一天它停止了工作。我也试过从Java中打开网页而不是批处理文件,但我一直遇到问题。这是我使用的过程:

  • 我将程序导出为可运行的JAR,并使用Launch4j将其转换为EXE。在我的Windows任务计划程序中,我将其安排在每天早上5:30运行。
  • 我的Java程序调用存储在桌面上的批处理文件
  • 批处理文件打开Chrome并调用网页以打开

当我手动运行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时,一切正常,但是当我尝试从任务调度程序运行它时,网页似乎没有打开。什么可能导致这种行为?任务调度程序运行程序与手动运行时会发生什么变化?

1 个答案:

答案 0 :(得分:1)

要检查的一些事项

  1. 哪个用户是运行的计划任务?是否与双击图标的用户相同?
  2. 您最近更改了密码吗?您可能需要更新计划任务的密码
  3. 转到Windows事件查看器,那里有错误吗?