gpt4 book ai didi

Java 中的 java.lang.OutOfMemoryError

转载 作者:行者123 更新时间:2023-12-02 07:15:27 25 4
gpt4 key购买 nike

我想登录 ORKUT通过不涉及 IE 或 Firefox 的 java 程序,

我正在使用 HTMLUnit为此,采用以下方式:

import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import com.gargoylesoftware.htmlunit.html.HtmlPasswordInput;
import com.gargoylesoftware.htmlunit.html.HtmlTextInput;
import com.gargoylesoftware.htmlunit.html.HtmlSubmitInput;

public class HtmlUnit {
public void submittingForm() throws Exception {
final WebClient webClient = new WebClient();

// Get the first page
final HtmlPage page1 = webClient.getPage("https://www.google.com/accounts/ServiceLogin?service=orkut&hl=en-US&rm=false&continue=http%3A%2F%2Fwww.orkut.com%2FRedirLogin%3Fmsg%3D0%26page%3Dhttp%253A%252F%252Fwww.orkut.co.in%252FHome.aspx&cd=IN&passive=true&skipvpage=true&sendvemail=false");
System.out.println("Page1: " + page1.toString());

// Get the form that we are dealing with and within that form,
// find the submit button and the field that we want to change.

final HtmlSubmitInput button = page1.getElementByName("signIn");
final HtmlTextInput userName = page1.getElementByName("Email");
final HtmlPasswordInput password = page1.getElementByName("Passwd");

// Change the value of the text field
userName.setValueAttribute("username");
password.setValueAttribute("password");

// Now submit the form by clicking the button and get back the second page.
final HtmlPage page2 = button.click();
System.out.println("Page2: " + page2.toString());
}

public static void main(String[] args) {
try {
new HtmlUnit().submittingForm();
}catch(Exception ex) {
ex.printStackTrace();
}
}
}

但是运行上面的程序后,出现如下错误:

Page1: HtmlPage(https://www.google.com/accounts/ServiceLogin?service=orkut&hl=en-US&rm=false&continue=http%3A%2F%2Fwww.orkut.com%2FRedirLogin%3Fmsg%3D0%26page%3Dhttp%253A%252F%252Fwww.orkut.co.in%252FHome.aspx&cd=IN&passive=true&skipvpage=true&sendvemail=false)@6011238

Sep 15, 2009 4:54:37 PM com.gargoylesoftware.htmlunit.IncorrectnessListenerImpl notify
WARNING: Expected content type of 'application/javascript' or 'application/ecmascript' for remotely loaded JavaScript element at 'http://static1.orkut.com/js/gen/in_frame046.js', but got 'application/x-javascript'.
Sep 15, 2009 4:54:38 PM com.gargoylesoftware.htmlunit.IncorrectnessListenerImpl notify
WARNING: Expected content type of 'application/javascript' or 'application/ecmascript' for remotely loaded JavaScript element at 'http://static1.orkut.com/js/gen/gtalk_client031.js', but got 'application/x-javascript'.
Sep 15, 2009 4:54:38 PM com.gargoylesoftware.htmlunit.IncorrectnessListenerImpl notify
WARNING: Expected content type of 'application/javascript' or 'application/ecmascript' for remotely loaded JavaScript element at 'http://static1.orkut.com/ifpc/ifpc.js', but got 'application/x-javascript'.
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at net.sourceforge.htmlunit.corejs.javascript.ObjToIntMap.rehashTable(ObjToIntMap.java:330)
at net.sourceforge.htmlunit.corejs.javascript.ObjToIntMap.ensureIndex(ObjToIntMap.java:415)
at net.sourceforge.htmlunit.corejs.javascript.ObjToIntMap.intern(ObjToIntMap.java:197)
at net.sourceforge.htmlunit.corejs.javascript.TokenStream.getToken (TokenStream.java:435)
at net.sourceforge.htmlunit.corejs.javascript.Parser.peekToken(Parser.java:313)
at net.sourceforge.htmlunit.corejs.javascript.Parser.variables(Parser.java:1791)
at net.sourceforge.htmlunit.corejs.javascript.Parser.statementHelper (Parser.java:959)
at net.sourceforge.htmlunit.corejs.javascript.Parser.statement(Parser.java:877)
at net.sourceforge.htmlunit.corejs.javascript.Parser.parse(Parser.java:549)
at net.sourceforge.htmlunit.corejs.javascript.Parser.parse(Parser.java:492)
at net.sourceforge.htmlunit.corejs.javascript.Context.compileImpl(Context.java:2404)
at net.sourceforge.htmlunit.corejs.javascript.Context.compileString(Context.java:1375)
at com.gargoylesoftware.htmlunit.javascript.HtmlUnitContextFactory$TimeoutContext.compileString(HtmlUnitContextFactory.java:173)
at net.sourceforge.htmlunit.corejs.javascript.Context.compileString(Context.java:1364)
at com.gargoylesoftware.htmlunit.javascript.host.Window.custom_eval(Window.java:1143)
at com.gargoylesoftware.htmlunit.javascript.host.Window.jsxFunction_execScript(Window.java:1122)
at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at net.sourceforge.htmlunit.corejs.javascript.MemberBox.invoke(MemberBox.java:161)
at net.sourceforge.htmlunit.corejs.javascript.FunctionObject.call(FunctionObject.java:476)
at net.sourceforge.htmlunit.corejs.javascript.Interpreter.interpretLoop(Interpreter.java:1688)
at net.sourceforge.htmlunit.corejs.javascript.Interpreter.interpret(Interpreter.java:845)
at net.sourceforge.htmlunit.corejs.javascript.InterpretedFunction.call(InterpretedFunction.java:164)
at net.sourceforge.htmlunit.corejs.javascript.ContextFactory.doTopCall(ContextFactory.java:427)
at com.gargoylesoftware.htmlunit.javascript.HtmlUnitContextFactory.doTopCall(HtmlUnitContextFactory.java:263)
at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3058)
at net.sourceforge.htmlunit.corejs.javascript.InterpretedFunction.exec(InterpretedFunction.java:175)
at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$5.doRun(JavaScriptEngine.java:415)
at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:520)
at net.sourceforge.htmlunit.corejs.javascript.Context.call(Context.java:529)
at net.sourceforge.htmlunit.corejs.javascript.ContextFactory.call(ContextFactory.java:536)

所以,我不明白问题出在哪里。执行以下行时发生错误:

final HtmlPage page2 = button.click();

最佳答案

错误名称给出了提示:Java虚拟机需要更多内存。您可以通过将标志“-Xmx128M”添加到 jvm 来增加堆空间(或者增加整数值以防万一,java 调用已经有一个具有较小值的 Xmx 参数。

在上面的示例中,您将拥有 128 MB 的堆空间。

关于Java 中的 java.lang.OutOfMemoryError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1426617/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com