是否可以从VB6应用程序中Shell Java GUI应用程序?

时间:2014-07-19 17:25:54

标签: java swing shell vb6 64-bit

我有一个奇特的新Java Swing应用程序,我使用Launch4J包装在.EXE中(用于图标,没有其他原因)。我现在已经被指示为这个令人难以置信的旧版VB6遗留应用程序添加功能,当点击按钮时,它将启动新的Java应用程序。我能想到的唯一原因就是我工作的JRE是64位,而我正在使用的vb6应用程序显然不是,并且它们不是很好玩或者其他东西。

我的理解是它应该如此简单:

Shell """" & PATH_TO_FILE & """"

但那不起作用。

这是我到目前为止所尝试的内容:

Shell """" & App.path & "\JR3GUI.exe""" 'Path to exe directly.'
Shell "javaw -jar """ & App.path & "\JR3GUI.jar""" 'Try to execute the .jar directly'
Shell """" & App.path & "\JR3GUI.bat""" 'Batch file with the following:'

    @ECHO OFF
    start javaw -jar JR3GUI.jar
    javaw -jar JR3GUI.jar
    start JR3GUI.exe
    JR3GUI.exe

ShellExecute 0, """" & App.Path & "\JR3GUI.exe""", "", "", 1 'ShellExecute the .exe'
ShellExecute 0, "javaw", "-jar """ & App.Path & "\JR3GUI.jar""", "", 1 'ShellExecute to run the .jar directly'
ShellExecute 0, """" & App.Path & "\JR3GUI.bat""", "", "", 1 'ShellExecute the batch file.'

这些都没有奏效,我也不知道为什么。

对于ShellExecute我正在使用预先存在的API实现,但我确信它有效,因为它适用于之前使用的内容。 我运行Windows 7 64位,VB6应用程序是在虚拟XP环境中编译的。

我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

我们终于能够解决问题了。我不知道究竟是什么问题,但我们必须创建一个批处理文件来杀死应用程序,然后运行.exe指向.jar文件。

所以它最终是这样的:

Shell """" & App.path & "\JR3GUI.bat"""

和.bat

taskkill /f /im "FILENAME.exe"
start JR3GUI.exe

这很有效,而且这是唯一能做到的。