'; return ''; } ?> '; return ''; } ?> ZEAL Blog·厉
@ZEAL Blog·厉
WWW Zeal Blog
We stand alone,
TOGETHER.
+ 0 - 0 | §飘渺88

icewolf check it out.

+ 0 - 0 | §[存]sprintf的JavaScript实现
在 JavaScript 下实现大多数语言中都有的 sprintf / printf 函数功能。  查看全文
+ 1 - 0 | §UNIX Timestamp in C#
C# 中的 DateTime 值类型表示值范围在公元(基督纪元)0001 年 1 月 1 日午夜 12:00:00 到公元 (C.E.) 9999 年 12 月 31 日晚上 11:59:59 之间的日期和时间;而 Unix 的时间戳则表示的是自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数。 C# 中似乎并没有内置的方法来完成两者之间的转换。  查看全文
+ 0 - 0 | §在C#中解析JavaScript代码
大部分的解释型脚本语言都提供 eval 方法来完成动态代码的解释执行, C# 却并不提供(向 Java 学习)。不过在 .NET Framework 类库里面提供的 Microsoft.JScript 命名空间倒是包含了支持使用JScript 语言编译和生成代码的类。  查看全文
标签 ( JAVA/C++ ) :
+ 0 - 0 | §[存] java.awt.Graphics2D抗锯齿处理

Windows下的 ClearType 能使字体看上去更平滑,但似乎对于 java 小程序里面的文字没有作用。不过可以用 Java 2D API 提供的文本处理功能进行美化。Java 2D API 的文本功能包括:

  • 使用抗锯齿处理和微调(hinting)以达到更好的输出质量
  • 可以使用系统安装的所有字体
  • 可以将对图形对象的操作(旋转、缩放、着色、剪切等等)应用到文本上。
  • 支持向字符串添加内嵌属性(如字体、尺寸、深浅,甚至图像)
  • 支持双向文本(启用从右到左的字符顺序,就象您在阿拉伯语和希伯来语中可能遇到的一样)
  • 第一光标和第二光标能够浏览同时包含从右到左和从左到右字符顺序的文本。
  • 先进的字体度量功能,超过旧的 java.awt.FontMetrics 类中的相应功能
  • 排版功能可以实现单词换行和调整多行文本

这个 API 的核心是由 java.awt.Graphics2D 类提供的,该类是 java.awt.Graphics 的一个子类。API 的其它部分由 java.awt 层次结构中的其它包提供,包括 java.awt.colorjava.awt.fontjava.awt.geom 。对 Graphics2D 使用 setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); 以达到边缘平滑的效果。

标签 ( JAVA/C++ ) :
+ 1 - 0 | §C#中的MD5
C# 中的 System.Security.Cryptography.MD5 只提供返回 hash 字节数组的方法,而像 PHP 的 md5 函数缺省返回的都是长度为32的16进制字符串(到了 php5 之后才增加了可选参数允许调用者得到长度为16的二进制数据)。  查看全文
标签 ( JAVA/C++ ) :
+ 1 - 1 | §Java GPL 进行时

Sun 在固守了多年之后,终于昨天决定让自己的 Java 跨进了 GPLv2 (GNU General Public License version 2) 的大门。虽然目前还只释出了 HotSpot JVM / javac / JavaHelp / feature phone / TCK 等有限的几套源代码,但其他更多代码将在接下来的半年时间中陆续得到公开(包括完整可编译的 JDK)。

Sun 这次的痛下决心或许就跟 MS 迫于 Firefox 的压力而出手 IE7 一样,若不是其他开源脚本语言蓬勃的生机让 Java 感受到了危机的话, Java 之 GPLed 或许不会被 Sun 提到日程表上来。不论原因是什么, Java 的开源会是让大多数人欢欣鼓舞的好事情 -- 虽然必定有撮人会暗暗不爽ing 。

标签 ( JAVA/C++ ) :
+ 2 - 11 | §GCC warnings about strict-aliasing

warning: dereferencing type-punned pointer will break strict-aliasing rules

  在 gcc 2.x 下编译没有任何 warning 信息的代码换到 gcc 3.x 版本下之后出现了类似的 warning 。原因是 gcc 3 引入了 strict aliasing 架构,当编译时使用了 -fstrict-aliasing 参数(该参数在使用了 -O2 , -O3, -Os 优化参数的情况下默认生效),而源代码中存在一些违反了 strict-aliasing 规则的地方的话,编译器就会对这部分代码提出 warning 。

  gcc 3 manual 对于 -fstrict-aliasing 参数的说明是:Allows the compiler to assume the strictest aliasing rules applicable to the language being compiled.  For C (and C++), this activates optimizations based on the type of expressions.  In particular, an object of one type is assumed never to reside at the same address as an object of a different type, unless the types are almost the same.  For example, an "unsigned int" can alias an "int", but not a "void*" or a "double".  A character type may alias any other type.

  简而言之, 在该参数激活的情况下,编译器希望不同类型的对象不会指向同一个地址。比如像这段代码:

int retLen;
someSetFunc((unsigned long*)&retLen);
printf("ret len = %d\n",retLen);

  由于 someSetFunc 的传入参数类型定义为 unsigned long ,所以需要进行这样的指针类型强制 cast 。但对于 -fstrict-aliasing 优化参数来说,这样的转换是有潜在问题的(但实际上可能并不会造成任何问题)。所以如果现有的源代码存在太多这样的类型强制转换的问题的话,对这些代码进行修改也许会是场噩梦。最简单的方法是使用 -fno-strict-aliasing 参数来关闭 gcc 的优化选项,代价是放弃了 strict-aliasing 编译优化可能带来的可执行代码的性能提升。当然也可以用 -Wno-strict-aliasing 来屏蔽相关的 warning 信息,但无论这些 warning 信息多么的无关紧要,总还是“疑似危险”,所以可能的话最好还是把所有的 warning 都消灭掉。

  消灭的方法也不算复杂,正如 gcc manual 所示的那样,可以是采用 union 的不同成员变量来完成类型的转换。上面那段代码可以改为:

union u_retLen
{
int retLen;
unsigned long ptr;
};
someSetFunc(&u_retLen.ptr);
printf("ret len = %d\n",u_retLen.retLen);

  虽然会使源代码变得丑陋,但对于大部分已有的源代码来说,这可能是改动最小的方案了。而对于新写的代码来说,如何更好的设计函数的入口参数(比如使用 void*)可能才是需要去思考的问题了。

标签 ( JAVA/C++ ) :
+ 0 - 0 | §中文字符编码格式判断
一年前在日志里面贴了一套繁简体(GB<=>Big5)字符串转化的JAVA方式实现的源代码,最近有朋友在问如何在转化的过程中先判断原始字符的编码格式。在此提供一个简单的 java class 以供参考。  查看全文
+ 0 - 1 | §当编译器对你说OK
编译连接通过永远不是coding的目标。有时候,编译器也会跟你开个不大不小的玩笑。  查看全文
标签 ( JAVA/C++ ) :
+ 0 - 0 | §获得jar包存放路径的方法

  在 java 中, System.getProperty("user.dir") 得到的是当前工作路径(对应命令行命令就是 linux 下的 pwd 、 windows 下的 cd ),而 System.getProperty("user.home") 得到的是当前用户主目录(对应于 linux 下的 ~ 目录、 windows 下的 document and settings\username );但如果你想得到所运行的 java 程序所在的路径,似乎并没有什么简单的方法。

  比如说,有一个 pathTest.jar 包放在 D:\zeal\webdev 下,这个 jar 执行的时候需要在当前目录下读写一个 test.log 文件。如果不采用绝对路径来读写 test.log 的话,不同的 jar 运行方式会带来不同的结果:

cd D:\zeal\webdev
java -jar pathTest.jar

           ( test.log 将生成在 D:\zeal\webdev 目录下 )

cd E:\sun\jre\bin
java -jar D:\zeal\webdev\pathTest.jar

           ( test.lgo 将生成在 E:\sun\jre\bin 目录下 )

  这势必造成潜在的运行错误。解决的方法是必须在程序中指定 test.log 文件的绝对路径。从本意上来讲,这里我们希望 test.log 与 pathTest.jar 位于相同的路径之下。但显然无论是 "user.dir" 还是 "user.home" 都不会返回正确的结果。

  幸好, java 允许我们定位某个 class 的 CodeSource , 通过 CodeSource 提供的 Location 信息就能够找到相关的文件路径。假设 pathTest.jar 的 main class 是 pathTest ,通过

new pathTest().getClass().getProtectionDomain().getCodeSource().getLocation();

  就可以得到 pathTest.jar 的完整路径( file:/D:/zeal/webdev/pathTest.jar ),接下来怎么做就简单了。当然,实际应用中一般我们会选择把所有与jar相关的资源文件一起打包进去,或者使用 "user.home" 这样的固定位置来存放;除非在特殊情况下才会需要通过这个迂回的方式来获取相关的路径信息。

注: CodeSource 得到的是类所在域信息,对于 jar 包返回的就是该 jar 包的完整路径文件名;如果是没有打包的 classpath 下的类,返回的则是该 classpath 的根路径。

标签 ( JAVA/C++ ) :
+ 0 - 0 | §Java API 在线搜索

javaref.com 提供了一个集成化的 Java 类库文档搜索系统。看上去还不错,至少可以不用每次为翻找本机上的 JavaDoc 而费神了。但似乎访问速度不是特别理想,一些基本的类的说明也并不完整。同时非注册用户只能查找有限的几个类库 (Apache Harmony (JDK 1.5)  , Apache Log4j 1.2.13 , Hibernate 3.1.3 , Spring 1.2.8 ),如果想获得个性化的完全访问权限就要注册一个账号了。不管怎么说,这样一个想法不错,希望能不断在功能和速度上得到改进。

+ 0 - 0 | §MysqlConnectionPoolDataSource

  oracle.jdbc.pool.OracleConnectionPoolDataSource , com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource 这两个来自各自的 jdbc 驱动里面的类看上去是如此相似,但事实上实现的却是两样事情。

  OracleConnectionPoolDataSource 确实是一个 Connection Pool 实现,算得上是最轻量级的 Oracle 数据库连接池实现方式;而 MysqlConnectionPoolDataSource 实际上只是一个提供给 ConnectionPool 使用的 DataSource 而已,并没有任何的连接池功能。

  所以如果你熟悉 OracleConnectionPoolDataSource 的话,可能会被 mysql Connector/J 驱动引擎里面的这个 MysqlConnectionPoolDataSource 类的名字给欺骗而把它当作连接池来使用。带来的结果就是无穷的 connection leak 。但这一点似乎 MySQL 在官方的 Manual 里面并没有很清晰的说明,以至于有人只好通过分析它的源代码来推测其实际的意义。倒是在MySQL Forum 里面 Mark Matthews 做了有一段很明确的解释

  1. Unless you're an application server vendor (or you are installing Connector/J into an application server that wants to use ConnectionPoolDataSources such as IBM Websphere), you shouldn't be using MysqlConnectionPoolDataSource
  2. In any case, the physical connection does not go away until you call PooledConnection.close(), calling conn.close() only closes the 'logical' connection, which requires that any listeners on the ConnectionPoolDataSource be called so that it can _reclaim_ but not close the physical connection so that it can be handed out again, and
  3. You're using very old versions of both Connector/J and MySQL and might want to consider upgrading (Connector/J is at 3.0.16 and the last release of MySQL 4.0 is at 4.0.24 currently, although the 'current' stable release is 4.1.10).

    ConnectionPoolDataSources are _not_ connection pools! They are 'vendors' of connections to connection pooling code. If you don't have your own connection pooling code, then you definitely don't want to be going this route!

  所以目前来说 mysql Connector/J 里面并没有一个能像使用 OracleConnectionPoolDataSource 那样在 java 程序里面简便的实现 MySQL 数据库 connection pooling 的实现。你必须自己实现或者使用第三方的连接池实现,比如 c3p0 和  proxool

+ 1 - 0 | §ConcurrentModificationException
当使用 fail-fast iterator 对 Collection 或 Map 进行迭代操作过程中尝试直接修改 Collection / Map 的内容时,即使是在单线程下运行,  java.util.ConcurrentModificationException 异常也将被抛出。  查看全文
+ 0 - 1 | §Links 2006-06-02: Java API中文版
  • Sun公司完整发布Java API文档中文版
    “如果说我这两年在Sun 公司作了哪些对中国开发人员有益的事的话,我想Java API文档中文版毫无疑问的应该算第一个。我非常清楚仍然有众多开发人员坚持认为一个好的程序员应该完全参考英文版的文档,但是我坚信该文档的中文版有其存在的意义,因为Java作为一种程序设计语言,我们希望能够有更多的开发人员 -- 而不仅仅是那些能够熟练阅读英语的清华北大毕业生 -- 来使用它,掌握它,精通它。”
    话虽如此,但在条件允许的情况下,还是强迫自己去看英文原版的文档为好。咱们的焦书记说:嚼别人吃过的馍,没味道!再好的翻译文档,也会出现与原意不符的地方,质量好坏全看译者对原文的理解程序。英语不是魔鬼。程序员们能够学好各种各样的编程语言, 为什么就不能也去学好这么一门不算复杂的自然语言?哪一天印度阿三们不再因为我们的英文水平而高枕无忧了,哪天我们的软件产业才会真正腾飞了。
  • Opera Mini 2.0,用手机上网
  • FireFox一起看世界杯
标签 ( JAVA/C++ ) :
+ 2 - 0 | §Links 2006-04-28: UTF-8 Mail
  • UTF-8 Mail Header Fix
    用 PHP 的 mail() 函数发送 UTF-8 编码的邮件,不同的邮件客户端下面显示有时候会变成乱码。解决的方法是调用 mail() 函数的时候设置邮件头信息 :
    Mime-Version: 1.0
    Content-Type: text/plain; charset=UTF-8
    Content-Transfer-Encoding: BASE64

    但对于邮件主题或者发件人部分的中文字符,还需要进行如下转换 :
    $subject = "=?UTF-8?B?".base64_encode($subject)."?=";
  • 解决WP邮件通知在gmail中的标题乱码
标签 ( JAVA/C++ ) :
+ 0 - 1 | §让classpath参数走开
对于Java开发人员(尤其是初学者)来说,因为classpath配置问题所导致的代码编译运行出错相当普遍,经验教训足可以专文叙之。实际上,我们可以通过实现自定义的ClassLoader等方法来尽量避免classpath对于系统环境的依赖。  查看全文
+ 0 - 1 | §Thinking in Java, 4th edition

Thinking in Java, 4th edition
Java编程思想第四版(Thinking in Java, 4th edition)

Publisher: Prentice Hall PTR; 4 edition (February 15, 2006) 

ISBN: 0131872486

学Java的大概没有人没看过这本经典了。现在出到第四版,Amazon上开始接受预定。不知道国内什么时候会有胶印版本。

Burce Erkel's mindview上提供前7个章节的pdf格式样书下载

+ 0 - 0 | §[转]Java小笑话两则

  本来想把它们翻成中文。但看来看去还是原汁原味的英文才能准确的表达其中的含义。在会心一笑中你可以对Java的一些特性有更深刻的体会。

  Two ints and a Float are in a bar. They spot an attractive Double on her own. The first int walks up to her. ‘Hey, baby’, he says, ‘my VM or yours?’. She slaps him and he walks back dejected. The second int walks over. ‘Hey, cute-stuff, can I cook your Beans for breakfast?’. After a quick slapping, he too walks back. The Float then ambles over casually. ‘Were those two primitive types bothering you?’, he remarks. ‘Yes. I’m so glad you’re here’, she says. ‘They just had no Class!’

  Two objects meet returning to their block one night…
  ‘You’re just my type’ says one.
  ‘You’re quite a catch yourself’ says the other ‘…but it would never work out, my parents are very protective’

标签 ( JAVA/C++ ) :
+ 0 - 0 | §在C++中使用STL

朋友问我:

“我用.net2005里面的vc7.0的一个问题:
#include <vector>//这个没报错,路径应该没问题
...
vector<int> i;//报错:error C2065: 'vector' : undeclared identifier c:\temp\aaaadlg.cpp 160 
...
难道vc里面用c++的标准库要什么特殊设置?”

其实这是使用C++ Standard Library的基础问题。当使用标准库 -- 这里的vector用到了标准库里面比较常用也最具创新和扩展性的STL(Standard Template Library, 标准模板库) -- 时,include后面不用加.h,但是需要使用命名空间。命名空间的指定有两种方式:

#include <vector>

using namespace std; // 在这里声明
...
vector
<int> i;
...

#include <vector>

...
std::vector
<int> i; // 在这里显式声明
...

标签 ( JAVA/C++ ) :
+ 0 - 0 | §ORA-01003 no statement parsed
Weblogic+jdbc+Oracle。当应用服务器运行的时候重新编译某个被调用的存储过程,调用程序出现 ORA-01003 no statement parsed 错误。  查看全文
+ 1 - 0 | §Troubleshoot High CPU Issues
Got high CPU Issues? Explore operating system commands specific to JVMs to detect the cause of the problem. by Steve Pozarycki, July 14, 2005. 以后有时间再翻译一下。  查看全文
标签 ( JAVA/C++ ) :
+ 1 - 0 | §Weblogic8.1缺省应用配置
在Weblogic7中,要配置某个应用作为缺省应用(Default Web Application)的话,只需要在控制台(Console)界面上进行设置即可。但Weblogic8.1的控制台里面似乎找不到这个选项了。 直接修改config.xml也无法达到目的。  查看全文
标签 ( JAVA/C++ ) :
+ 1 - 0 | §ZipFile的invalid LOC header错误
今天服务器上跑的好好的Weblogic突然罢工,所有的jsp都显示编译错误。这还了得,赶紧查资料解决问题。  查看全文
标签 ( JAVA/C++ ) :
+ 1 - 1 | §Http协议客户端的JAVA简单实现
Http客户端程序已集成在Java语言中,可以通过URLConnection类调用。遗憾的是,由于SUN没有公布Http客户程序的源码,它实现的细节仍是一个谜。本文根据HTTP协议规范,用Java.net.Socket类实现一个HTTP协议客户端程序.  查看全文
+ 0 - 1 | §RSA算法介绍及JAVA实现
最近处理RSA算法,找了一些相关的资料和代码,整理了一下,汇总成这篇文章。  查看全文
标签 ( JAVA/C++ ) :
+ 1 - 0 | §https/http兼容客户端的c语言实现
在最近的工作中碰到了需要跟服务器创建https连接并发送请求的问题,但之前已经写好的代码都是针对传统的tcp套接字来实现的。所以到处找一种比较简洁的方法可以不对原有的代码做太大的改动而能根据需要处理https的需求。把一点结果分享给大家。本文提供的源代码只适用于Unix/Linux系统,Windows下的只要对套接字部分进行修改即可。所有实现基于OpenSSL接口。  查看全文
+ 2 - 1 | §繁简体(GB<=>Big5)字符串转化的JAVA方式实现
本文提供一个java实现中文字符繁简体互换的zip包以及主要的源代码实现说明。  查看全文
+ 1 - 0 | §在JAVA中动态执行类的静态方法
本文通过示例介绍了如何通过java.lang.reflect.*包所提供的反射机制来实现运行时构造类实例/执行类静态方法。  查看全文
+ 1 - 0 | §-jar参数运行应用时classpath的设置方法

当用java -jar yourJarExe.jar来运行一个经过打包的应用程序的时候,你会发现如何设置-classpath参数应用程序都找不到相应的第三方类,报ClassNotFound错误。实际上这是由于当使用-jar参数运行的时候,java VM会屏蔽所有的外部classpath,而只以本身yourJarExe.jar的内部class作为类的寻找范围。

**解决方案**

一 BootStrap class扩展方案

Java 命令行提供了如何扩展bootStrap 级别class的简单方法.
-Xbootclasspath:     完全取代基本核心的Java class 搜索路径.
                                   不常用,否则要重新写所有Java 核心class
-Xbootclasspath/a: 后缀在核心class搜索路径后面.常用!!
-Xbootclasspath/p: 前缀在核心class搜索路径前面.不常用,避免
                                   引起不必要的冲突.

语法如下:
 (分隔符与classpath参数类似,unix使用:号,windows使用;号,这里以unix为例)
 java -Xbootclasspath/a:/usrhome/thirdlib.jar: -jar yourJarExe.jar

二 extend class 扩展方案

Java exten class 存放在{Java_home}\jre\lib\ext目录下.当调用Java时,对扩展class路径的搜索是自动的.总会搜索的.这样,解决的方案就很简单了,将所有要使用的第三方的jar包都复制到ext 目录下.

三 User class扩展方案

当使用-jar执行可执行Jar包时,JVM将Jar包所在目录设置为codebase目录,所有的class搜索都在这个目录下开始.所以如果使用了其他第三方的jar包,一个比较可以接受的可配置方案,就是利用jar包的Manifest扩展机制.
步骤如下:

 1.将需要的第三方的jar包,复制在同可执行jar所在的目录或某个子目录下. 比如:jar 包在 /usrhome/yourJarExe.jar 那么你可以把所有jar包复制到/usrhome目录下或/usrhome/lib 等类似的子目录下.

 2.修改Manifest 文件

 在Manifest.mf文件里加入如下行

 Class-Path:classes12.jar lib/thirdlib.jar

 Class-Path 是可执行jar包运行依赖的关键词.详细内容可以参考 http://java.sun.com/docs/books/tutorial/deployment/jar/downman.html 。要注意的是 Class-Path 只是作为你本地机器的CLASSPATH环境变量的一个缩写,也就是说用这个前缀表示在你的jar包执行机器上所有的CLASSPATH目录下寻找相应的第三方类/类库。你并不能通过 Class-Path 来加载位于你本身的jar包里面(或者网络上)的jar文件。因为从理论上来讲,你的jar发布包不应该再去包含其他的第三方类库(而应该通过使用说明来提醒用户去获取相应的支持类库)。如果由于特殊需要必须把其他的第三方类库(jar, zip, class等)直接打包在你自己的jar包里面一起发布,你就必须通过实现自定义的ClassLoader来按照自己的意图加载这些第三方类库。


以上三种方法推荐第一种,扩展性好,操作起来也最方便.
另外编写自己的ClassLoader,来动态载入class,是更加复杂和高级技术.限于篇幅,不赘述.有兴趣了解可以去google一下custom classloader,或者参考我的另一篇日志:让classpath参数走开

Java的安全机制随不同的JDK版本有不同的变化,会影响很多核心CLASS,比如Thread,所以很多大型商业软件,要求JDK的版本很严格.部分原因也在此.这也要求在发布自己编写的应用时候,不管大小,都要说明开发和测试的JDK版本.


本文所述方法测试基于j2sdk 1.4.2_04-b05

----------------------------------------------------------------------------------------------

附:背景知识

自JDK 1.2以后,JVM采用了委托(delegate)模式来载入class.采用这种设计的原因可以参考http://java.sun.com/docs/books/tutorial/ext/basics/load.html

归纳来讲:是基于JVM sandbox(沙盒)安装模型上提供应用层的可定制的安全机制.


Java虚拟机(JVM)寻找Class的顺序

1. Bootstrap classes

属于Java 平台核心的class,比如java.lang.String等.及rt.jar等重要的核心级别的class.这是由JVM Bootstrap class loader来载入的.一般是放置在{java_home}\jre\lib目录下

2. Extension classes

基于Java扩展机制,用来扩展Java核心功能模块.比如Java串口通讯模块comm.jar.一般放置在{Java_home}\jre\lib\ext目录下

3. User classes

开发人员或其他第三方开发的Java程序包.通过命令行的-classpath或-cp,或者通过设置CLASSPATH环境变量来引用.JVM通过放置在{java_home}\lib\tools.jar来寻找和调用用户级的class.常用的javac也是通过调用tools.jar来寻找用户指定的路径来编译Java源程序.这样就引出了User class路径搜索的顺序或优先级别的问题.

 3.1 缺省值:调用Java或javawa的当前路径(.),是开发的class所存在的当前目录
 3.2 CLASSPATH环境变量设置的路径.如果设置了CLASSPATH,则CLASSPATH的值会覆盖缺省值
 3.3 执行Java的命令行-classpath或-cp的值,如果制定了这两个命令行参数之一,它的值会覆盖环境变量CLASSPATH的值
 3.4 -jar 选项:如果通过java -jar 来运行一个可执行的jar包,这当前jar包会覆盖上面所有的值.换句话说,-jar 后面所跟的jar包的优先级别最高,如果指定了-jar选项,所有环境变量和命令行制定的搜索路径都将被忽略.JVM APPClassloader将只会以jar包为搜索范围.
有关可执行jar有许多相关的安全方面的描述,可以参考http://java.sun.com/docs/books/tutorial/jar/ 来全面了解.

这也是为什么应用程序打包成可执行的jar包后,不管你怎么设置classpath都不能引用到第三方jar包的东西了.

+ 1 - 1 | §TCP的socket连接示例
用C实现的TCP socket连接/读/写操作。采用fcntl设置非阻塞式连接以实现connect超时处理;采用select方法来设置socket读写超时。此示例可被编译运行于Windows/unix系统。  查看全文
+ 0 - 1 | §JbuilderX编辑环境莫名其妙丢失字符的问题

Q:我在JBuilderX中有时会丢失字符的现象,怎么办?
A:有时候会发现用JBuilder编辑源代码的时候源代码明明没有问题,但是编译的时候就是报错,类似Can not find sybmol之类。这时候如果用纯文本编辑器(比如Notepad,editplus等)打开这个源文件察看的话,会发现这行确实有字符少掉了;但在JBuilder下看又明明是对的。该问题是因为JDK 1.4 对于中文平台的GB18030支持的问题。建议采用以下方法:
打开JBuilder安装目录下的bin\jdk.config文件,在文件中加入一行:
vmparam -Dfile.encoding=GBK
重新启动JBuilder即可。

标签 ( JAVA/C++ ) :
+ 2 - 0 | §Weblogic下同名类的优先级设置
使用Weblogic的时候,有时你希望不管系统的classpath设置,都优先使用自己的web application下面的类;缺省情况下却并非如此。  查看全文
Since 2005.04.27  梦想 就像鸡蛋 要么孵化 要么臭掉RSS Feed (Entries) | About me | Back To Home | @ZEAL | zbird.com | 沪ICP备05024379号
-->