The SWT FAQ 中文(9)

(英文原文:http://www.eclipse.org/swt/faq.php)

翻译:Frank(frank(at)zijinshi.cn)

版本:Version 0.9

The SWT FAQ

17.问:为什么出现了这个错误信息:"java.lang.NoClassDefFoundError: org/eclipse/swt/internal/XXX/OS."?
答:在某些平台上,比如 GTK上,SWT 被划分成了好几个jar。所以,你还得确保所有需要的jar都在classpath中列出来了。这些必需的jar是:
  • swt.jar (所有的平台)
  • swt-pi.jar (某些平台比如说 GTK 和 Carbon)
  • swt-mozilla.jar (用于 GTK 和 Motif 的浏览器组件)
  • swt-gtk.jar (适用于Linux Motif)
18.问: 为什么出现了这个错误信息:"java.lang.UnsatisfiedLinkError: no swt-win32-3232 in java.library.path."?
答:你需要把SWT JNI 库(它允许java使用本地组件)放在一个Java虚拟机能够找到它的地方。

SWT JNI libraries包含在 SWT 下载文件中。

可以通过以下几种方式让Java应用程序知道库的路径。

  1. 在虚拟机家载参数中设置库的路径。

    在Launch Configuration Dialog 中,选择 Arguments 页面,在 VM 参数域输入 -Djava.library.path={runtime-library-path} ,这儿 runtime-library-path 就是包含本地代码库的目录的全路经。

    这种方案意味着SWT库不得不手动的加到每个使用SWT的项目中去。

  2. 在环境变量中设置库的路径。

    对于Windows系统来说,在PATH环境变量中加上上面提到的runtime-library-path就可以了。
    在Win 9X 中,你需要修改 Autoexec.bat 文件。
    在 NT 或 2K 机器中,你可以通过 My Computer > Properties > Advanced > Environment Variables  编辑变量。

    在linux/unix 系统中,修改 LD_LIBRARY_PATH 变量来包含runtime-library-path。

  3. 把 SWT 库复制到一个已经是Java库路经的目录中去。比如说,jre/bin目录。

    这个解决方案的缺点是,每次你升级eclipse之后,你还得记住复制本地代码库。

自Eclipse 3.1开始,SWT 插件 中就在SWT.jar中加入了JNI库。它支持OSGi 和 Eclipse RCP。如果你使用了这个插件,你必须把库包含到路径中去。


(待续…)

 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值