【问题标题】:Make application as default application [duplicate]将应用程序设为默认应用程序[重复]
【发布时间】:2016-03-19 11:29:55
【问题描述】:

我在 java swings 中创建了一个音乐应用程序,我想将它设置为所有 mp3 格式文件的默认音乐播放器。有谁知道怎么做?

就像在屏幕截图中一样,所有 pdf 文件都在 adobe reader 上打开。我的应用程序运行良好,我运行它没有问题。目前,我从我的应用程序中打开文件,但现在我希望每当我双击 mp3 文件时它就会在我的应用程序中打开。

注意:我已经创建了一个可执行文件,但是当我点击打开方式时,我需要窗口应该建议我的应用程序打开。

【问题讨论】:

  • 这不是 Java 问题;它是关于如何让 Windows 使用特定应用程序作为给定扩展的处理程序。 windows.microsoft.com/en-gb/windows/…
  • 感谢评论,但我找不到任何具体的方法。它只是说我可以做到,但问题是如何
  • @AndyTurner 这是一个java问题。您提供的链接无用,需要进一步阅读。 Jar 文件本身不是可执行文件,不能被选为默认应用程序。

标签: java swing


【解决方案1】:

很简单:.jar-文件本身不能执行。 JVM 是可运行的。一种解决方法是在例如C 或C++ 中编写一个包装应用程序并将其编译为可执行文件。或者使用像launch4j这样的包装库。您可以在此处找到有关这些包装器的更多信息:wrapper-libraries for java

如果您绝对想在您的 java 应用程序中编辑文件关联,您可以使用 JDIC 来完成该任务。

boolean editDefaultApplication(){
    AssociationService serv = new AssociationService();

    //try to remove old association
    Association logassoc = serv.getFileExtensionAssociation(".mp3");       

    try {
        serv.unregisterUserAssociation(logassoc);
    } catch (java.lang.IllegalArgumentException |  AssociationNotRegisteredException | RegisterFailedException e) {
         e.printStackTrace();
         return false;
    }

    //add your own application as default
    logassoc.addFileExtension(".mp3");
    logassoc.addAction(new org.jdesktop.jdic.filetypes.Action("open", "<path to wrapper executable>"));
    try {
        serv.registerUserAssociation(logassoc);
    } catch (java.lang.IllegalArgumentException |  AssociationNotRegisteredException | RegisterFailedException e) {
         e.printStackTrace();
         return false;
    }

    return true;
}

【讨论】:

  • 我已经让它可执行,但它应该是编码的东西,例如。当您单击 html 文件并选择打开时,它会自动建议浏览器。
  • @sahib 我记得(答案已被删除)。出于我上面提到的相同原因,您仍然需要一个包装应用程序。实际上,您使整个问题变得更加复杂,因为这将使整个程序更加依赖于系统。例如。在 windows 中你必须编辑注册表,对于 linux 和 mac,整个过程会有所不同。
  • @sahib 如果它实际上是一个.exe-file(或您的操作系统的等效文件),我仍然建议您只需使用 open-with 选项并将程序设置为默认值,而不是从您的应用程序中设置默认应用程序。那会更复杂很多。如果您绝对想包含该功能,则需要 JDIC 库 (oracle.com/technetwork/articles/javase/jdic-assoc-136531.html)。
【解决方案2】:

Shift + 右键单击​​一个 mp3 文件,选择“打开方式”。现在在打开的对话框中选择您的可执行文件并选中“始终打开方式”

使用 jar 文件,您可以使用作为参数传递的 java.exe 执行 java -jar yourjarname.jar

【讨论】:

  • jar 文件本身不是可执行文件,Windows 不允许您选择 jar 作为默认程序。
  • java -jar your.jar 怎么样?
  • 如果您可以使用 java -jar 来实现您想要的目标,为什么要投反对票?
  • 好吧,“java -jar”也不是可执行文件,而是终端命令。 “打开方式”仅接受 .exe-files 和其他一些文件类型。否决票是因为您无法以这种方式实现它。接近答案的唯一选择是编写一个包含您提到的命令的批处理文件。
  • 那你又错了,@Paul。它是“java.exe”,所以它确实有效。我以前也这样做过,而且效果很好。你试过了吗?因为它确实对我有用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-27
  • 1970-01-01
  • 2012-03-28
  • 2010-09-25
  • 1970-01-01
  • 2014-06-01
相关资源
最近更新 更多