我创建了一个由其他应用程序更新的应用程序。更新程序捆绑到OSX .app中,用于更新其资源目录中的任何内容。当updater启动时,它会查找更新,然后运行Private WithEvents Items As Outlook.Items
Private Sub Application_Startup()
Dim olNs As Outlook.NameSpace
Dim Inbox As Outlook.MAPIFolder
Set olNs = Application.GetNamespace("MAPI")
Set Inbox = olNs.GetDefaultFolder(olFolderInbox)
Set Items = Inbox.Items
End Sub
Private Sub Items_ItemAdd(ByVal Item As Object)
If TypeOf item Is Outlook.MailItem Then
ExecuteDealRequest Item
End If
End Sub
' ---- Your Code
Sub ExecuteDealRequest(Item As Outlook.MailItem)
Dim currenttime As Date
Dim AccessApp As Access.Application
Set AccessApp = CreateObject("Access.Application")
AccessApp.OpenCurrentDatabase ("C:\commHU\Comm HU Request.accdb"), False
AccessApp.Visible = True
AccessApp.DoCmd.RunMacro "Macro1"
Set AccessApp = Nothing
End Sub
,其中System.getRuntime().exec(cmd)
只是捆绑JRE的路径,后跟应用程序的jar。
如果我运行updater jar文件,一切都按预期工作。但是,当我运行应用程序时,更新程序正常启动,但是当按下“启动”按钮时,应用程序无法启动。事实上,一切都没有发生。命令行级别没有错误,创建进程时不会抛出异常。 cmd
返回true。
正如我所说,从jar更新程序文件启动时,这可以正常工作。 .app目录是使用maven插件“appbundle”制作的。该应用程序位于https://github.com/elyas145/lss-reporter。但是,如果没有用于检查更新的机密文件,则无法启动它。不幸的是我不能在网上发帖。
答案 0 :(得分:0)
这是一个非常愚蠢的错误。我正在指定我试图在exec调用中打开的jar文件而不指定目录。我忘了调用是从根目录而不是从资源文件夹。所以我需要构建jar文件的目录并将其传递给java命令。