C++实现移动设备上Editplus配置java
2007-06-08 07:08
393 查看
买了移动硬盘总希望学习工具都在上面,方便随时使用,但又因为java老要
设置环境变量,所以写了两个程序代替javac.exe和java.exe.
当然,说是代替,其实就是在调用javac,java前设置临时环境变量而已,
不过倒是方便了我
#i nclude <stdlib.h>
#i nclude <Windows.h>
#i nclude <Winbase.h>
void ToRoot(char* dir) //根据路径获取根目录
{
for(unsigned i=0;i<strlen(dir);i++)
if(dir[i]=='\\')
{
dir[i]=0;
return;
}
}
void SetClassPathEnv(char *buf , unsigned size) //设置ClassPath环境变量
{
memset(buf,0,200);
strcpy(buf,"CLASSPATH=.;");
strcat(buf,getenv("java_home"));
strcat(buf,"\\bin;");
strcat(buf,getenv("java_home"));
strcat(buf,"\\jre\\lib;");
putenv(buf);
}
void SetPathEnv(char *buf,unsigned size) //设置Path环境变量
{
memset(buf,0,size);
strcpy(buf,"PATH=");
strcat(buf,getenv("java_home"));
strcat(buf,"\\bin;");
strcat(buf,getenv("java_home"));
strcat(buf,"\\lib;");
strcat(buf,getenv("java_home"));
strcat(buf,"\\jre\\lib;");
strcat(buf,getenv("PATH"));
putenv(buf);
}
void SetJavaEnv() //设置java所需环境变量
{
const unsigned max=500;
char dir[50];
GetCurrentDirectory(50,dir);
ToRoot(dir);
strcat(dir,"\\Software\\JDK"); //因为我的jdk目录是放在我的移动硬盘的X:\SoftWare下的
char buf[max]={0};
strcpy(buf,"JAVA_HOME=");
strcat(buf,dir);
putenv(buf);
SetClassPathEnv(buf,max);
SetPathEnv(buf,max);
}
//------------------------------------------------------
//两个main用来编写两个程序,都用到上面SetJavaPath()的方法
//------------------------------------------------------
//javac编译
int main(unsigned argn,char *args[])
{
if(argn==1)
return -1;
SetJavaEnv();
char cmd[100]={0};
strcpy(cmd,"javac ");
strcat(cmd,args[1]);
system(cmd);
return 0;
}
//====================================================
//java运行
int main(unsigned argn,char *args[])
{
if(argn==1)
return -1;
SetJavaEnv();
char cmd[100]={0};
strcpy(cmd,"java ");
for(unsigned i=1;i<argn;i++)
{
strcat(cmd,args[i]);
strcat(cmd," ");
}
system(cmd);
return 0;
}
设置环境变量,所以写了两个程序代替javac.exe和java.exe.
当然,说是代替,其实就是在调用javac,java前设置临时环境变量而已,
不过倒是方便了我
#i nclude <stdlib.h>
#i nclude <Windows.h>
#i nclude <Winbase.h>
void ToRoot(char* dir) //根据路径获取根目录
{
for(unsigned i=0;i<strlen(dir);i++)
if(dir[i]=='\\')
{
dir[i]=0;
return;
}
}
void SetClassPathEnv(char *buf , unsigned size) //设置ClassPath环境变量
{
memset(buf,0,200);
strcpy(buf,"CLASSPATH=.;");
strcat(buf,getenv("java_home"));
strcat(buf,"\\bin;");
strcat(buf,getenv("java_home"));
strcat(buf,"\\jre\\lib;");
putenv(buf);
}
void SetPathEnv(char *buf,unsigned size) //设置Path环境变量
{
memset(buf,0,size);
strcpy(buf,"PATH=");
strcat(buf,getenv("java_home"));
strcat(buf,"\\bin;");
strcat(buf,getenv("java_home"));
strcat(buf,"\\lib;");
strcat(buf,getenv("java_home"));
strcat(buf,"\\jre\\lib;");
strcat(buf,getenv("PATH"));
putenv(buf);
}
void SetJavaEnv() //设置java所需环境变量
{
const unsigned max=500;
char dir[50];
GetCurrentDirectory(50,dir);
ToRoot(dir);
strcat(dir,"\\Software\\JDK"); //因为我的jdk目录是放在我的移动硬盘的X:\SoftWare下的
char buf[max]={0};
strcpy(buf,"JAVA_HOME=");
strcat(buf,dir);
putenv(buf);
SetClassPathEnv(buf,max);
SetPathEnv(buf,max);
}
//------------------------------------------------------
//两个main用来编写两个程序,都用到上面SetJavaPath()的方法
//------------------------------------------------------
//javac编译
int main(unsigned argn,char *args[])
{
if(argn==1)
return -1;
SetJavaEnv();
char cmd[100]={0};
strcpy(cmd,"javac ");
strcat(cmd,args[1]);
system(cmd);
return 0;
}
//====================================================
//java运行
int main(unsigned argn,char *args[])
{
if(argn==1)
return -1;
SetJavaEnv();
char cmd[100]={0};
strcpy(cmd,"java ");
for(unsigned i=1;i<argn;i++)
{
strcat(cmd,args[i]);
strcat(cmd," ");
}
system(cmd);
return 0;
}
相关文章推荐
- EditPlus配置Java、C++、Python编辑环境
- (跨平台)cocos2d-x C++ or Object-C(前端)调用C# webservices(后台),实现交叉编译到Android/IOS/WinPhone等移动终端设备
- 配置UE32或Editplus开发C/C++/Java
- EditPlus配置[C++] [Python] [Java] 编译运行环境
- EditPlus配置Java环境,并实现简单的Hello Word!学习中
- Editplus配置Java、Python、C/C++ (基于VS2010) 编译环境
- 二、Cocos2dx中Android部分的c++和java实现相互调用(高级篇)
- c++ 实现对配置文件的读写 根据windows API 函数简单改写
- java与C++多态实现比较
- 多态在 Java 和 C++ 编程语言中的实现比较
- 移动设备上的java解决方案
- C++如何实现类似JAVA中加了FINAL关键字的类
- mac系统下配置Eclipse Java/C++ 开发环境
- ID3算法(附有java和c++代码实现)
- Log4j实现对Java日志的配置全攻略
- Java配置实现AOP
- 如何设置或配置pocket pc,才能让电脑ping通,实现虚拟设备和电脑在同一局域网内;
- eclipse JNI示例。利用C/C++实现JAVA中调用的函数
- java计划任务调度框架quartz结合spring实现调度的配置实例代码分享
- <监听器模式>在C++ 与 Java 之间实现的差异