我有一个奇特的新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环境中编译的。
我在这里做错了什么?
答案 0 :(得分:0)
我们终于能够解决问题了。我不知道究竟是什么问题,但我们必须创建一个批处理文件来杀死应用程序,然后运行.exe指向.jar文件。
所以它最终是这样的:
Shell """" & App.path & "\JR3GUI.bat"""
和.bat
taskkill /f /im "FILENAME.exe"
start JR3GUI.exe
这很有效,而且这是唯一能做到的。