我在Excel 2010中通过使用JNI运行它的库运行java进程。
我的机器在很大程度上足以满足我的需求,但Excel 2010的内存很少,有时我的JVM创建失败并显示消息:“无法创建JVM,无法保留请求的内存”
如何增加EXCEL的堆大小?是什么迫使JNI在Excel内存空间中运行java代码?
答案 0 :(得分:2)
听起来你需要一个64位版本的excel。运行32位版本的Java很困难,因为它需要连续的内存区域。
如果你有一个64位版本的excel,它将能够使用你需要的尽可能多的内存。
另一种方法是启动Java进程并通过套接字与之通信。这意味着它不会受到excel的限制,而是您的操作系统可以为该过程做些什么。例如即使excel为32位,它也可以是64位。
答案 1 :(得分:0)
我的宏应该将数据从程序(UVprobe)复制到Excel。 这是通过“ Application.SendKeys“ ^ c””从Uvprobe复制数据,以及通过“ Application.SendKeys“ ^ v””在Excel中插入数据来完成的。
这需要多次从UVprobe转换为Excel。片刻之后,Excel冻结“ Excel(无响应)” 我做了这个小的测试程序,它也只在3个循环后就产生了错误
Sub Apptest()
For i = 1 To 10
AppActivate "notepad"
Sleep 1000
AppActivate "Excel"
Sleep 1000
Next i
结束子
如果我输入的是Word而不是Application.caption,则不会出现任何错误。可能是什么原因? 看来Excel会填满内存,但是我看不到测试程序中使用内存的原因。