服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

eclipse编程tips-让rcp自带jre


  有些时候我们编写的程序可能会用到其它一些库,比如jai, j3d等,而在默认jre中并没有这些库。一种方法是在用户的客户端上安装这些库,但是还有另外一种简单的方法,那就是自带jre,把这些库全部放进jre的响应目录中。这样无论客户端安装什么版本的jre,是不是有全部的库,我们的应用程序总能够通过自己的jre运行。
  
  其方法是在rcp目录中,自建一个目录,就叫<jre>,里面就放入集成的jre,把需要的库全部统统放进去就可以了。
  
  原来,在eclipse.c中,有查找shipped vm的代码,eclipse.exe会先查找有没有自带的jvm,有的话就用它启动:
  /* find the directory where the eclipse program is installed. */
  programdir = getprogramdir();
  ...
  
  /* if the user did not specify a vm to be used */
  if (vmname == null)
  {
  /* determine which type of vm should be used. */
  vmname = ((debug || needconsole) ? consolevm : defaultvm);
  
  /* try to find the vm shipped with eclipse. */
  shippedvm = malloc( (_tcslen( programdir ) + _tcslen( shippedvmdir ) + _tcslen( vmname ) + 10) * sizeof(_tchar) );
  _stprintf( shippedvm, _t_eclipse("%s%s%s"), programdir, shippedvmdir, vmname );
  javavm = findcommand( shippedvm );
  
  /* format a message to indicate the default vm search path. */
  vmsearchpath = malloc( (_tcslen( pathmsg ) + _tcslen( shippedvm ) + _tcslen( vmname ) + 10) * sizeof(_tchar) );
  _stprintf( vmsearchpath, pathmsg, shippedvm, vmname );
  free( shippedvm );
  shippedvm = null;
  }
  
  eclipsewin.h
  _tchar* consolevm   = _t("java.exe");
  _tchar* defaultvm   = _t("javaw.exe");
  _tchar* shippedvmdir = _t("jre//bin//");
  
  这样就可以通过自带jre解决客户端库不完全的问题。我们的项目正是采用这种方式。

扫描关注微信公众号