如何使用 .Jar(Java)应用程序打开文件?

3
这是一个棘手的问题。如何在Java中打开一个文件,使得当你双击该文件时它会自动在Java应用程序中打开。
我正在制作一个音乐播放器(对我来说是第一个真正大的Java项目),但我不知道如何实现这一功能。当你打开一个.mp3文件时,它将在你所选择的默认程序中打开,例如VLC媒体播放器或Windows Media Player。我想要的是能够将我的应用程序的.jar文件设置为.mp3文件的默认程序,然后能够在应用程序中实际启动文件。
目前当我试图使用应用程序打开文件时,Windows会提示"此应用程序无法在您的计算机上执行"的错误信息。但是如果我直接启动.jar文件而不是通过尝试打开.mp3文件,它就可以顺利运行。
有人知道如何实现我想要的吗?非常感谢!
---编辑---
我并不是指你可以选择mp3文件的默认程序。问题是Windows会抛出以上显示的错误,而我不知道如何处理通过打开文件来启动应用程序(由于错误而无法打开)。

右键单击任何mp3文件。点击属性,您应该能够在那里选择默认程序。如果列表看起来有限,那么应该有一个按钮在您的电脑上手动搜索程序。从那里,您可以找到并选择您的程序作为默认值。研究一下Java Ant。顺便说一句,这是在StackExchange的错误部分。可能应该在超级用户或其他地方。 - RisingSun
1
我知道你可以右键点击并选择默认程序。问题是当我尝试通过打开mp3文件来启动.jar时,Windows不想启动它。除此之外,我不知道如何使用内部代码处理启动。 - ImJustACowLol
1
使用Java Web Start来分发和安装你的程序。Web Start允许你为文件类型注册你的程序。 - VGR
2个回答

3
我认为问题在于你需要打开一个 .exe 文件,因此你应该使用一个 exe 封装器(我使用 jsmooth:下载地址)。 但是,在这之前,你需要接受有关信息。因此,在主类中,“args”是启动方式的信息列表。如果你要打开一个文件,数组的第一个参数将是所打开文件的目标位置。所以我会像这样接受它:
   if (args.length > 0) {
       File f = new File(args[0]);
       start_the_application_with_a_file(f);
   } else {
       start_the_application_without_a_file();
   }

那听起来是一个非常好的方法。我知道我必须使用Args,只是不知道怎么用 ;) 我明天会尝试一下,现在去睡觉了。谢谢你的帮助,伙计,如果它有效,我会告诉你的 :) - ImJustACowLol
1
太棒了,伙计!我使用了Launch4J,因为JSmooth对我来说效果不是很好,而且Launch4j有更多的选项可以包装.jar文件。现在它像魔法一样工作了。我很想给你点赞,但我还没有15个声望,所以我不能。不过,一旦我有了,我一定会这么做的。谢谢,伙计! - ImJustACowLol
好的,Launch4J也是一个不错的封装工具,但我只是使用JSmooth来封装.jar文件。 - TheKindOfGoodProgrammer

0

在批处理 (.cmd) 文件中使用 C:\ProgramData\Oracle\Java\javapath\java.exe -jar "C:\Program Files\YourApp.jar" %* 可能可行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接