我在这里显示了一个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中启动它,这是我在调试视图中看到的:
我花了很多时间在我的应用程序中摆脱使用带有HttpUnit的javascript(因为它真的很慢),我预计它会奖励我一个更干净的java进程。但这个线程仍然弹出,有点烦我。这是正常的行为,可以证明是合理的,还是只是一个错误?
答案 0 :(得分:0)
你可以将webClient.close()
放在finally块中。JS执行器线程将完成并消失。
try {
// do some thing
}finally {
webClient.close();
}