尽管关闭了javascript,HtmlUnit启动了一个javascript执行器守护程序线程

时间:2015-12-10 02:39:23

标签: java htmlunit

我在这里显示了一个MCVE,它可以用来产生一个额外的javascript执行程序线程的外观。您需要一个HtmlUnit依赖项来运行它,最新快照的maven坐标是:

<dependency>
    <groupId>net.sourceforge.htmlunit</groupId>
    <artifactId>htmlunit</artifactId>
    <version>2.20-SNAPSHOT</version>
</dependency>

MVCE列表:

import com.gargoylesoftware.htmlunit.WebClient;
public class SOQuestion34192800 {
    public static void main(String[] args) throws Exception {
        try (WebClient webClient = new WebClient()) {
            webClient.getOptions().setJavaScriptEnabled(false);
            webClient.getPage("http://stackoverflow.com");
            Thread.sleep(10000);
        }
    }
}

我在Eclipse中启动它,这是我在调试视图中看到的:

Eclipse Debug View

我花了很多时间在我的应用程序中摆脱使用带有HttpUnit的javascript(因为它真的很慢),我预计它会奖励我一个更干净的java进程。但这个线程仍然弹出,有点烦我。这是正常的行为,可以证明是合理的,还是只是一个错误?

1 个答案:

答案 0 :(得分:0)

你可以将webClient.close()放在finally块中。JS执行器线程将完成并消失。

try {
    // do some thing
}finally {
    webClient.close();
}