我正在通过一个使用 JNI 运行它的库在 Excel 2010 中运行一个 java 进程。
我的机器足以满足我的需要,但 Excel 2010 开始时内存很少,有时我的 JVM 创建失败并显示消息:“无法创建 JVM,无法保留请求的内存”
如何增加 EXCEL 的堆大小?是什么迫使 JNI 在 Excel 内存空间中运行 java 代码?
我正在通过一个使用 JNI 运行它的库在 Excel 2010 中运行一个 java 进程。
我的机器足以满足我的需要,但 Excel 2010 开始时内存很少,有时我的 JVM 创建失败并显示消息:“无法创建 JVM,无法保留请求的内存”
如何增加 EXCEL 的堆大小?是什么迫使 JNI 在 Excel 内存空间中运行 java 代码?
听起来您需要 64 位版本的 excel。运行 32 位版本的 Java 非常困难,因为它需要一个连续的内存区域。
如果您有 64 位版本的 excel,它将能够根据需要使用尽可能多的内存。
另一种方法是启动 Java 进程并通过套接字与其通信。这意味着它不会受到 excel 的限制,而是您的操作系统可以为该过程做什么。例如,即使 excel 是 32 位,它也可以是 64 位。
我的宏应该将数据从程序(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 把内存填满了,但是在测试程序中看不出是什么占用了内存。