RCP: P2 Update两个烦人bug和解决办法
问题
Eclipse新的P2 Update机制,使用起来很方便,如果使用P2 plugin自带的UI,开发者完全不用写任何代码 即可实现application的在线更新。 但是P2 Update至少有2个已知的bug,都是打包jre相关的问题,讲清楚后,你会发现解决方案很简单,但是厘清之前,它甚至可能困恼你几天而没有头绪。(注:笔者当前使用的eclipse版本为4.3)
Bug1:https://bugs.eclipse.org/bugs/show_bug.cgi?id=300812
更新时更新jre目录失败,错误消息类似于
Backup of file [...]\eclipse\jre\lib\jsse.jar failed.
File that was copied to backup could not be deleted: [...]\eclipse\jre
\lib\jsse.jar.
或者
"Can't remove application_path/jre/jre/lib/charsets.jar"
这个bug是由于如果你打包产品时,勾选了Bundle JRE for this enviroment with the product。那么除了自动生成jre目录外,repository目录中也会包含jre的更新。那么,问题就来了,你打包在产品中的jre正在被使用,同时更新程序又企图backup、delete、update它,于是报错。
Bug2:http://www.eclipse.org/forums/index.php?&t=msg&th=162865
简单说,就是即使你去掉了对Bundle JRE for this enviroment with the product的勾选,打包时照样会生成jre目录。
解决方案
对于Bug1, 解决方案很简单,就是不要勾选Bundle JRE for this enviroment with the product,不自动打包jre。但是,这时候你就面临Bug2。
NOTE:
如果你是基于feature打包而不是plugin打包。那么还有一个解决办法,就是把jre打包到一个独立的feature中去,并且永远不增加这个feature的版本号,这样这个feature就不会被更新了。实际配置当然要复杂得多,而且我也还没试成功,参考https://bugs.eclipse.org/bugs/show_bug.cgi?id=300812 Comment23
对于Bug2,我给出的链接中有许多讨论,我试了真正有用的只有一个:那就是重装eclipse,然后永远永远不要勾选“Bundle JRE for this enviroment with the product”。
最后,如果结果是不能打包jre,那么上面的都是废话了。其实解决方案也很简单,就是把jre目录手动拷贝到application的根目录,然后在根目录的ini文件中加入以下两行:
-vm
./jre/bin
参考
If your Eclipse-RCP application does not want to work with update site.
RCP: P2 Update两个烦人bug和解决办法的更多相关文章
- 【转载】IE浏览器常见的9个css Bug以及解决办法
IE浏览器常见的9个css Bug以及解决办法 我们在浏览网页的时候经常看见这样的现象:某个网页在IE6浏览器中打开很正常,但是在IE8里面打开可能完全变形了.或者也有可能出现完全相反的现象.这让We ...
- oracle执行update语句时卡住问题分析及解决办法
转载:http://www.jb51.net/article/125754.htm 这篇文章主要介绍了oracle执行update语句时卡住问题分析及解决办法,涉及记录锁等相关知识,具有一定参考价值, ...
- 记CRenderTarget:DrawText()绘制中文乱码的BUG及解决办法
原文:记CRenderTarget:DrawText()绘制中文乱码的BUG及解决办法 转载请注明出处:http://www.cnblogs.com/Ray1024 一.问题描述 在MFC中使用Dir ...
- Dumpzilla工具第615行bug的解决办法
Dumpzilla工具第615行bug的解决办法 在Dumpzilla使用选项frequency时,会提示SQL语法错误.这是由于其中SQL语句编写错误.需要将615行中: where url l ...
- (原创)spring mvc和jersey rest 组合使用时单例对像实例化两次的BUG及解决办法
项目中没用spring 的restTemplate 而是采用 jersey来做rest 的实现,一直用着,也没发现有什么不对,后来加入了,以quartz用硬编码方式实现,结果启动项目的时候报错 ,具体 ...
- ie6双边距bug及其解决办法
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 最新版jQuery v3.3.1的BUG以及解决办法(什么问题不重要,怎么解决问题才重要)
发现问题 最新版的 FineUIPro v5.2.0 中,我们将内置的 jQuery v1.12.4 升级到 jQuery v3.3.1 ,可以看升级记录: +升级到jQuery v3.3.1. ...
- React + antd 组件离开页面以后出现Can only update a mounted or mounting component 的解决办法
做项目的过程中,来回切换页面时,一直遇到Can only update a mounted or mounting component 这个问题,原因是当离开页面以后,组件已经被卸载,执行setSta ...
- 【转】JS浮点数运算Bug的解决办法
37.5*5.5=206.08 (JS算出来是这样的一个结果,我四舍五入取两位小数) 我先怀疑是四舍五入的问题,就直接用JS算了一个结果为:206.08499999999998 怎么会这样,两个只有一 ...
随机推荐
- Java代理模式
java代理模式及动态代理类 1. 代理模式 代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问.在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目 ...
- 面向系统管理员的10款Linux GUI工具 (转自51cto)
如果你是名系统管理员,现已到了Linux非知道不可的地步.如果你在更庞大的环境下工作,更是如此.许多企业组织已迁离了一切都借助点击式GUI来管理的Windows.幸好,Linux也有许多GUI工具可以 ...
- XE系列资源文件的奇怪问题
这是一个关于资源文件的故事.......-_- 今天写一个功能测试Demo, 为了省事直接在工程文件里Resources And Images里添加了几个图片, 类型都是默认的RCDATA 然后直接就 ...
- 一个关于Delphi XML处理单元的BUG
使用delphi的XML处理单元 XMLDoc XMLIntf 在获取XML文本内容的时候, 高版本的Delphi会丢失编码描述....在D7上却是正常的, 下面是测试源码: procedure TF ...
- cookbook学习第二弹
1.5怎样实现一个按优先级排序的队列?并且在这个队列上面每次pop操作总是返回优先级最高的那个元素 带有双下划线的方法,会在需要被调用的位置自动被调用 带有单下划线的变量是私有变量 下面利用类heap ...
- 关于js SDK的程序,java SDK的程序
一:JS SDK 1.修改配置workspace 2.导入 3.Demo.html <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Trans ...
- zepto源码--核心方法5(文本操作)--学习笔记
涉及到文本内容的主要有三个函数:html, text, val. 我们已经见过多次,一个函数多种用途的情况,今天这三个函数也不例外,既可以获取内容,也可以设置内容.判断条件就是有没有传入参数,如果没有 ...
- 用Appium进行android自动化测试
appium是开源的移动端自动化测试框架,可以测试ios,android应用.appium让移动端自动化测试不必限定在某种语言和某个具体的框架:也就是说任何人都可以使用自己最熟悉最顺手的语言以及框架来 ...
- DHCP中继
DHCP中继 要求: 假设公司现在有两个部门分别为 销售部门,生产部门 对这两个部门分配不同网段, 销售部门 192.168.1.0/24 生产部门 192.168.2.0/24 为了节约使用LINU ...
- 【Android测试】【第十二节】Uiautomator——API详解
◆版权声明:本文出自carter_dream的博客,转载必须注明出处. 转载请注明出处:http://www.cnblogs.com/by-dream/p/4921701.html 简单的例子 以一个 ...