Zeal Blog - 泽欧里
WWW Zeal Blog
梦想 就像鸡蛋
要么孵化 要么臭掉

让classpath参数走开

Posted by zeal on 2006-03-03 15:20 , 3026 characters |  + 0 - 1   English
转载请保留本行原始链接信息 : http://www.zeali.net/entry/337 MADE 1n ZEAL
对于Java开发人员(尤其是初学者)来说,因为classpath配置问题所导致的代码编译运行出错相当普遍,经验教训足可以专文叙之。实际上,我们可以通过实现自定义的ClassLoader等方法来尽量避免classpath对于系统环境的依赖。

  通过加参数调用 javac,可以在编译时使用自定义的 ClassLoader 来完成类的定位加载:

javac -J-Djava.system.class.loader=my.ClassLoaderImpl theSource.java

  自定义 ClassLoader 的方式可以参考这里(基本上来说就是通过继承 findClass(String) 方法来使JVM按照自己期望的规则来加载类)。还处于beta阶段的 Mustang Java SE 6 据说将提供新的工具 javax.tools.JavaCompilerTool 来替代 javac ,这个全新的编译工具应该会给程序员更好的编译体验。

  大多数流行的 java IDE 都大大简化了对于 classpath 的配置过程,以至于很多在程序员的开发环境运行良好的代码发布之后才出现各种各样的问题。所以要想让程序包能够顺利的执行于产品环境,我们通常的做法是写一堆的 bat 或 shell 脚本来完成各种运行参数的配置。而这些大段大段的脚本当中,对 classpath 的配置占了相当大的比重。

  因此 Heikki Uusitalo 写了一个 BootLoader 类(原始代码似乎有些问题,这里修改了一下):将这个类作为引导程序去根据自定义的规则来加载所有必需的 jar 包等资源,然后再启动真正的 main 方法。把这个 BootLoader 类单独打包成一个 jar 文件,运行的时候只需要运行它即可。当然你可以根据实际情况修改读取的路径、规则等信息。

This Entry was Last Modified on 2007-05-28 12:09
对于这篇日志有什么看法?我想听听您的高见:
您也可以在页面底部的 Google Friend Connect 工具栏进行评论,体验更好的互动交流 »
首先为了证明您不是没有思想的机器Spammer,请告诉我 4 + 8 =
然后任选以下两种方式之一告诉我您的身份:
1. 使用您的 OpenID
2. 使用传统留言格式
(必填) 名字
如何称呼您?
(选填) URL
在此填写您的 Blog / Homepage 的地址,我将非常乐于访问
(选填) Email
Email地址将在经过防SPAM处理后显示在页面。如果您不希望公开自己的Email,请略过此栏
并写下您的见解:
(由于需要进行SPAM过滤,如果评论提交速度慢请耐心等待)
(所有URL都会加 nofollow 标记,保证不被搜索引擎收录,请SEOers不要白费力气)
记住我?

  如何进行评论                   当有新回复时给我发送邮件通知
除了 <b> 和 <i> 之外,其他的HTML标签都将从您的评论中去除. URL 或 Email 地址会被自动加上链接.
当您点击发表或者预览之后,系统会自动保存您此次评论的内容,以便当网络原因发表失败时直接按Ctrl-V重新粘贴上次评论内容。
注意:快捷键及自动拷贝功能仅对IE浏览器有效。
1 条评论:
- 哇咔咔2009-06-27 15:22
这个方法非常好,我找了好久,就属你这个通俗易懂,而且很好用
谢谢
 里,居也。——《说文》    里,邑也。——《尔雅》。李注:“居之邑也。”RSS Feed (Entries) | Back To Home | All Links | zbird.com | 沪ICP备05024379号