在java中执行javascript - 打开URL并获取链接

har*_*ihb 3 javascript java url get hyperlink

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import java.io.FileReader;

public class Main {

    public static void main(String[] args) {

        ScriptEngineManager manager = new ScriptEngineManager();
        ScriptEngine engine = manager.getEngineByName("js");
        try {
            FileReader reader = new FileReader("C:/yourfile.js");
            engine.put("urlfromjava", "http://www.something.com/?asvb");
            engine.eval(reader);
            reader.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,yourfile.js包含这一行

function urlget(url)
{
    print("URL:"+url);
    var loc = window.open(url);
    var link = document.getElementsByTagName('a')["61"].href;
    return ("\nLink is: \n"+link); 

}
var x = urlget(urlfromjava);
print(x);
Run Code Online (Sandbox Code Playgroud)

我收到了错误

"javax.script.ScriptException: sun.org.mozilla.javascript.internal.EcmaError: ReferenceError: "window" is not defined"
Run Code Online (Sandbox Code Playgroud)

如何打开URL并从java获取它的链接?

Gro*_*eek 6

你可以在Rhino中嵌入Env.js来获得这种功能