4

我正在开发一个 java 应用程序。

我想为我的应用程序的 Exe 文件创建桌面快捷方式。

是否可以从我的应用程序本身中做到这一点?还是用户必须通过右键单击手动完成?

4

3 回答 3

9
package farzi;

import net.jimmc.jshortcut.JShellLink;

public class Sc {
    JShellLink link;
    String filePath;

    public Sc() {
        try {
            link = new JShellLink();
            filePath = JShellLink.getDirectory("")
                + "C:\\Program Files\\Internet Explorer\\iexplore.exe";

        } catch (Exception e) {

        }

    }

    public void createDesktopShortcut() {

        try {
            link.setFolder(JShellLink.getDirectory("desktop"));
            link.setName("ie");
            link.setPath(filePath);
            link.save();
        } catch (Exception ex) {
            ex.printStackTrace();
        }

    }

    public static void main(String a[]) {
        Sc sc = new Sc();
        sc.createDesktopShortcut();
    }
}

你可以从这里得到罐子

于 2013-03-25T00:20:35.437 回答
1

Java Web Start 做到了这一点。您使用常规 main 方法编写常规应用程序,并使用扩展名为 .jnlp 的简短 XML 文件指向它。当用户单击 XML 文件的链接时,Java Web Start 将创建快捷方式,如果您的 XML 文件包含以下内容:

<information>
    <!-- Other elements go here -->
    <shortcut>
        <desktop/>
    </shortcut>
</information>

更多细节在这里

于 2013-03-25T00:34:52.027 回答
0

这是一个相当古老的话题,但是我遇到了 Austin 的出色答案,并且在 NetBeans 中使用 jshortcut 时遇到了一些问题,但我担心这也可能会影响 Ecclipse。

  1. 使用 properties->Run->VM 选项从 NetBeans 添加 jshortcut.dll 到 java.library.path 不起作用。
  2. 通过像“ System.setProperty("java.library.path", yourDllPath)"这样的源代码添加这个 dll也不起作用。
  3. 而是将 jshortcut.dll 放到存储 jar 的特定文件夹中,s for this project. JShellLink looks at this folder on its own, so you don无需将 DLL 的路径添加到任何路径,这在某些已关闭的机器上运行时可能会导致问题。
  4. 最重要的是:下载 jshortcut.dll 版本时,对所有实际的 Intel 机器使用 AMD。下载后将dll重命名为shortcut.dll。JShellLink 只查找shortcut.dll,它忽略所有其他名称。

Excert form jShellLink: /** 提供对 Java 快捷方式(shell 链接)的访问。* * 首次加载 JShellLink 时会加载本机库 (jshortcut.dll)。* 默认情况下,JShellLink 首先在 PATH 中查找本机库, * 使用 System.loadLibrary。* 如果在 PATH 中没有找到本机库, * JShellLink 然后查看 CLASSPATH 中的每个目录 *(由系统属性 java.class.path 的值确定)。* 如果 CLASSPATH 中的条目是 jar 文件, * 然后 JShellLink 在包含该 jar 文件的目录中查找本机库 *。* 应用程序可以覆盖此行为并强制 JShellLink 在特定目录中查找本机库,方法是将系统 * 属性 JSHORTCUT_HOME 设置为指向该目录。* 此属性必须在加载 JShellLink 类之前设置。* 这使得从自解压 jar 文件中使用这个库成为可能。*/

于 2018-07-03T14:15:43.523 回答