【问题标题】:How to run Java Eclipse from Excel VBA?如何从 Excel VBA 运行 Java Eclipse?
【发布时间】:2021-03-11 16:06:46
【问题描述】:

我用 Java 编写了以下代码:

public class test {

    public static void main(String[] args) throws IOException {
        FileWriter f = new FileWriter(new File("C:\\Users\\john\\Desktop\\x.txt"));
        f.write("hello world!");
        f.close();
    }

}

它可以正常工作(在桌面上创建一个名为 x.txt 的文件,其中包含“hello world!”)

我有这个 VBA 脚本

Sub Macro1()
'
' Macro1 Macro
'

'
Dim objShell As Object
Dim JavaExe, JavaScript As String

Set objShell = VBA.CreateObject("Wscript.Shell")

JavaExe = """C:\Users\john\eclipse-workspace\eclipseCode\src\test.java"""
JavaScript = "C:\Users\john\Desktop\x.txt"

objShell.Run JavaExe & JavaScript

End Sub

但它不执行java代码。它只是将 java eclipse 中的文件作为 .txt 文件打开。

是否可以从 Excel VBA 运行 java eclipse?非常感谢任何帮助,谢谢。

【问题讨论】:

  • 我不明白你的问题。你问如何从你的 VBA 代码运行 eclipse。然后你说它打开了,所以它运行正常。你到底想完成什么?还是你想运行一个编译好的 Java 程序(又名类)?
  • 请注意:如果您使用Dim JavaExe, JavaScript As String,它将声明JavaExe As Variant。在 VBA 中,您需要为 每个 变量指定类型:Dim JavaExe As String, JavaScript As String • 您调用变量JavaExe,但它不包含Java.exe,而是不包含任何内容的jave 源代码对我有感觉。你能澄清一下吗?

标签: java excel vba eclipse


【解决方案1】:

您想要在“objShell.Run”中实现的实际上是从命令行以您的程序作为参数运行 Java。

你实际上在做的是指向 Java 文件并说“做这个文件”,系统说“好的。我知道该怎么做。我在文本编辑器中打开 .java 文件!”。

研究如何使用 javac/java 编译和运行 java 程序。

要测试这个过程,首先忽略 Eclipse 和 VBA,只需进入普通命令提示符 (cmd) 并找出编译和运行 java 的命令,看看你需要什么命令行。

提示:您需要使用 javac 编译然后使用 java 运行。文件所在目录中的“javac test.java”和“java test”之类的东西。

从那里应该是直截了当的。

【讨论】:

  • 感谢您的回复。 “javac test.java”和“java test”在命令提示符下工作,但我不知道如何将它包含在 VBA 代码中。我该怎么做?
  • 太棒了!在您的 VBA 应用程序中,您的变量 JavaExe 和 JavaScript 应该指向您的 JRE 的“java.exe”,而“JavaScript”应该指向您能够在命令提示符下运行的文件的目录和名称。如果您将 WScript 对象的当前工作目录更改为执行测试命令时所在的目录,那么它就像将 JavaExe 设置为“java”并将 JavaScript 设置为“test”一样简单。也许可以在一些空格中适当添加命令行参数。
  • 如果你改变它,不要忘记“javac”你的文件..或者你可以尝试编写它,这样它每次都会首先调用一个“javac”..
  • 但是如果目录不同呢?因此,如果我打开一个新的 excel 文件,将这个宏放在那里并运行它,我如何指定 JavaExe 和 JavaScript 的目录?或者我是否需要更改 Wscript 对象的目录(如果需要,如何更改?)?顺便说一句,感谢您的帮助!
  • 您应该阅读与您的 VBA 脚本相关的环境和工作目录。环境通常有一个假定的路径,并且该路径中应该有 java 的 \bin 目录,这意味着如果正确安装,在许多情况下“java”不需要提供完整路径。另外,如果它有任何意义,你的宏运行的目录的相对路径应该相对于它们运行的​​文件是我的猜测。我不是一个宏观的人,所以你应该仔细检查它的想法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-26
  • 1970-01-01
  • 1970-01-01
  • 2013-05-07
  • 2013-02-09
  • 2023-03-13
相关资源
最近更新 更多