Java调用动态库最简便方法和最好用的组件

记得以前 Java 要调用C/C++写得动态库都是用的 JNI 方式,还需要自己写不少 C/C++ 代码。比如说要在Java中调用已有的动态库,如 Windows 的 user32.dll 的方法 MessageBoxA,具体步骤是 Java 中声明一个 native 方法,然后用 javah 命令生成JNI样式的头文件,再自己实现头文件中声明的方法,在实现方法中装载动态库 user32.dll,调用 MessageBoxA 方法,需要把自己写的这部分 C/C++ 代码封装成一个动态库,如Sample.dll,最后在 java  中装载 Sample.dll,然后执行其中所声明的本地方法。

可见,用老实的JNI方式,我们在调用一个已知动态库的时候还需要额外生成一个符合JNI规则的动态库作为桥梁,显得有点多余了。 阅读全文 >>

常用log4j配置

常用log4j配置,一般可以采用两种方式,.properties和.xml,下面举两个简单的例子:

最简单的配置是只要取下面的log4j.properties文件中带下划线的四行就行,它完成日志输出到控制台。

一、log4j.properties 阅读全文 >>

关于 Log4j 比较全面的配置

LOG4J的配置之简单使它遍及于越来越多的应用中了:Log4J配置文件实现了输出到控制台、文件、回滚文件、发送日志邮件、输出到数据库日志表、自定义标签等全套功能。择其一二使用就够用了 阅读全文 >>

不自觉又喜欢上了NetBeans IDE5.0(Build 200601251500)

曾经是Eclipse的拥趸,今天晚上在网上Down了一个NetBean 5.0,安装到电脑上,打开试用了一下,确实比以前版本快很多,而且功能也非常的丰富,直接支持EJB开发,AJAX,JSF1.1,Struts都到1.2.7了,还要看看Struts低版本是如何支持的,WebService的开发;还有把源文件输出为HTML格式的功能,导出要展示的代码很有用的。

NetBean也是免费的,虽说Eclipse也是免费的,但Eclipse还得倚仗着盗版的MyEclipse才能做实际的开发;NetBean也有插件啊。看来一被忽略的NetBean需要好好去发掘,以后在本机学习、测试、验证代码的话我就在NetBean下进行了。

使用Java的反射调用方法应注意的异常处理

先看下面的代码,看看程序执行会是什么样的结果:

阅读全文 >>

纯Java程序读取DBF文件型数据库

还记得那个古老的Foxbase和Foxpro产生的数据库吗?与access(MDB)类似的文件型数据库,可是有些地方有人还在用它。DBF数据库一般都是在Foxbase或Foxpro中或由它们生成的应用程序来访问,也可以通过建立ODBC的方式来访问。

Java要访问什么数据库第一个念头就会是有没有相应的驱动啊,有驱动那好办,若是没有驱动那能不能通过配置ODBC,用JDBC-ODBC桥来访问呢?当然Java访问DBF文件是可以通过JDBC-ODBC的方式,但这样的话是不是纯Java实现还说,倒是得为要访问的DBF文件建一个数据源麻烦,尤其是程序移植时。 阅读全文 >>

Oracle中的Java存储过程的操作权限

当我们在Oracle中用Java写的存储过程方法中,如果访问了本地文件系统、连接了网络、或者运行系统命令,就必须为执行该过程的模式赋予相应的权限。不然执行该存储过程就会报无该操作权限的异常。

本文所面对的是哪些会用Java写存储过程的朋友,可能你们在用Java写Oracle的存储过程也遇到过类似问题。希望对他们能有所帮助。关于如何用Java写Oracle的存储过程请参考我前面的一篇文章:Oracle8i中使用Java语言来开发存储过程,其中有相应的代码。 阅读全文 >>

Oracle8i中使用Java语言来开发存储过程

在Oracle8i之前,开发人员只能使用PL/SQL来开发存储过程。而在Oracle8i之中,不仅可以使用原有的PL/SQL开发存储过程,而且也可以使用Java语言来开发存储过程。本篇文章将简单介绍关于这方面的知识,包括以下内容:(灰色显示的部分在此将不作详细介绍)

本文是我参考网上资料,整理出来的一份,文中所有代码语句均真实可用,因只是作测试,所以代码未表现实际业务操作。

一. 存储过程简介
阅读全文 >>

由StringBuffer和StringBuilder的区别而衍生的

    认识StringBuilder大概是在一年前的八九月份里,还是在JDK1.5从未正式发布始,一直都是关注的它的几大显著特性--泛型、静态引入、装拆箱和不定参等,某些比较细微的差别却没注意到。

    大家都知道处理字符串连接时StringBuffer比String效率高,因为从编译的字节码中也可以看到String的相加也是要转换为StringBuffer来进行的。

    比如对于这几句代码  String s = "Hello";  s=s+" Java";  s=s+" World!"; 反编译之后从字节码可以看出虚拟机实际是如何处理的(具体字节码这里就略去了,对于详细字节码的分析我想如果需要的时候以后会单独写一篇来介绍):
阅读全文 >>

如何查找JBoss所发布的JNDI资源

J2EE容器分为Servlet容器和EJB容器,例如Tomcat就是一个Servlet容器,WebLogic,WebSphere Application Server,JBoss就是EJB容器。他们都提供JNDI的支持,你可以把任何资源(如DataSource、JMS、Queue、Mail甚至是URL资源)都绑定到JNDI上下文中,这样可以降低组件间的耦合性。

通常的Servlet容器(如Tomcat、Resin)中的JNDI资源只能被容器中的程序查到、使用,而不能在容器外引用,也就是只能被容器所以进程所用;而EJB容器中的JNDI资源却可以在容器外,或者是另一台机器上的程序查找到并透明使用,因为EJB本来就是要为分布式服务的。EJB容器中的JNDI资源可以通过JNP、RMI、IIOP、T3或文件引用的方式发布出去。 阅读全文 >>