首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我要得到"Win32Exception"?

为什么我要得到"Win32Exception"?
EN

Stack Overflow用户
提问于 2017-01-08 15:50:07
回答 1查看 734关注 0票数 1

我想为我的jar程序做一个“启动程序”,基本上我的exe文件不会自己做任何事情,它只是用来启动我的jar程序。

我的jar程序可以打开一个文件,据我所知(因为这可能是问题所在)操作系统通过向包含文件路径的程序传递命令行参数来打开文件,对吗?

如果我使用Visual中的play按钮执行我的程序,它可以正常工作,我将参数放在Properties->Debug->Command line参数中,它启动jar并打开我的文件

如果我从cmd执行我的程序,并将参数传递给CMD,它可以正常工作,并再次打开mi文件。

但是如果我按一下我想打开的文件,然后“打开”.我得到了System.ComponentModel.Win32Exception

我想,也许这个程序需要安装,所以我创建了一个innoSetup安装程序,但是如果我做了右键单击->打开.我得到了Win32Exception

我做错了什么?

我的代码:

代码语言:javascript
复制
 class Program
        {
            static void Main(string[] args)
            {
                var programa = new System.Diagnostics.Process();
                programa.StartInfo.UseShellExecute = true;
                programa.StartInfo.FileName = "Personas.jar";
                String archivo ;
                try
                {
                    archivo = args[0];
                }catch(System.IndexOutOfRangeException e)
                {
                    archivo = null;
                }
                if(archivo != null)
                {
                    programa.StartInfo.Arguments = archivo;
                }
                try
                {
                    programa.Start();
                }catch(Exception err)
                {

                }
            }
        }

我不会将Java代码放在C#中,因为问题在中很明显

例外

EN

回答 1

Stack Overflow用户

发布于 2017-01-08 20:20:03

使用Visual启动应用程序时,当前目录设置为正在启动的可执行文件的目录。我假设您的personas.jar文件与可执行文件位于同一个目录中,所以当您使用ShellExecute = true打开jar文件时,它会找到该文件,查找关联并成功运行。

当使用CMD时,您可能会从可执行目录中启动它,因此当前目录设置为上面所示,并且一切都按照计划再次工作。

但当你用open打开一个文件时..。当前目录设置为包含右键单击的文件的目录。这意味着当您尝试使用personas.jar打开ShellExecute时,它会在单击的文件目录中查找并且找不到它。所以失败了。

您需要获取到正在执行的程序集的路径,并使用它来设置当前目录或完全限定personas.jar的路径。

此外,在按关联打开文件时使用StartInfo对象的参数属性并不是一种有文档记录的用法。因此,尽管它现在可能起作用,但它在任何时候都可能停止工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41534539

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档