有一个问题已经困扰我数周,那就是如何从Java创建快捷方式文件。在我说其他任何事情之前,我已经在Google上搜索过所有内容(包括此网站:Creating shortcut links (.lnk) from Java),试图找到一些有用的东西。我需要的不是创建快捷方式的安装程序包,而是从代码中创建快捷方式。我指的快捷方式是通常在桌面上找到的.lnk文件。
我发现的一些有用的东西之一是这个程序:
Java Code:
我尝试使用它,并成功在桌面上创建了.lnk快捷方式。然而,我发现了两个问题:
1.尽管路径正确,但我无法更改图标。 2.我创建了一个指向C:/Users/USER/Documents的路径,但是每当我点击快捷方式时,它会带我到C:/。当我删除快捷方式时,对话框显示路径确实为file:////C:/Users/USER/Documents。
我知道这段代码最初是用于创建Internet快捷方式的,所以我认为我可能采取了错误的方法。如果您能给我任何帮助/链接,我将不胜感激。
我发现的一些有用的东西之一是这个程序:
Java Code:
import java.io.*;
public class WindowsUtils {
private WindowsUtils() { }
private static final String WINDOWS_DESKTOP = "Desktop";
public static String getWindowsCurrentUserDesktopPath() { //return the current user desktop path
return System.getenv("userprofile") + "/" + WINDOWS_DESKTOP ;
}
public static void createInternetShortcutOnDesktop(String name, String target) throws IOException {
String path = getWindowsCurrentUserDesktopPath() + "/"+ name + ".URL";
createInternetShortcut(name, path, target, "");
}
public static void createInternetShortcutOnDesktop(String name, String target, String icon) throws IOException {
String path = getWindowsCurrentUserDesktopPath() + "/"+ name + ".URL";
createInternetShortcut(name, path, target, icon);
}
public static void createInternetShortcut(String name, String where, String target, String icon) throws IOException {
FileWriter fw = new FileWriter(where);
fw.write("[InternetShortcut]\n");
fw.write("URL=" + target + "\n");
if (!icon.equals("")) {
fw.write("IconFile=" + icon + "\n");*
}
fw.flush();
fw.close();
}
public static void main(String[] args) throws IOException {
WindowsUtils.createInternetShortcutOnDesktop("GOOGLE", "http://www.google.com/");
}
}
我尝试使用它,并成功在桌面上创建了.lnk快捷方式。然而,我发现了两个问题:
1.尽管路径正确,但我无法更改图标。 2.我创建了一个指向C:/Users/USER/Documents的路径,但是每当我点击快捷方式时,它会带我到C:/。当我删除快捷方式时,对话框显示路径确实为file:////C:/Users/USER/Documents。
我知道这段代码最初是用于创建Internet快捷方式的,所以我认为我可能采取了错误的方法。如果您能给我任何帮助/链接,我将不胜感激。