Я пытаюсь открыть URL в браузере Windows по умолчанию на Java.К сожалению, я не могу использовать утилиты класса Desktop, поскольку код должен быть совместим с 1.5.
. В качестве решения я вызываю ShellExecute, используя собственный метод:
public class ShellExec {
public native int execute(String document);
{
System.loadLibrary("HSWShellExec");
}
public static void main(String args[]) throws IOException {
new ShellExec().execute("http://www.google.com/");
}
}
Я положилDLL-файл в корне проекта Eclipse, который, по-видимому, включен в java.library.path.
Все работает просто отлично, если ShellExec находится в пакете по умолчанию, но если я перемещаю его в любой другой пакет, вызывается нативный вызовне с:
Exception in thread "main" java.lang.UnsatisfiedLinkError: apackage.ShellExec.execute(Ljava/lang/String;)I
at apackage.ShellExec.execute(Native Method)
at apackage.ShellExec.main(ShellExec.java:13)
У кого-нибудь есть идеи, почему?Я использую DLL из http://www.heimetli.ch/shellexec.html
Спасибо
.. позже отредактируйте:
В конце концов этот и другие классы будут служебными классами в приложении Eclipse RCP,и все внешние DLL будут помещены в общую папку lib, на которую будет указывать java.library.path.Библиотеки DLL видны, но я получаю тот же тип ошибок, что и простой пример, приведенный выше.