将Java代码打包为exe文件
原文来自:http://gocom.primeton.com/modules/newbb/item44444_44444.htm
1 基本信息
摘要:
现在有很多的工具将Java代码打包为exe文件,执行时不需要再编写批处理文件,或者在命令行输入长长的classpath信息,为用户使用提供了很大的方便。这也是很多商业软件常常使用的方法。
作者:晏斐
2 将Java代码打包为exe文件
现在有很多的工具将Java代码打包为exe文件,执行时不需要再编写批处理文件,或者在命令行输入长长的classpath信息,为用户使用提供了很大的方便。这也是很多商业软件常常使用的方法。
将Java代码打包为exe文件,一般需要两个步骤:
1. 编写本地代码,创建虚拟机,加载并执行Main Class。
2. 将Java代码打包为jar文件,并与本地代码exe文件合并。
下面的代码,会加载jvm.dll,并调用JNI_CreateJavaVM导出函数创建Java虚拟机,得到JNIEnv指针,然后调用FindClass查找Main Class,之后调用GetStaticMethodID方法得到main方法,并执行main方法。代码如下:
#include <windows.h>
#include <jni.h>
//#pragma comment( linker, "/subsystem:"console" /entry:"mainCRTStartup"" )
#pragma comment( linker, "/subsystem:"windows" /entry:"WinMainCRTStartup"" )
typedef jint (JNICALL *JNICREATEPROC)(JavaVM **, void **, void *);
bool setStream(JNIEnv *env, const char* pszFileName, const char* pszMethod);
//启动java虚拟机方法
//bool main(int argc,char *argv[])
int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrevInstance,PSTR szCmdLine, int iCmdShow)
...{
//jvm动态库的路径
const char szJvmPath[] = "d:\jdk1.5.0_07\jre\bin\server\jvm.dll";
相关文档:
利用java反射技术提取类信息
1 package day15;
2
3 import java.lang.reflect.*;
4
5 public class ReflectionTest {
6
7 public& ......
Java Network Launching Protocol (JNLP,java网络加载协议)。
jnlp是什么?是java提供的一种让你可以通过浏览器直接执行java应用程序的途径,它使你可以直接通过一个网页上的url连接打开一个java应用程序.好处就不用说了,如果你的java应用程序以jnlp 的方式发布,如果版本升级后,不需要再向所有用户发布版本,只需要更 ......
import java.lang.reflect.Array;
public class ReflectionTest {
public static void main(String[] args) {
try {
Example obj = new Example();
j ......
Java的环境变量配置:
(两种方法任选一种皆可)
方法一:
依次点击:“我的电脑”-(右键)“属性”-“高级”-“环境变量”,弹出Windows的“环境变量”配置卡。
在“系统变量”栏下执行三项操作:
①新建“Classpath”(如果已有,则直接 ......
import java.io.FileInputStream;
public class FileCopy{
public static void main(String[] args){
try{
&nb ......