参照下图进入到注册表,依次打开红圈中的路径,在RunMRU里面列出来的全部是记录,全部删除即可
现在网上提供的清除历史记录一般都是全部删除,如果有时候只想删除某条记录,可以考虑使用以下方法.
实现对地址栏中的历史记录进行删除的操作,以及运行对话框的历史运行记录的删除.
其实就是找出历史记录在注册表中的位置,然后操作注册表,删除之.
注意:运行对话框的历史记录删除需要注销系统后才起作用.
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using Microsoft.Win32; namespace Zhouzy { public partial class ClearNetRecord : Form { string CLEARURLRECORD = "Software//Microsoft//Internet Explorer//TypedURLs"; string CLEARRUNRECORD = "Software//Microsoft//Windows//CurrentVersion//Explorer//RunMRU"; public ClearNetRecord() { InitializeComponent(); } private void ClearNetRecord_Load(object sender, EventArgs e) { tpClearAddress.Select(); LoadAddressRecord(); LoadRunRecord(); } private void btClearSelAddress_Click(object sender, EventArgs e) { RegistryKey key = Registry.CurrentUser; RegistryKey subkey = key.CreateSubKey(CLEARURLRECORD); for (int i = lbAddressList.Items.Count-1; i >= 0; i--) { if (lbAddressList.GetSelected(i)) { string strValue = lbAddressList.Items[i].ToString(); int nPos = strValue.IndexOf(':'); strValue = strValue.Substring(0, nPos); subkey.DeleteValue(strValue); lbAddressList.Items.RemoveAt(i); } } key.Close(); } private void btReverseSelClear_Click(object sender, EventArgs e) { RegistryKey key = Registry.CurrentUser; RegistryKey subkey = key.CreateSubKey(CLEARURLRECORD); for (int i = lbAddressList.Items.Count - 1; i >= 0; i--) { if (!lbAddressList.GetSelected(i)) { string strValue = lbAddressList.Items[i].ToString(); int nPos = strValue.IndexOf(':'); strValue = strValue.Substring(0, nPos); subkey.DeleteValue(strValue); lbAddressList.Items.RemoveAt(i); } } } private void btClearAddressAll_Click(object sender, EventArgs e) { RegistryKey key = Registry.CurrentUser; key.DeleteValue(CLEARURLRECORD); lbAddressList.Items.Clear(); key.Close(); } private void LoadAddressRecord() { string[] szName; //读取注册表中的地址栏信息 RegistryKey key = Registry.CurrentUser; RegistryKey subkey = key.CreateSubKey(CLEARURLRECORD); szName = subkey.GetValueNames(); //加载注册表中的信息到列表中 int nCount = subkey.ValueCount; string listValue = ""; string szValue; for(int i=0; i<nCount; i++) { szValue = szName.GetValue(i).ToString(); szValue = subkey.GetValue(szValue).ToString(); listValue = string.Format("{0}:{1}", szName.GetValue(i), szValue); lbAddressList.Items.Add(listValue); } key.Close(); } private void LoadRunRecord() { string[] szName; //读取注册表中的地址栏信息 RegistryKey key = Registry.CurrentUser; RegistryKey subkey = key.CreateSubKey(CLEARRUNRECORD); szName = subkey.GetValueNames(); //加载注册表中的信息到列表中 int nCount = subkey.ValueCount; string listValue = ""; string szValue; for (int i = 0; i < nCount; i++) { szValue = szName.GetValue(i).ToString(); if (szValue.Trim() == "MRUList") continue; szValue = subkey.GetValue(szValue).ToString(); listValue = string.Format("{0}:{1}", szName.GetValue(i), szValue); lbRunList.Items.Add(listValue); } key.Close(); } private void btClearRunSel_Click(object sender, EventArgs e) { RegistryKey key = Registry.CurrentUser; RegistryKey subkey = key.CreateSubKey(CLEARRUNRECORD); for (int i = lbRunList.Items.Count - 1; i >= 0; i--) { if (lbRunList.GetSelected(i)) { string strValue = lbRunList.Items[i].ToString(); int nPos = strValue.IndexOf(':'); strValue = strValue.Substring(0, nPos); subkey.DeleteValue(strValue); lbRunList.Items.RemoveAt(i); } } key.Close(); } private void btClearRunUnSel_Click(object sender, EventArgs e) { RegistryKey key = Registry.CurrentUser; RegistryKey subkey = key.CreateSubKey(CLEARRUNRECORD); for (int i = lbRunList.Items.Count - 1; i >= 0; i--) { if (!lbRunList.GetSelected(i)) { string strValue = lbRunList.Items[i].ToString(); int nPos = strValue.IndexOf(':'); strValue = strValue.Substring(0, nPos); subkey.DeleteValue(strValue); lbRunList.Items.RemoveAt(i); } } } private void btClearRunAll_Click(object sender, EventArgs e) { RegistryKey key = Registry.CurrentUser; key.DeleteValue(CLEARURLRECORD); lbRunList.Items.Clear(); key.Close(); } } }
参照下图进入到注册表,依次打开红圈中的路径,在RunMRU里面列出来的全部是记录,全部删除即可
转载于:https://www.cnblogs.com/aziji/p/10558498.html
Java SE项目打包成为可运行的jar文件
在Eclipse中打开“文件”→“导出...”
展开“Java”,选中“可运行的jar文件”,点击“下一步”。
在“启动配置”中选择要打包的project中,含有main方法的类。点击“导出目标”右边的浏览选定你要保存的位置,输入保存的文件名。在“Library handing”中选择第一个或第二个(第一个选项会把库里的东西重新打包,而第二个选项是将现有的状态直接打包。比如要打包的project里有一个引用的库(jar):如果选择第一个,打包出来的jar文件,用压缩软件打开就看不到引用的那个jar了,因为引用的jar已经被分解出来了;而如果选择第二个,打包出来的jar文件,用压缩软件打开就能找到引用的那个jar。至于第三个,打包后会在打包出来的jar同一目录下创建一个lib文件夹用来存放引用的jar,个人觉得这个有点鸡肋。),点击“完成”。
好了,打包完成。
编辑工作空间的记录
Eclipse用久了,难免出现一堆不在用到的记录,找不到选项删除,看着很乱,很碍眼。
在试验了无数次之后,我终于找到了删除的办法。
使用Eclipse必须选定一个工作空间,而项目渐渐多了之后,放在同一个工作空间就显得太乱,而且不同的项目,适合的字符编码也不同,比如我Java SE的项目,用的是GBK,而Android项目,用的是UTF-8,这样放在同一个工作空间就有点不合适了,所以必须要有多个工作空间。
可是工作空间多了之后,有时候整理时会废弃几个工作空间,但是虽然工作空间删了,可是可供选择的工作空间记录却还在,这样就显得很乱了。
我这里有两个工作空间的记录,分别是“F:\programming\androidWorkSpace\practice”和“F:\programming\javaWorkSpace\intactProject”现在我们需要找到这两个记录,并编辑它。
打开Eclipse目录存放目录,依次进入“configuration”和“.settings”文件夹,里面有两个文件,打开“org.eclipse.ui.ide.prefs”这个文件。
“org.eclipse.ui.ide.prefs”这个文件用记事本打开就可以了,其中的“RECENT_WORKSPACES”的值就是工作空间的记录,中间以“\n”分为两条记录,编辑它即可(不需要的记录直接删除)。
注意:
“RECENT_WORKSPACES”事实上就是一个String类型,所以它的值中不能有回车,两条记录只需要在中间加上“\n”就能分开;
至于双斜杠“\\”,编程语言中,“\”与别的字符结合被识别为一个字符,如“\n”,所以“\\”才是真正表示“\”的,当然,也可以把“\\”替换为“/”,因为在编程语言中,“/”被作为默认的路径分隔符
删除启动配置的记录
每次在Eclipse内运行project时,启动配置都会更新一遍,如果启动配置中原本没有这个project,就会添加进去,不过,启动配置不会自动删除,也就是说,如果把project的名称更改了,或者project里含有main方法的类名更改了,运行后,Eclipse只会添加一条新的启动配置记录,而不会删除原有的启动配置记录,当然,project删除了,启动配置也会还在。这样的垃圾记录会使人觉得很乱,而且太多的垃圾记录会使打包时的启动配置下拉框中找不到需要的记录。所以,我们有必要清理一下。
在Eclipse中打开“运行”→“运行配置”(或“调试配置”,事实上是一样的)。
左边展开“Java 应用程序”,可以看到各个启动配置记录,右键删除即可。
但是这不是唯一的办法,而且有时候删不干净(运行/调试配置里删除干净了,可是启动配置里还有),这是什么原因暂时没有搞懂,不过我们可以用另一种方法,能够完全删除干净:
在Eclipse外部,依次进入工作目录中的“.metadata”→“.plugins”→“org.eclipse.debug.core”→“.launches”这四层文件夹,可以看到一条条启动配置的记录以文件的形式存放在这个目录下,删除即可(当然也可以用记事本打开编辑)。
我知道这个问题已被问了一百次,但不幸的是,这些答案都没有帮助,因为大多数都是很多年,它应该证明另一个问题的合理性.
我有两个表,140kk行/ 24GB的记录和额外的89kk行/ 70GB.
每个额外的行都有一个与记录的外键关系,索引在两个表之间正确设置.记录中的删除会将删除级联到相关的额外行.
我需要在制作过程中清除旧记录.
运行DELETE FROM记录WHERE WHERE创建< UNIX_TIMESTAMP(DATE_SUB(NOW(),INTERVAL 30天))ORDER BY id LIMIT 1000;需要无休止的(我在20分钟后将它杀死了,它仍处于初始状态).使用SELECT执行相同操作只需几毫秒即可完成. 由于SELECT是那么快我用ID IN(SELECT id子查询^)尝试它,不幸的是没有改变一个东西,所以我在15分钟后杀了它. 由于删除单个记录很快,我最终完成了这项工作:
for i in `seq 1 100000`; do
mysql database -e "SELECT id FROM records WHERE created < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 30 DAY)) ORDER BY id LIMIT 1000;" | sed 's;/|;;g' | awk '{if(NR>1)print "DELETE FROM records WHERE id = ",$1,";" }' | mysql database;
now=$(date +"%Y/%m/%d %T")
echo "[ $now ] $i.000"
done
这可以在开始时每秒处理一千条记录,但是在几次循环之后它每10-20秒就会下降到一千条记录.由于我需要清除100k行,这需要将近一个月的时间才能完成,这与清除记录的时间差大致相同,因此它永远不会完成(特别是因为有多个数据库需要这样做).
数据库存储在SSD Crucial_CT500MX200SSD1上,软件是带有InnoDB引擎的MariaDB 10.1. innodb_flush_log_at_trx_commit设置为0以避免不必要的磁盘工具.
根据atop瓶颈是磁盘,CPU几乎正在睡眠,大部分内存都在系统缓存中.