【发布时间】:2018-10-10 21:13:01
【问题描述】:
我正在尝试修复此异常:无法在 32 位 JVM 上加载 64 位 SWT 库
我的项目是基于 maven 的,我在 pom.xml 文件中声明了两个依赖项(SWT 32 位和 SWT 64 位)。
我正在尝试使用以下函数基于 Java 架构数据模型(sun.arch.data.model 属性)动态加载正确的 JAR:
private static synchronized void loadLibrary(File jar) {
try {
URLClassLoader loader = (URLClassLoader) ClassLoader.getSystemClassLoader();
URL url = jar.toURI().toURL();
for (URL it : Arrays.asList(loader.getURLs())) {
if (it.equals(url)) {
return;
}
}
Method method = URLClassLoader.class.getDeclaredMethod("addURL", new Class[]{URL.class});
method.setAccessible(true);
method.invoke(loader, new Object[]{url});
} catch (Exception e) {
System.out.println("error");
}
}
问题是我不知道如何指定 JAR 的路径。我看到 JAR 已下载到 .m2 文件夹中,但我想我无法指定该路径。我的猜测是,如果 JNLP 将下载 JAR,我应该指定 Java 缓存的路径。我说的对吗?
【问题讨论】:
-
你用的是什么IDE?
-
我正在使用 Netbeans