增加Excel 2010内存分配

时间:2013-07-30 11:45:41

标签: java excel java-native-interface

我在Excel 2010中通过使用JNI运行它的库运行java进程。

我的机器在很大程度上足以满足我的需求,但Excel 2010的内存很少,有时我的JVM创建失败并显示消息:“无法创建JVM,无法保留请求的内存”

如何增加EXCEL的堆大小?是什么迫使JNI在Excel内存空间中运行java代码?

2 个答案:

答案 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会填满内存,但是我看不到测试程序中使用内存的原因。