易截截图软件、单文件、免安装、纯绿色、仅160KB

定制java虚拟机

最近有网友问:如何让一个JAR文件随JVM启动时运行?java.exe是不能够做成这样的,不过可以自己定制java.exe,定制java.exe在如下情况有用:
1.不想程序的进程名显示为java.exe
2.希望程序双击就可以运行。
下面是一段示例代码:
// JVM_CPP.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "windows.h"
#include <jni.h>
typedef jint (JNICALL *JNICREATEPROC)(JavaVM**, void**, void*);
bool setStream(JNIEnv* env, const char* pszFileName, const char* pszMethod);
//启动java虚拟机方法
bool startJvm()
{
//jvm动态库的路径
const TCHAR szJvmPath[] = _T("E:\\java\\jdk\\jdk1.6.0\\jre\\bin\\server\\jvm.dll");
//java 虚拟机的启动参数,每个参数写一项,不能合在一起写
int nOptionCount = 2;
JavaVMOption options[2];
options[1].optionString = "-Xmx256M";
//设置classpath
options[0].optionString = "-Djava.class.path=./Test.jar;";
JavaVMInitArgs vm_args;
vm_args.version = JNI_VERSION_1_4;
vm_args.options = options;
vm_args.nOptions = nOptionCount;
vm_args.ignoreUnrecognized = JNI_TRUE;
//启动类,注意分割符是/,例如启动类test.JTest应该写成 test/JTest
const char szStartClass[] = "com/kortide/JVM/Test";
//启动方法,通常是main函数,你也可以设定成其他函数
const char szStartMethod[] = "main";
//重导向文件
const char* szStdoutFileName = "stdout.txt";
const char* szStderrFileName = "stderr.txt";
//java程序的命令行参数
int nParamCount = 2;
const char* szParams[2] =
{
"arg1", "arg2"
};
//加载JVM。
HINSTANCE jvmDll = LoadLibrary(szJvmPath);
if (jvmDll == NULL)
{
printf("加载JVM动态库错误。%l", ::GetLastError());
return false;
}
//查找JNI_CreateJavaVM过程。
JNICREATEPROC jvmCreateProc = (JNICREATEPROC) GetProcAddress(jvmDll,
"JNI_CreateJavaVM");
if (jvmCreateProc == NULL)
{
FreeLibrary(jvmDll);
prin


相关文档:

关于java类初始化工作先后顺序的总结

虽然不觉得在编程时正确判断java类初始化工作先后顺序会是一个挑战,且对于类初始化的认识还只停留在语言特性机制的层面(或许会是一种实现技巧领域的议题),但对于关于初始化这类零散而又细小的知识点,总结还是有价值的 ......

JAVA线程池的使用

线程池类为 java.util.concurrent.ThreadPoolExecutor,常用构造方法为: ThreadPoolExecutor(int corePoolSize, int maximumPoolSize,
long keepAliveTime, TimeUnit unit,
BlockingQueue<Runnable> workQueue,
RejectedExecutionHandler handler) corePoolSize: 线程池维护线程的最少数量 ......

JSON与JAVA数据的转换

关键字: json java
JSON-lib这个Java类包用于把bean,map和XML转换成JSON并能够把JSON转回成bean和DynaBean。
下载地址:http://json-lib.sourceforge.net/
还要需要的第3方包:
org.apache.commons(3.2以上版本)
org.apache.oro
net.sf.ezmorph(ezmorph-1.0.4.jar)
nu.xom
1、List
Java代码
boolean[] bool ......

Ubuntu下JAVA开发环境部署

安装开发环境
ubuntu9.10下安装JAVA开发环境其实还是比较简单的,我们就以安装常用的jdk、eclipse、tomcat、svn client(找到一个可以和windows中的小乌龟类似的但安装还有点问题解决后会补上)、oracle client为例讲讲如何安装(本文中自动化安装脚本下载http://download.csdn.net/source/2034239,文件太大分成6份 )。前 ......

java多线程的效率就一定高吗?

   很久没上来了,发现虽然资料和书看的很多,但是很久没碰的东西还是很容易淡忘。以后希望能多记录吧。
   今天玩了把线程池,并对其中的参数做了一些调整,并记录在多并发情况下线程数对各种情况的反应。程序是网上找的,并作了稍微修改。
java的线程池实现,ThreadPool
package net.zj.hz.yk.thr ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号