Создание файла ярлыка из Java
Одна проблема, которая озадачивала меня уже несколько недель, заключается в том, как я могу создать файл ярлыка из Java. Теперь, прежде чем я скажу что-нибудь еще, я просмотрел весь Google (и также на этом сайте; включая это:Создание ссылок ссылок (.lnk) из Java) пытаюсь найти что-то полезное. Что мне нужно?t установочный пакет, который создает ярлык, но создает ярлык из кода. Под ярлыком я подразумеваю файл .lnk, который обычно находится на рабочем столе.
Одна из полезных вещей, которые я нашел, была эта программа:
Java-код:
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 на моем рабочем столе. Однако я столкнулся с двумя проблемами:
Я не могизменить значок, несмотря на путь, связывающий его с правильным значком. Я сделал путь, который привел меня к C: / Users / USER / Documents, однако всякий раз, когда я нажимал на ярлык, он приводил меня к C: /. Когда я удаляю ярлык, диалоговое окно действительно показывает мне, что путь к файлу: //// C: / Users / USER / Documents.
Я знаю, что приведенный выше код изначально предназначался для создания ярлыков Интернета, поэтому я считаю, что, возможно, принял неправильный подход. Буду признателен за любую помощь / ссылки, которые вы можете дать мне.