<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>绿色记忆 &#187; Eclipse</title>
	<atom:link href="https://blog.gmem.cc/tag/eclipse/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.gmem.cc</link>
	<description></description>
	<lastBuildDate>Mon, 06 Apr 2026 12:46:48 +0000</lastBuildDate>
	<language>en-US</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.9.14</generator>
	<item>
		<title>Eclipse 4.3.2开发环境搭建</title>
		<link>https://blog.gmem.cc/eclipse-kepler-sr2-setup</link>
		<comments>https://blog.gmem.cc/eclipse-kepler-sr2-setup#comments</comments>
		<pubDate>Mon, 27 Oct 2014 02:34:40 +0000</pubDate>
		<dc:creator><![CDATA[Alex]]></dc:creator>
				<category><![CDATA[C]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[CDT]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[JDT]]></category>
		<category><![CDATA[PDT]]></category>

		<guid isPermaLink="false">http://blog.gmem.cc/?p=2201</guid>
		<description><![CDATA[<p>安装Eclipse 4.3.2 下载地址列表：http://www.eclipse.org/downloads/packages/release/Kepler/SR2 对于Java开发，建议选择：Eclipse IDE for Java EE Developers如果同时需要使用BIRT进行报表开发，建议选择：Eclipse IDE for Java and Report Developers对于C/C++开发，建议选择：Eclipse IDE for C/C++ Developers 根据你的操作系统，选择合适的版本进行下载，下载完毕后，解压到：D:\JavaEE\ide\eclipse\4.3.2（以下称：%ECLIPSE_HOME%），编辑%ECLIPSE_HOME%eclipse.ini，参考下面的例子修改： [crayon-69d58cd1a1a69477052981/] 建立Eclipse的快捷方式：D:JavaEE\ide\eclipse\4.3.2\eclipse.exe <a class="read-more" href="https://blog.gmem.cc/eclipse-kepler-sr2-setup">[...]</a></p>
<p>The post <a rel="nofollow" href="https://blog.gmem.cc/eclipse-kepler-sr2-setup">Eclipse 4.3.2开发环境搭建</a> appeared first on <a rel="nofollow" href="https://blog.gmem.cc">绿色记忆</a>.</p>
]]></description>
				<content:encoded><![CDATA[<div class="wri_content_clear_both"><div class="blog_h2"><span class="graybg">安装Eclipse 4.3.2</span></div>
<p>下载地址列表：<a href="http://www.eclipse.org/downloads/packages/release/Kepler/SR2" target="_blank">http://www.eclipse.org/downloads/packages/release/Kepler/SR2 </a></p>
<p>对于Java开发，建议选择：Eclipse IDE for Java EE Developers<br />如果同时需要使用BIRT进行报表开发，建议选择：Eclipse IDE for Java and Report Developers<br />对于C/C++开发，建议选择：Eclipse IDE for C/C++ Developers</p>
<div>根据你的操作系统，选择合适的版本进行下载，下载完毕后，解压到：D:\JavaEE\ide\eclipse\4.3.2（以下称：%ECLIPSE_HOME%），编辑%ECLIPSE_HOME%eclipse.ini，参考下面的例子修改：<br />
<pre class="crayon-plain-tag">-vm D:/JavaEE/jdk/x64/1.7/bin/javaw.exe
-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v20140116-2212
-product
org.eclipse.epp.package.reporting.product
--launcher.defaultAction
openFile
-showsplash
org.eclipse.platform
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=1.6
-Xms1536m
-Xmx1536m
-XX:PermSize=256m
-XX:MaxPermSize=256m
-Xmn576m
-Xverify:none
-XX:ParallelGCThreads=8
-XX:+DisableExplicitGC
-Duser.name="WangZhen"</pre></p>
<p>建立Eclipse的快捷方式：D:JavaEE\ide\eclipse\4.3.2\eclipse.exe -nl "en_US"</p>
</div>
<div class="blog_h2"><span class="graybg">安装JDK</span></div>
<p>到Oracle网站下载1.4-1.8版本的JDK，分别安装到D:\JavaEE\jdk\x64|x86的1.4-1.8子目录下</p>
<p>Linux下的JDK安装步骤，可以参考：<a href="/eclipse-for-ubuntu14" target="_blank">Ubuntu14.04下Eclipse开发环境的搭建</a></p>
<div id="install-eclipse-plugins" class="blog_h2"><span class="graybg">安装Eclipse插件</span></div>
<table style="width: 100%;" border="1" cellspacing="0" cellpadding="5">
<thead>
<tr>
<td style="text-align: center;"> 插件名称</td>
<td style="text-align: center;"> 说明</td>
</tr>
</thead>
<tbody>
<tr>
<td style="width: 180px;">m2eclipse</td>
<td>
<p>Maven的Eclipse插件</p>
<p>Update Site：http://download.eclipse.org/technology/m2e/releases</p>
<p>注意：取消选择“Show only the latest versions of available software”并安装1.4.x版本，因为1.5.x版本需要Luna才能支持</p>
</td>
</tr>
<tr>
<td>m2e-wtp</td>
<td>
<p>m2eclipse插件与WTP平台的集成</p>
<p>Update Site：http://download.eclipse.org/m2e-wtp/releases/kepler/</p>
</td>
</tr>
<tr>
<td>JRebel for Eclipse</td>
<td>
<p>JRebel与Eclipse的集成，JRebel提供快速开发的支持，可以免重启配置多种框架组件和热部署Java类</p>
<p>Update Site：http://update.zeroturnaround.com/update-site</p>
</td>
</tr>
<tr>
<td>Subclipse</td>
<td>
<p>与SVN的集成</p>
<p>Update Site：http://subclipse.tigris.org/update_1.10.x</p>
</td>
</tr>
<tr>
<td>AJDT</td>
<td>
<p>对AspectJ开发的支持<br />Update Site：<br />http://download.eclipse.org/tools/ajdt/43/update<br />http://download.eclipse.org/tools/ajdt/43/dev/update/</p>
<p>AJDT Configurator，支持 aspectj-maven-plugin与Eclipse的对接<br />Update Site：http://dist.springsource.org/release/AJDT/configurator/</p>
</td>
</tr>
<tr>
<td>CDT</td>
<td>
<p>对C/C++开发的支持</p>
<p>Update Site：http://download.eclipse.org/tools/cdt/releases/kepler</p>
</td>
</tr>
<tr>
<td>PDT</td>
<td>
<p>对PHP开发的支持</p>
<p>Update Site：http://download.eclipse.org/tools/pdt/updates/3.3.1</p>
</td>
</tr>
<tr>
<td>Spket IDE</td>
<td>
<p>ExtJS的编辑器插件 </p>
<p>Update Site：http://www.agpad.com/update/</p>
</td>
</tr>
<tr>
<td>Eclipse HTML Editor</td>
<td>
<p>HTML、JSP等代码的编辑器插件</p>
<p>该插件依赖GEF框架：http://download.eclipse.org/tools/gef/updates/releases/</p>
<p>到http://amateras.sourceforge.jp/cgi-bin/fswiki_en/wiki.cgi?page=EclipseHTMLEditor 下载插件并放到%ECLIPSE_HOME%\dropins下</p>
</td>
</tr>
<tr>
<td>EclEmma</td>
<td>
<p>代码覆盖率插件</p>
<p>Update Site：http://update.eclemma.org/</p>
</td>
</tr>
<tr>
<td>Jeeeyul's Themes</td>
<td>
<p>主题插件，可以美化Eclipse UI</p>
<p>Update Site：http://eclipse.jeeeyul.net/update/</p>
</td>
</tr>
<tr>
<td>Eclipse Class Decompiler</td>
<td>
<p>反编译插件</p>
<p>http://feeling.sourceforge.net/update</p>
</td>
</tr>
<tr>
<td>Atlassian Connector</td>
<td>
<p>JIRA的Mylyn连接器</p>
<p>http://update.atlassian.com/atlassian-eclipse-plugin/rest/e3.7</p>
</td>
</tr>
</tbody>
</table>
<div id="workspace-config" class="blog_h2"><span class="graybg">Eclipse工作区配置</span></div>
<p>打开Eclipse，进入Window – Preferences，参考下表进行配置</p>
<table style="width: 100%;" border="1" cellspacing="0" cellpadding="5">
<thead>
<tr>
<td style="width: 150px; text-align: center;">配置项 </td>
<td style="text-align: center;">配置说明 </td>
</tr>
</thead>
<tbody>
<tr>
<td>General</td>
<td>
<p>勾选：Always run in background、Show heap status</p>
</td>
</tr>
<tr>
<td>General - Web Browser</td>
<td>
<p>点选 Use external web browser</p>
</td>
</tr>
<tr>
<td>
<p>General - Appearance</p>
</td>
<td>
<p>修改Theme为：JeeeUl's themes - Custom Theme</p>
<p>展开节点：Color and Fonts，右侧树展开到：Basic - Text Fonts，修改字体为：XSung Mono.Lanting 11</p>
<p>展开节点：JeeeUl's Themes - Presets，导入：<a href="/uploads/JavaEE/config/WangZhen.epf" target="_blank">WangZhen.epf</a></p>
<p>展开节点：JeeeUl's Themes，点击右侧窗体右上角的向下小箭头，选择User Preset - WangZhen</p>
</td>
</tr>
<tr>
<td>General - Workspace</td>
<td>
<p>勾选：Refresh using native hooks or polling</p>
<p>Text file encoding：UTF-8</p>
<p>New text file line delimiter：Windows</p>
</td>
</tr>
<tr>
<td>General - Editors</td>
<td>
<p>展开节点：Text Editors，按如下设置：</p>
<p>Undo history size: 1000，勾选：Insert spaces for tabs、Show line numbers</p>
<p>展开节点：Text Editors - Spelling，取消勾选：Enable spell checking</p>
<p>展开节点：File Associations，修改编辑器关联性：</p>
<ol>
<li>*.js：Spket JavaScript Editor</li>
</ol>
</td>
</tr>
<tr>
<td>General - Startup and...</td>
<td>勾选：Refresh workspace on startup</td>
</tr>
<tr>
<td>General - Keys</td>
<td>解除Alt + /与Word Completion的关联，设置Content Assist的快捷键为Alt + /</td>
</tr>
<tr>
<td>Java - Code Style</td>
<td>
<p>展开节点：Organize Import</p>
<p>Number of static imports needed for.* (e.g. 'java.Iang.Math.*'):设置为1</p>
<p>展开节点：Code Templates，点击右侧Import按钮，导入：<a href="/uploads/JavaEE/config/java-code-templates.xml" target="_blank">java-code-templates.xml</a></p>
<p>展开节点：Formatter，点击右侧Import按钮，导入：<a href="/uploads/JavaEE/config/java-formatter.xml" target="_blank">java-formatter.xml</a></p>
</td>
</tr>
<tr>
<td>Java - Installed JREs</td>
<td>
<p>依次添加上面安装的JDK 1.4-1.8，以JDK1.6为例：</p>
<p>JRE HOME：D:\JavaEE\jdk\x64\1.6</p>
<p>JRE_NAME：1.6</p>
<p>Default VM args：-Xms64m -Xmx1024m -XX:PermSize=64m -XX:MaxPermSize=256m</p>
</td>
</tr>
<tr>
<td>Java - Appearance</td>
<td>
<p>展开节点：Members Sort Order，勾选：Sort members in same category by visibility，把Private排到最下面</p>
</td>
</tr>
<tr>
<td>JavaScript - Code Style</td>
<td>
<p>展开节点：Formatter，点击右侧Import按钮，导入：<a href="/uploads/JavaEE/config/js-formatter.xml" target="_blank">js-formatter.xml</a></p>
</td>
</tr>
<tr>
<td>Amateras - Formatter</td>
<td>
<p>取消勾选：Use tab as indentation</p>
<p>Indentation size:4</p>
<p>Maximum line width:128</p>
</td>
</tr>
<tr>
<td>PHP - Code Style</td>
<td>
<p>展开节点：Formatter，点击右侧Import按钮，导入：<a href="/uploads/JavaEE/config/php-formatter.xml" target="_blank">php-formatter.xml</a></p>
</td>
</tr>
<tr>
<td style="width: 180px;">C/C++ - Code Style</td>
<td>
<p>展开节点：Formatter，点击右侧Import按钮，导入：<a href="/uploads/CPP/config/c-formatter.xml" target="_blank">c-formatter.xml</a></p>
</td>
</tr>
<tr>
<td>
<p>Spket - Editors </p>
</td>
<td>
<p>勾选：Convert tabs to spaces</p>
<p>展开节点：JavaScript Editor - Formatter，点击右侧Import按钮，导入：<a href="/uploads/JavaEE/config/spket-js-formatter.xml" target="_blank">spket-js-formatter.xml</a></p>
</td>
</tr>
<tr>
<td>
<p>Spket - JavaScript Profiles</p>
</td>
<td>
<ol>
<li>点击New，输入框中填写：EXT JS，确定</li>
<li>选中EXT JS，点击右侧按钮Default</li>
<li>点击Add Library，选择ExtJS，确定</li>
<li>选中ExtJS，点击Add File，添加<a href="/uploads/JavaEE/config/extjs/sdk.jsb3" target="_blank">sdk.jsb3</a>，确定后，点选All Debug子节点</li>
<li>选中ExtJS，点击Add File，添加<a href="/uploads/JavaEE/config/extjs/ext-all-debug-w-comments.js" target="_blank">ext-all-debug-w-comments.js</a></li>
</ol>
</td>
</tr>
<tr>
<td>Server</td>
<td>
<p>展开节点：Runtime Environments，点击添加，分别添加Tomcat6、7，名称保持默认</p>
<p>Tomcat从官网下载，并放入D:\JavaEE\container\tomcat\目录下，以版本号为子目录名</p>
<p>打开视图Servers，右键New -Server，创建服务器实例，Server name命名规则：Runtime Env名称:端口，创建6060 8080 9090三个实例。完毕后，双击Servers配置：</p>
<ol>
<li>启用JRebel支持：勾选：Enable JRebel agent、Enable debug logging</li>
<li>端口修改以防冲突对于6060、9090两个实例，将端口中的8分别替换为6、9</li>
<li>Timeout配置为450、150</li>
</ol>
</td>
</tr>
<tr>
<td>Run/Debug - Console</td>
<td>
<p>Console buffer size (characters): 800000</p>
<p>Displayed tab width: 4</p>
</td>
</tr>
<tr>
<td>Web</td>
<td>
<p>展开节点：CSS Files - Editor，设置Line Width为128，点选Indent using spaces，Indentation size为4</p>
<p>展开节点：HTML Files - Editor，设置同上</p>
<p>展开节点：JSP Files，设置Encoding为ISO 10646（UTF-8）</p>
</td>
</tr>
<tr>
<td>XML</td>
<td>展开节点：XML Files - Editor，设置Line Width为128，点选Indent using spaces，Indentation size为4</td>
</tr>
<tr>
<td>Subclipse</td>
<td>打开透视图：SVN Repository Exploring，添加必要的SVN仓库地址</td>
</tr>
<tr>
<td>JRebel</td>
<td>
<p>打开透视图：JRebel Config Center。</p>
<p>点击右侧Activate/Update License，输入你的License</p>
<p>点击Advanced选项卡：</p>
<ol>
<li>Logging Level设置为Debug，勾选Show JRebel messages in standard output</li>
<li>Log File设置为：D:\JavaEE\temp\jrebel.log</li>
<li>Eclipse Notifications：全部取消勾选</li>
<li>Privacy Settings：全部取消勾选</li>
</ol>
</td>
</tr>
<tr>
<td>Maven</td>
<td>
<p>勾选：Download Artifact Sources、Download Artifact JavaDoc</p>
<p>展开节点：Archetypes，右侧点击Add Remote Catalog，添加公司的原型库，例如：http://192.168.0.200:8801/nexus/service/local/repositories/releases/content/archetype-catalog.xml</p>
<p>展开节点：Installations，点击右侧Add按钮，添加D:\JavaEE\maven\3.0.5，并设为Eclipse默认Maven</p>
<p>展开节点：User Settings，修改设置为：<a href="/uploads/JavaEE/config/maven-settings.xml" target="_blank">maven-settings.xml</a>，点击Update Settings</p>
<p>打开视图：Maven Repositories，更新所有索引</p>
</td>
</tr>
<tr>
<td>Mylyn - Tasks</td>
<td>
<p>Synchronize with repositories every 5 </p>
<p>Week Start：Monday</p>
<p>打开Task Repositories视图，右键Add Task Repository，类型选择JIRA，根据公司配置输入JIRA连接信息</p>
</td>
</tr>
</tbody>
</table>
</div><p>The post <a rel="nofollow" href="https://blog.gmem.cc/eclipse-kepler-sr2-setup">Eclipse 4.3.2开发环境搭建</a> appeared first on <a rel="nofollow" href="https://blog.gmem.cc">绿色记忆</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.gmem.cc/eclipse-kepler-sr2-setup/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu14.04下Eclipse开发环境的搭建</title>
		<link>https://blog.gmem.cc/eclipse-for-ubuntu14</link>
		<comments>https://blog.gmem.cc/eclipse-for-ubuntu14#comments</comments>
		<pubDate>Fri, 23 May 2014 03:28:12 +0000</pubDate>
		<dc:creator><![CDATA[Alex]]></dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[CDT]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[PDT]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://blog.gmem.cc/?p=1399</guid>
		<description><![CDATA[<p>下载软件 Eclipse 4.3.2 http://mirror.bjtu.edu.cn/eclipse/technology/epp/downloads/release/kepler/SR2/eclipse-jee-kepler-SR2-linux-gtk-x86_64.tar.gz JDK 1.7 http://download.oracle.com/otn-pub/java/jdk/8u20-b26/jdk-8u20-linux-x64.tar.gz JDK 1.6 http://download.oracle.com/otn/java/jdk/6u45-b06/jdk-6u45-linux-x64.bin JDK 1.5 http://download.oracle.com/otn/java/jdk/1.5.0_22/jdk-1_5_0_22-linux-amd64.bin 安装软件 [crayon-69d58cd1a1ee8298572082/] 安装Eclipse插件 参考：Eclipse 4.3.2开发环境搭建，根据需要安装插件。 配置SVN插件需要使用到的JavaHL： [crayon-69d58cd1a1eec867264309/] Eclipse工作区配置 参考：Eclipse <a class="read-more" href="https://blog.gmem.cc/eclipse-for-ubuntu14">[...]</a></p>
<p>The post <a rel="nofollow" href="https://blog.gmem.cc/eclipse-for-ubuntu14">Ubuntu14.04下Eclipse开发环境的搭建</a> appeared first on <a rel="nofollow" href="https://blog.gmem.cc">绿色记忆</a>.</p>
]]></description>
				<content:encoded><![CDATA[<div class="wri_content_clear_both"><div class="blog_h3"><span class="graybg">下载软件</span></div>
<table style="width: 100%;" border="1" cellspacing="0" cellpadding="5">
<tbody>
<tr>
<td style="width: 120px;">Eclipse 4.3.2</td>
<td>http://mirror.bjtu.edu.cn/eclipse/technology/epp/downloads/release/kepler/SR2/eclipse-jee-kepler-SR2-linux-gtk-x86_64.tar.gz</td>
</tr>
<tr>
<td>JDK 1.7</td>
<td>http://download.oracle.com/otn-pub/java/jdk/8u20-b26/jdk-8u20-linux-x64.tar.gz</td>
</tr>
<tr>
<td>JDK 1.6</td>
<td>http://download.oracle.com/otn/java/jdk/6u45-b06/jdk-6u45-linux-x64.bin</td>
</tr>
<tr>
<td>JDK 1.5</td>
<td>http://download.oracle.com/otn/java/jdk/1.5.0_22/jdk-1_5_0_22-linux-amd64.bin</td>
</tr>
</tbody>
</table>
<div class="blog_h3"><span class="graybg">安装软件</span></div>
<pre class="crayon-plain-tag">#安装JDK，以JDK1.6为例
chmod +x jdk-6u45-linux-x64.bin
./jdk-6u45-linux-x64.bin
mv jdk1.6.0_45/ 1.6
sudo vi /etc/profile
#设置环境变量，添加以下内容
JAVA_HOME=/usr/local/jdk/1.6
export PATH=$JAVA_HOME/bin:$PATH

#安装Eclipse 4.3.2
tar zxvf eclipse-jee-kepler-SR2-linux-gtk-x86_64.tar.gz
sudo mkdir -p ~/ide/eclipse/4.3.2
sudo mv eclipse 4.3.2
sudo mv 4.3.2 ~/ide/eclipse/4.3.2</pre>
<div class="blog_h3"><span class="graybg">安装Eclipse插件</span></div>
<p>参考：<a href="/eclipse-kepler-sr2-setup#install-eclipse-plugins">Eclipse 4.3.2开发环境搭建</a>，根据需要安装插件。</p>
<p>配置SVN插件需要使用到的JavaHL：</p>
<pre class="crayon-plain-tag">sudo apt-get install libsvn-java
#搜索库的位置：
sudo find / -name libsvnjavahl-1.so
#获取搜索结果，例如：/usr/lib/x86_64-linux-gnu/jni/libsvnjavahl-1.so
#将下面一段(.so文件所在目录加入java.lang.path)添加于Eclipse启动参数(eclipse.ini)的-vmargs下面：
-vmargs
-Djava.library.path=/usr/lib/x86_64-linux-gnu/jni</pre>
<div class="blog_h3">Eclipse工作区配置</div>
<p>参考：<a href="/eclipse-kepler-sr2-setup#workspace-config">Eclipse 4.3.2开发环境搭建</a>，完成工作区配置。</p>
<div class="blog_h3">常见问题</div>
<ol>
<li>代码编辑器的悬停框，背景黑色的问题：<br />
<pre class="crayon-plain-tag">sudo vim /usr/share/themes/Ambiance/gtk-2.0/gtkrc
#修改颜色： tooltip_fg_color:#333333、tooltip_bg_color:#F5F5D5</pre>
</li>
<li>C++项目提示无法找到iostream头文件：<br />
<pre class="crayon-plain-tag">#可能原因是没有安装g++
sudo apt-get install g++</pre>
</li>
</ol>
<div class="blog_h3"><span class="graybg">图标制作</span></div>
<pre class="crayon-plain-tag">cd ~/.local/share/applications
vim eclipse-cpp.desktop</pre>
<p>编辑文本，添加以下内容：</p>
<pre class="crayon-plain-tag">[Desktop Entry]
Type=Application
Name=Eclipse CPP
Comment=Eclipse Integrated Development Environment
Icon=/home/alex/CPP/ide/eclipse/4.3.2/eclipse48.png
Exec=/home/alex/CPP/ide/eclipse/4.3.2/eclipse
Terminal=false
Categories=Development;IDE;CPP;
StartupWMClass=Eclipse</pre>
<p>然后：</p>
<pre class="crayon-plain-tag">nautilus ~/.local/share/applications
#拖拽Eclipse CPP到快速启动栏</pre>
</div><p>The post <a rel="nofollow" href="https://blog.gmem.cc/eclipse-for-ubuntu14">Ubuntu14.04下Eclipse开发环境的搭建</a> appeared first on <a rel="nofollow" href="https://blog.gmem.cc">绿色记忆</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.gmem.cc/eclipse-for-ubuntu14/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows下使用Eclipse PDT + XAMPP + XDebug调试PHP</title>
		<link>https://blog.gmem.cc/debug-php-with-eclipse-pdt-and-xdebug</link>
		<comments>https://blog.gmem.cc/debug-php-with-eclipse-pdt-and-xdebug#comments</comments>
		<pubDate>Fri, 08 Mar 2013 10:20:03 +0000</pubDate>
		<dc:creator><![CDATA[Alex]]></dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[PDT]]></category>
		<category><![CDATA[XDebug]]></category>

		<guid isPermaLink="false">http://blog.gmem.cc/?p=686</guid>
		<description><![CDATA[<p>环境说明：Windows 7 X64，Eclipse 4.3.2，XAMPP 1.8.3 XDebug的设置 定位到%XAMPP_HOME%\php\php.ini，打开编辑 [crayon-69d58cd1a2189552343953/] Eclipse配置 Windows- Preferences - PHP - PHP Servers，添加服务器，注意Base URL和xdebug的域名保持对应： 最好避免使用Path Mapping————保持URI路径和Eclipse工程名称对应，我的环境下（Eclipse 4.3.2）出现无法识别断点的问题，没查出原因。 Windows- Preferences <a class="read-more" href="https://blog.gmem.cc/debug-php-with-eclipse-pdt-and-xdebug">[...]</a></p>
<p>The post <a rel="nofollow" href="https://blog.gmem.cc/debug-php-with-eclipse-pdt-and-xdebug">Windows下使用Eclipse PDT + XAMPP + XDebug调试PHP</a> appeared first on <a rel="nofollow" href="https://blog.gmem.cc">绿色记忆</a>.</p>
]]></description>
				<content:encoded><![CDATA[<div class="wri_content_clear_both"><p>环境说明：Windows 7 X64，Eclipse 4.3.2，XAMPP 1.8.3</p>
<p><strong>XDebug的设置</strong><br /> 定位到%XAMPP_HOME%\php\php.ini，打开编辑</p>
<pre class="crayon-plain-tag">[XDebug]
zend_extension = "D:\JavaEE\container\xampp\1.8.3\php\ext\php_xdebug.dll"
xdebug.profiler_append = 0
xdebug.profiler_enable = 1
xdebug.profiler_enable_trigger = 0
xdebug.profiler_output_dir = "D:\JavaEE\container\xampp\1.8.3\tmp"
xdebug.profiler_output_name = "cachegrind.out.%t-%s"
;启用远程调试
xdebug.remote_enable = 1
;调试客户端IP地址或者主机名
xdebug.remote_host = "gmem.cc"
;端口和Eclipse PDT保持一致
xdebug.remote_port = 9000
xdebug.remote_handler = "dbgp"
xdebug.trace_output_dir = "D:\JavaEE\container\xampp\1.8.3\tmp"</pre>
<p><strong>Eclipse配置</strong><br /> Windows- Preferences - PHP - PHP Servers，添加服务器，注意Base URL和xdebug的域名保持对应：<br /> <img src="https://blog.gmem.cc/wp-content/uploads/2013/03/eclipse-php-server-cfg.jpg" alt="eclipse-php-server-cfg" /><br /> 最好避免使用Path Mapping————保持URI路径和Eclipse工程名称对应，我的环境下（Eclipse 4.3.2）出现无法识别断点的问题，没查出原因。</p>
<p>Windows- Preferences - PHP - Debug，参考下图进行设置：<br /> <img src="https://blog.gmem.cc/wp-content/uploads/2013/03/eclipse-php-debug-cfg.jpg" alt="eclipse-php-debug-cfg" /></p>
<p>Windows- Preferences - PHP - Debug - Workbench Options，参考下图进行设置：<br /> PHP Debug View可以实时看到PHP输出的HTML内容<br /> <img src="https://blog.gmem.cc/wp-content/uploads/2013/03/eclipse-php-debug-cfg2.jpg" alt="eclipse-php-debug-cfg2" /></p>
<p><strong>Apache配置</strong><br /> 定位到%XAMPP_HOME%\apache\conf\httpd.conf，添加：</p>
<pre class="crayon-plain-tag">&lt;IfModule dir_module&gt;
    DirectoryIndex index.html index.php index.htm
    Alias /blog "D:/JavaEE/projects/eclipse/4.3.2/gmem-blog"
    &lt;Directory D:/JavaEE/projects/eclipse/4.3.2/gmem-blog&gt;
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
    &lt;/Directory&gt;
&lt;/IfModule&gt;</pre>
<p>注意Alias是PHP工程的部署URI，Eclipse工程的名称最好和它对应，避免麻烦。</p>
<p><strong>调试测试</strong><br /> 写几个PHP，使用include进行页面包含，然后设置一些端点，在PHP上点击右键，Debug As - PHP Web Application，确认程序在断点处暂停，Debug Output View输出对应的HTML内容。</p>
</div><p>The post <a rel="nofollow" href="https://blog.gmem.cc/debug-php-with-eclipse-pdt-and-xdebug">Windows下使用Eclipse PDT + XAMPP + XDebug调试PHP</a> appeared first on <a rel="nofollow" href="https://blog.gmem.cc">绿色记忆</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.gmem.cc/debug-php-with-eclipse-pdt-and-xdebug/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eclipse下进行基于AspectJ的AOP编程</title>
		<link>https://blog.gmem.cc/aspectj-aop-programming-with-eclipse</link>
		<comments>https://blog.gmem.cc/aspectj-aop-programming-with-eclipse#comments</comments>
		<pubDate>Wed, 06 Jun 2012 05:48:41 +0000</pubDate>
		<dc:creator><![CDATA[Alex]]></dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[AspectJ]]></category>
		<category><![CDATA[Eclipse]]></category>

		<guid isPermaLink="false">http://blog.gmem.cc/?p=1660</guid>
		<description><![CDATA[<p>简述 本文介绍在Eclipse下，结合Maven进行基于AspectJ的AOP编程（编译期织入）的基础知识，并给出简单的示例。 本文中使用的Eclipse版本为：3.7.1，AJDT版本为：1.6 环境准备 安装AspectJ Development Tools（AJDT）插件 可以到Eclipse Marketplace搜索“AJDT”，注意版本要和你的Eclipse版本匹配。或者从Update Site：http://download.eclipse.org/tools/ajdt/37/update/等位置安装，37表示Eclipse的版本为3.7。如果安装不成功，可以到AJDT网站下载离线安装包：http://www.eclipse.org/aspectj/downloads.php 可以使用aspectj-maven-plugin插件，让Maven支持AspectJ编译器织入。为了使用该插件，必须安装： i)：AJDT Configurator：Update Site为 http://dist.springsource.org/release/AJDT/configurator/ ii)：m2e connector for build-helper-maven-plugin：到Eclipse Marketplace搜索并安装 创建AspectJ工程 安装完AJDT后重启Eclipse，即可通过File - <a class="read-more" href="https://blog.gmem.cc/aspectj-aop-programming-with-eclipse">[...]</a></p>
<p>The post <a rel="nofollow" href="https://blog.gmem.cc/aspectj-aop-programming-with-eclipse">Eclipse下进行基于AspectJ的AOP编程</a> appeared first on <a rel="nofollow" href="https://blog.gmem.cc">绿色记忆</a>.</p>
]]></description>
				<content:encoded><![CDATA[<div class="wri_content_clear_both"><div class="blog_h2"><span class="graybg">简述</span></div>
<p>本文介绍在Eclipse下，结合Maven进行基于AspectJ的AOP编程（编译期织入）的基础知识，并给出简单的示例。 本文中使用的Eclipse版本为：3.7.1，AJDT版本为：1.6</p>
<div class="blog_h2"><span class="graybg">环境准备</span></div>
<ol>
<li>安装AspectJ Development Tools（AJDT）插件 可以到Eclipse Marketplace搜索“AJDT”，注意版本要和你的Eclipse版本匹配。或者从Update Site：http://download.eclipse.org/tools/ajdt/37/update/等位置安装，37表示Eclipse的版本为3.7。如果安装不成功，可以到AJDT网站下载离线安装包：<a href="http://www.eclipse.org/aspectj/downloads.php">http://www.eclipse.org/aspectj/downloads.php</a></li>
<li>可以使用aspectj-maven-plugin插件，让Maven支持AspectJ编译器织入。为了使用该插件，必须安装：<br />
	i)：AJDT Configurator：Update Site为 http://dist.springsource.org/release/AJDT/configurator/<br />
	ii)：m2e connector for build-helper-maven-plugin：到Eclipse Marketplace搜索并安装</li>
</ol>
<div class="blog_h2"><span class="graybg">创建AspectJ工程</span></div>
安装完AJDT后重启Eclipse，即可通过File - New - AspectJ Project新建AspectJ工程了。不过最好通过Maven来创建，以提高工程的可移植性。 只需要在POM中配置aspectj-maven-plugin，然后右键 - Maven - Update Project，Eclipse工程结构即可自动生成，典型的aspectj-maven-plugin配置内容如下：<br />
<pre class="crayon-plain-tag">&lt;build&gt;
    &lt;plugins&gt;
        &lt;plugin&gt;
            &lt;groupId&gt;org.codehaus.mojo&lt;/groupId&gt;
            &lt;artifactId&gt;aspectj-maven-plugin&lt;/artifactId&gt;
            &lt;version&gt;1.4&lt;/version&gt;
            &lt;executions&gt;
                &lt;execution&gt;
                    &lt;id&gt;compile&lt;/id&gt;
                    &lt;configuration&gt;
                        &lt;XnoInline&gt;true&lt;/XnoInline&gt;
                        &lt;forceAjcCompile&gt;true&lt;/forceAjcCompile&gt;
                        &lt;showWeaveInfo&gt;true&lt;/showWeaveInfo&gt;
                        &lt;source&gt;1.5&lt;/source&gt;
                        &lt;target&gt;1.5&lt;/target&gt;
                        &lt;encoding&gt;UTF-8&lt;/encoding&gt;
                        &lt;verbose&gt;true&lt;/verbose&gt;
                        &lt;outxml&gt;true&lt;/outxml&gt;
                        &lt;aspectLibraries&gt;
                            &lt;aspectLibrary&gt;
                                &lt;!-- 在这里声明需要用到的切面库，这些库里面包含AspectJ切面的定义 --&gt;
                                &lt;!-- 切面库同时需要作为dependency配置 --&gt;
                                &lt;groupId&gt;org.springframework&lt;/groupId&gt;
                                &lt;artifactId&gt;spring-aspects&lt;/artifactId&gt;
                            &lt;/aspectLibrary&gt;
                        &lt;/aspectLibraries&gt;
                    &lt;/configuration&gt;
                    &lt;goals&gt;
                        &lt;goal&gt;compile&lt;/goal&gt;
                        &lt;goal&gt;test-compile&lt;/goal&gt;&lt;!-- 如果/src/test/java下没有任何类使用了AOP，则需要去掉这一行，否则Maven执行报错（1.4版本） --&gt;
                    &lt;/goals&gt;
                &lt;/execution&gt;
            &lt;/executions&gt;
        &lt;/plugin&gt;
    &lt;/plugins&gt;
&lt;/build&gt;</pre>
<div class="blog_h2"><span class="graybg">应用举例</span></div>
使用Spring-aspects库提供的支持，我们可以在任何类————甚至是AspectJ切面本身————上添加注解：@Configurable，每当创建该类的实例时，Spring自动对其进行依赖注入，下面是一个例子：<br />
<pre class="crayon-plain-tag">package cc.gmem.demo.aop.web;

import javax.annotation.PostConstruct;
import javax.inject.Inject;

import org.aspectj.lang.annotation.SuppressAjWarnings;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Configurable;

import cc.gmem.demo.ext.ExtAjaxResult;
import cc.gmem.demo.ext.ExtAjaxResultCallback;
import cc.gmem.demo.ext.ExtAjaxResultTemplate;

@Configurable
public aspect AjaxResultAspect issingleton() {

    private static final Logger   LOGGER = LoggerFactory.getLogger( AjaxResultAspect.class );

    @Inject
    private ExtAjaxResultTemplate ajaxTemplate;

    @PostConstruct
    public void init()
    {
        LOGGER.debug( "AjaxResultAspect initialized." );
    }

    public pointcut autoExtAjaxResultMarked() :@annotation(AutoExtAjaxResult);

    @SuppressAjWarnings
    Object around():autoExtAjaxResultMarked(){
        return ajaxTemplate.callback( new ExtAjaxResultCallback() {

            public Void callback( ExtAjaxResult result ) throws Throwable
            {
                Object retVal = proceed();
                result.setObject( retVal );
                return VOID;
            }
        } );
    }
}</pre><br />
上面例子编译后（Eclipse或者Maven），产生类：AjaxResultAspect.class，如果用反编译工具打开，即可看到类似下面的、由AspectJ在编译器织入到字节码的内容：<br />
<pre class="crayon-plain-tag">//整个static块均为织入的内容
static
{
  ajc$preClinit();
  try { LOGGER = LoggerFactory.getLogger(AjaxResultAspect.class); ajc$postClinit(); } catch (Throwable localThrowable) { ajc$initFailureCause = localThrowable; }
}
//构造器的代码为织入的内容，包含了进行Spring依赖注入的逻辑
public AjaxResultAspect()
{
  JoinPoint localJoinPoint2 = Factory.makeJP(ajc$tjp_1, this, this); JoinPoint localJoinPoint1 = Factory.makeJP(ajc$tjp_0, this, this); if ((this != null) &amp;&amp; (getClass().isAnnotationPresent(Configurable.class)) &amp;&amp; (AnnotationBeanConfigurerAspect.ajc$if$bb0((Configurable)getClass().getAnnotation(Configurable.class)))) AnnotationBeanConfigurerAspect.aspectOf().ajc$before$org_springframework_beans_factory_aspectj_AbstractDependencyInjectionAspect$1$e854fa65(this); if (((this == null) || (!getClass().isAnnotationPresent(Configurable.class)) || (!AnnotationBeanConfigurerAspect.ajc$if$bb0((Configurable)getClass().getAnnotation(Configurable.class)))) &amp;&amp; (this != null) &amp;&amp; (getClass().isAnnotationPresent(Configurable.class)) &amp;&amp; (AbstractDependencyInjectionAspect.ajc$if$6f1(localJoinPoint1))) AnnotationBeanConfigurerAspect.aspectOf().ajc$afterReturning$org_springframework_beans_factory_aspectj_AbstractDependencyInjectionAspect$2$1ea6722c(this); if ((!AnnotationBeanConfigurerAspect.ajc$if$bb0((Configurable)getClass().getAnnotation(Configurable.class))) &amp;&amp; (AbstractDependencyInjectionAspect.ajc$if$6f1(localJoinPoint2))) AnnotationBeanConfigurerAspect.aspectOf().ajc$afterReturning$org_springframework_beans_factory_aspectj_AbstractDependencyInjectionAspect$2$1ea6722c(this);
}</pre>
</div><p>The post <a rel="nofollow" href="https://blog.gmem.cc/aspectj-aop-programming-with-eclipse">Eclipse下进行基于AspectJ的AOP编程</a> appeared first on <a rel="nofollow" href="https://blog.gmem.cc">绿色记忆</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.gmem.cc/aspectj-aop-programming-with-eclipse/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows下基于Eclipse CDT的C/C++开发</title>
		<link>https://blog.gmem.cc/eclipse-cdt-based-dev</link>
		<comments>https://blog.gmem.cc/eclipse-cdt-based-dev#comments</comments>
		<pubDate>Thu, 20 Oct 2011 09:41:07 +0000</pubDate>
		<dc:creator><![CDATA[Alex]]></dc:creator>
				<category><![CDATA[C]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[CDT]]></category>
		<category><![CDATA[Cygwin]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[LLVM]]></category>
		<category><![CDATA[MinGW]]></category>
		<category><![CDATA[MSVC]]></category>

		<guid isPermaLink="false">http://blog.gmem.cc/?p=2029</guid>
		<description><![CDATA[<p>安装和配置 安装Eclipse CDT 到Eclipse CDT官网下载：http://www.eclipse.org/cdt/并安装 Eclipse的相关配置可以参考：Eclipse 4.3.2开发环境搭建 安装工具链 下面的工具链可以根据工作环境进行选择性的安装。 MinGW 安装MinGW，下载地址：http://sourceforge.net/projects/mingw/files/ 安装MSYS，到http://sourceforge.net/projects/mingw/files/MSYS/下载 mingw-get-setup.exe，然后双击安装，选择安装目录为%MINGW_HOME%，勾选MSYS base，进行安装 将%MINGW_HOME%\bin添加到PATH环境变量，以便Eclipse CDT识别此工具链 MinGW-w64 安装MinGW-w64，下载地址：http://mingw-w64.org/doku.php 复制%MINGW_W64%\x86_64-w64-mingw32-gcc.exe（对于32位版本则是i686-w64-mingw32-gcc.exe）为mingw32-gcc.exe，便于Eclipse识别工具链 安装MSYS，下载地址：SourceForge 将%MINGW_W64%\mingw32\bin目录加入到PATH环境变量，以便Eclipse CDT识别此工具链 注意，Eclipse不能区分MinGW和MinGW-w64。因此，如果机器上同时安装这两套工具链，只应该设置其中常用的到环境变量PATH中。当需要使用另外一套工具链时，设置Eclipse项目属性 <a class="read-more" href="https://blog.gmem.cc/eclipse-cdt-based-dev">[...]</a></p>
<p>The post <a rel="nofollow" href="https://blog.gmem.cc/eclipse-cdt-based-dev">Windows下基于Eclipse CDT的C/C++开发</a> appeared first on <a rel="nofollow" href="https://blog.gmem.cc">绿色记忆</a>.</p>
]]></description>
				<content:encoded><![CDATA[<div class="wri_content_clear_both"><div class="blog_h1"><span class="graybg">安装和配置</span></div>
<div class="blog_h2"><span class="graybg">安装Eclipse CDT</span></div>
<ol>
<li>到Eclipse CDT官网下载：<a href="http://www.eclipse.org/cdt/">http://www.eclipse.org/cdt/</a>并安装</li>
<li>Eclipse的相关配置可以参考：<a href="/eclipse-kepler-sr2-setup#workspace-config">Eclipse 4.3.2开发环境搭建</a></li>
</ol>
<div class="blog_h2"><span class="graybg">安装工具链</span></div>
<p>下面的工具链可以根据工作环境进行选择性的安装。</p>
<div class="blog_h3"><span class="graybg">MinGW</span></div>
<ol>
<li>安装MinGW，下载地址：<a href="http://sourceforge.net/projects/mingw/files/">http://sourceforge.net/projects/mingw/files/</a></li>
<li>安装MSYS，到<a href="http://sourceforge.net/projects/mingw/files/MSYS/">http://sourceforge.net/projects/mingw/files/MSYS/</a>下载 mingw-get-setup.exe，然后双击安装，选择安装目录为%MINGW_HOME%，勾选MSYS base，进行安装</li>
<li>将%MINGW_HOME%\bin添加到PATH环境变量，以便Eclipse CDT识别此工具链</li>
</ol>
<div class="blog_h3"><span class="graybg">MinGW-w64</span></div>
<ol>
<li>安装MinGW-w64，下载地址：<a href="http://mingw-w64.org/doku.php">http://mingw-w64.org/doku.php</a></li>
<li>复制%MINGW_W64%\x86_64-w64-mingw32-gcc.exe（对于32位版本则是i686-w64-mingw32-gcc.exe）为mingw32-gcc.exe，便于Eclipse识别工具链</li>
<li>安装MSYS，下载地址：<a href="http://sourceforge.net/projects/mingw-w64/files/External%20binary%20packages%20%28Win64%20hosted%29/MSYS%20%2832-bit%29/">SourceForge</a></li>
<li>将%MINGW_W64%\mingw32\bin目录加入到PATH环境变量，以便Eclipse CDT识别此工具链</li>
</ol>
<p>注意，Eclipse不能区分MinGW和MinGW-w64。因此，如果机器上同时安装这两套工具链，只应该设置其中常用的到环境变量PATH中。当需要使用另外一套工具链时，设置Eclipse项目属性 - C/C++ Build - Environment，添加环境变量MINGW_HOME，并点选“Replace native environment with specified one”</p>
<div class="blog_h3"><span class="graybg">Cygwin</span></div>
<ol>
<li>安装Cygwin：<a href="http://cygwin.com/setup-x86.exe">http://cygwin.com/setup-x86.exe</a>，选择一个安装目录，例如（D:\CPP\tools\Cygwin\，以下称%CYGWIN_HOME%）</li>
<li>在Select Packages步骤下，选择Devel中的：autoconf、automake、binutils、gdb、gcc-core、gcc-g++、libtool、make，以及wget，下一步进行安装，其它需要的工具或者库，可以随时使用此安装程序安装</li>
<li>将 %CYGWIN_HOME%\bin、%CYGWIN_HOME%\usr\local\bin添加到PATH环境变量，以便Eclipse CDT识别此工具链</li>
<li>（可选步骤）为了后续安装软件包方便，可安装apt-cyg：<br />
<pre class="crayon-plain-tag">wget http://apt-cyg.googlecode.com/svn/trunk/apt-cyg
chmod +x apt-cyg
mv apt-cyg /usr/local/bin/</pre>
</li>
</ol>
<div class="blog_h3"><span class="graybg">LLVM</span></div>
<p>本节假设已经安装了MinGW工具链+MSYS，并在其上搭建LLVM工具链，步骤如下：</p>
<ol>
<li>安装Eclipse对LLVM工具链的支持：添加Update Site：<a href="http://petrituononen.com/llvm4eclipsecdt/update">http://petrituononen.com/llvm4eclipsecdt/update</a> 并安装</li>
<li>进入MSYS终端，执行以下脚本，以构建LLVM：<br />
<pre class="crayon-plain-tag">#签出LLVM源码
cd /src
svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm
cd /src/llvm/tools
svn co http://llvm.org/svn/llvm-project/cfe/trunk clang
cd /src/llvm/projects
svn co http://llvm.org/svn/llvm-project/compiler-rt/trunk compiler-rt
#配置和构建
cd /src/llvm
./configure --prefix=/mingw32 --enable-optimized --disable-assertions 
make
make install</pre>
</li>
</ol>
<div class="blog_h3"><span class="graybg">MSVC</span></div>
<ol>
<li>安装Microsoft Visual Studio</li>
<li>Eclipse - Help - Install New Software，选择Eclipse CDT的Update Site，下一步中，在Optional中选择 C/C++ Visual C++ Support，进行安装</li>
</ol>
<div class="blog_h2"><span class="graybg">创建Eclipse C/C++工程</span></div>
<p>通过Eclipse - File - New - C/C++ Project即可创建C或者C++的工程，创建时需要选择工具链，某些工具链的需要额外的设置，具体如下：</p>
<div class="blog_h3"><span class="graybg">LLVM</span></div>
<ol>
<li>C/C++ General - Path and Symbols <br />Includes - GNU C++<br />
<table style="width: 100%;" border="1" cellspacing="0" cellpadding="5">
<thead>
<tr>
<td style="text-align: center;">Debug</td>
</tr>
</thead>
<tbody>
<tr>
<td>%MinGW_HOME%\include<br />%MinGW_HOME%\lib\gcc\mingw32\4.8.1\include<br />%MinGW_HOME%\lib\gcc\mingw32\4.8.1\include\c++<br />%MinGW_HOME%\lib\gcc\mingw32\4.8.1\include\c++\mingw32</td>
</tr>
</tbody>
</table>
<p>Symbols - GNU C++</p>
<table style="width: 100%;" border="1" cellspacing="0" cellpadding="5">
<thead>
<tr>
<td style="text-align: center;"> Debug</td>
<td style="text-align: center;">Release </td>
</tr>
</thead>
<tbody>
<tr>
<td> __MSVCRT__=1</td>
<td> __MSVCRT__=1</td>
</tr>
</tbody>
</table>
<p>Libraries - GNU C++</p>
<table style="width: 100%;" border="1" cellspacing="0" cellpadding="5">
<thead>
<tr>
<td style="text-align: center;"> Debug</td>
<td style="text-align: center;">Release </td>
</tr>
</thead>
<tbody>
<tr>
<td>stdc++</td>
<td>stdc++</td>
</tr>
</tbody>
</table>
<p>Library Paths- GNU C++</p>
<table style="width: 100%;" border="1" cellspacing="0" cellpadding="5">
<thead>
<tr>
<td style="text-align: center;"> Debug</td>
<td style="text-align: center;">Release </td>
</tr>
</thead>
<tbody>
<tr>
<td>%MinGW_HOME%\lib\gcc\mingw32\4.8.1</td>
<td>%MinGW_HOME%\lib\gcc\mingw32\4.8.1</td>
</tr>
</tbody>
</table>
</li>
<li>C/C++ Build - Settings <br /> Tool Settings - LLVM C++ Linker：Command改为clang</li>
<li>如果同时安装了Cygwin，可能需要把%Cygwin%下在环境变量PATH中条目移除；可能需要把MSYS相关的条目从PATH中移除</li>
</ol>
<div class="blog_h1"><span class="graybg">常见问题</span></div>
<div class="blog_h3"><span class="graybg">使用GCC时如何创建Windows窗体应用程序</span></div>
<p>设置链接标记，在Eclipse下：Properties - C/C++ Build -Settings - MinGW C++ Linker - Misc - Linker flags，添加<pre class="crayon-plain-tag">-mwindows</pre> ，即可提示链接器创建的是窗口应用，额外添加 -mconsole 则可同时获得一个控制台窗口。</p>
<div class="blog_h3"><span class="graybg">如何为应用程序添加资源文件</span></div>
<ol>
<li>Properties - C/C++ Build -Settings - Build Steps - Pre-build steps，添加调用windres的脚本，例子可以参考<a href="/wxwidgets-development-with-eclipse-cdt#prebuild-script-for-rc-file">《基于Eclipse CDT的wxWidgets开发环境搭建》</a></li>
<li>把上面编译好的*.o文件添加到Properties - C/C++ Build -Settings - MinGW C++ Linker - Misc - Other objects里</li>
</ol>
</div><p>The post <a rel="nofollow" href="https://blog.gmem.cc/eclipse-cdt-based-dev">Windows下基于Eclipse CDT的C/C++开发</a> appeared first on <a rel="nofollow" href="https://blog.gmem.cc">绿色记忆</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.gmem.cc/eclipse-cdt-based-dev/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>基于Eclipse CDT的wxWidgets开发环境搭建</title>
		<link>https://blog.gmem.cc/wxwidgets-development-with-eclipse-cdt</link>
		<comments>https://blog.gmem.cc/wxwidgets-development-with-eclipse-cdt#comments</comments>
		<pubDate>Tue, 20 Jul 2010 12:56:52 +0000</pubDate>
		<dc:creator><![CDATA[Alex]]></dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[CDT]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[wxWidgets]]></category>

		<guid isPermaLink="false">http://blog.gmem.cc/?p=2028</guid>
		<description><![CDATA[<p>Eclipse CDT环境的搭建请参考：基于Eclipse CDT的C/C++开发环境搭建 wxWidgets静态链接方式工程配置 创建源码目录：Sources、Headers、Resources，分别用于存放源码、头文件、资源文件 C/C++ Build - Tool Chain Editor - Current Builder设置为：CDT internal Builder C/C++ General - Paths and Symbols配置（GNU <a class="read-more" href="https://blog.gmem.cc/wxwidgets-development-with-eclipse-cdt">[...]</a></p>
<p>The post <a rel="nofollow" href="https://blog.gmem.cc/wxwidgets-development-with-eclipse-cdt">基于Eclipse CDT的wxWidgets开发环境搭建</a> appeared first on <a rel="nofollow" href="https://blog.gmem.cc">绿色记忆</a>.</p>
]]></description>
				<content:encoded><![CDATA[<div class="wri_content_clear_both"><p>Eclipse CDT环境的搭建请参考：<a href="/eclipse-cdt-setup" target="_blank">基于Eclipse CDT的C/C++开发环境搭建</a></p>
<div class="blog_h2">wxWidgets静态链接方式工程配置</div>
<ol>
<li>创建源码目录：Sources、Headers、Resources，分别用于存放源码、头文件、资源文件</li>
<li>C/C++ Build - Tool Chain Editor - Current Builder设置为：CDT internal Builder</li>
<li>C/C++ General - Paths and Symbols配置（GNU C++）：头文件包含（Includes）：<br />
<table style="width: 100%;" border="1" cellspacing="0" cellpadding="5">
<thead>
<tr>
<td style="text-align: center;">Debug</td>
<td style="text-align: center;">Release</td>
</tr>
</thead>
<tbody>
<tr>
<td>Headers<br /> D:\CPP\tools\boost-1.55.0\include<br /> D:\CPP\tools\wxWidgets-3.0.1\include<br /> D:\CPP\tools\wxWidgets-3.0.1\lib\gcc_lib\mswud</td>
<td>Headers<br /> D:\CPP\tools\boost-1.55.0\include<br /> D:\CPP\tools\wxWidgets-3.0.1\include<br /> D:\CPP\tools\wxWidgets-3.0.1\lib\gcc_lib\mswu</td>
</tr>
</tbody>
</table>
<p>宏定义（Symbols）：</p>
<table style="width: 100%;" border="1" cellspacing="0" cellpadding="5">
<thead>
<tr>
<td style="text-align: center;">Debug</td>
<td style="text-align: center;">Release</td>
</tr>
</thead>
<tbody>
<tr>
<td>__GNUWIN32__<br /> __WXMSW__<br /> _UNICODE<br /> UNICODE</td>
<td>__GNUWIN32__<br /> __WXMSW__<br /> _UNICODE<br /> UNICODE<br /> NDEBUG</td>
</tr>
</tbody>
</table>
<p>库（Libraries）：</p>
<table style="width: 100%;" border="1" cellspacing="0" cellpadding="5">
<thead>
<tr>
<td style="text-align: center;">Debug</td>
<td style="text-align: center;">Release</td>
</tr>
</thead>
<tbody>
<tr>
<td>wxmsw30ud_stc<br /> wxmsw30ud_propgrid<br /> wxmsw30ud_ribbon<br /> wxmsw30ud_adv<br /> wxmsw30ud_core<br /> wxbase30ud<br /> wxbase30ud_net<br /> wxbase30ud_xml<br /> wxtiffd<br /> wxjpegd<br /> wxpngd<br /> wxzlibd<br /> wxregexud<br /> wxexpatd<br /> kernelB2<br /> user32<br /> gdi32<br /> comdlg32<br /> shell32<br /> comctlB2<br /> ole32<br /> oleaut32<br /> uuid<br /> rpcrt4<br /> advapi32<br /> wsock32</td>
<td>wxmsw30u_xrc<br /> wxmsw30u_richtext<br /> wxmsw30u_aui<br /> wxmsw30u_html<br /> wxmsw30u_stc<br /> wxmsw30u_propgrid<br /> wxmsw30u_ribbon<br /> wxmsw30u_adv<br /> wxmsw30u_core<br /> wxbase30u<br /> wx base 30u_ net<br /> wxbase30u_xml<br /> wxjpeg<br /> wxpng<br /> wxzlib<br /> wxexpat<br /> kernel32<br /> user32<br /> comdlg32<br /> shell32<br /> comctlB2<br /> ole32<br /> oleaut32<br /> uuid<br /> rpcrt4<br /> advapi32<br /> wsock32</td>
</tr>
</tbody>
</table>
<p>库路径（Library Path）：</p>
<table style="width: 100%;" border="1" cellspacing="0" cellpadding="5">
<thead>
<tr>
<td style="text-align: center;">Debug</td>
<td style="text-align: center;">Release</td>
</tr>
</thead>
<tbody>
<tr>
<td>D:\CPP\tools\boost-1.55.0\mingw<br /> D:\CPP\tools\wxWidgets-3.0.1\lib\gcc_lib</td>
<td>D:\CPP\tools\boost-1.55.0\mingw<br /> D:\CPP\tools\wxWidgets-3.0.1\lib\gcc_lib</td>
</tr>
</tbody>
</table>
</li>
<li>C/C++ Build - Settings - Tool Settings - MinGW C++ Linker - Miscellaneous<br />
<table style="width: 100%;" border="1" cellspacing="0" cellpadding="5">
<tbody>
<tr>
<td> Link flags</td>
<td>-Wl,--subsystem,windows -mwindows</td>
</tr>
<tr>
<td> Other objects</td>
<td>如果使用资源文件：[Debug|Release]\Sources\resources.o</td>
</tr>
</tbody>
</table>
</li>
<li>C/C++ Build - Settings - Build Steps ，如果使用资源文件，设置Pre-build setps 为：<br />
<pre class="crayon-plain-tag">wxPreBuild.bat 工程名称 [Debug|Release]</pre>
</li>
<li>如果使用资源文件，编写预构建脚本，内容如下：<a id="prebuild-script-for-rc-file"></a><br />
<pre class="crayon-plain-tag">@echo off
set ECLIPSE_PROJECTS_PATH=D:\CPP\projects\eclipse\4.3.2
set PROJECT_NAME=%1
set PROJECT_CFG=%2

mkdir %ECLIPSE_PROJECTS_PATH%\%PROJECT_NAME%\%PROJECT_CFG%\Sources
rem 主要步骤是下面这个：即编译Windows资源文件
windres %ECLIPSE_PROJECTS_PATH%/%PROJECT_NAME%/Resources/%PROJECT_NAME%.rc -o %ECLIPSE_PROJECTS_PATH%/%PROJECT_NAME%/%PROJECT_CFG%/Sources/%PROJECT_NAME%.o  -I"D:\CPP\tools\wxWidgets-3.0.1\include"</pre></p>
<p>&nbsp;</p>
</li>
</ol>
</div><p>The post <a rel="nofollow" href="https://blog.gmem.cc/wxwidgets-development-with-eclipse-cdt">基于Eclipse CDT的wxWidgets开发环境搭建</a> appeared first on <a rel="nofollow" href="https://blog.gmem.cc">绿色记忆</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.gmem.cc/wxwidgets-development-with-eclipse-cdt/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>使用Eclipse进行远程调试</title>
		<link>https://blog.gmem.cc/remote-debug-with-eclipse</link>
		<comments>https://blog.gmem.cc/remote-debug-with-eclipse#comments</comments>
		<pubDate>Wed, 05 May 2010 08:36:50 +0000</pubDate>
		<dc:creator><![CDATA[Alex]]></dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[远程调试]]></category>

		<guid isPermaLink="false">http://blog.gmem.cc/?p=1586</guid>
		<description><![CDATA[<p>一些基础知识 JPDA(Java Platform Debugger Architecture)是实现Java远程调试的基础，它是一个CS架构，包含三个组件： JVMTI（JVM Tool Interface ）：服务端，即debuggee端。该接口代替JDK1.4的JVMDI，为被调试VM提供支持 JDWP（Java Debug Wire Protocol）：描述了调试信息、请求信息的格式。支持前后端的通信 JDI（Java Debug Interface）：客户端，即debugger端。Eclipse实现了JDI 理论上，任何实现了JDI的前端，均可调式支持JPDA的VM。 JDWP相关的虚拟机参数 通过设置VM参数，可以把VM作为调试服务端或者客户机： 参数名  参数说明  -Xdebug 启用调试特性 <a class="read-more" href="https://blog.gmem.cc/remote-debug-with-eclipse">[...]</a></p>
<p>The post <a rel="nofollow" href="https://blog.gmem.cc/remote-debug-with-eclipse">使用Eclipse进行远程调试</a> appeared first on <a rel="nofollow" href="https://blog.gmem.cc">绿色记忆</a>.</p>
]]></description>
				<content:encoded><![CDATA[<div class="wri_content_clear_both"><div class="blog_h2"><span class="graybg">一些基础知识</span></div>
<p>JPDA(Java Platform Debugger Architecture)是实现Java远程调试的基础，它是一个CS架构，包含三个组件：</p>
<ol>
<li><span style="color: #222222;">JVMTI（JVM Tool Interface ）：服务端，即debuggee端。该接口代替JDK1.4的JVMDI，为被调试VM提供支持</span></li>
<li>JDWP<span style="color: #222222;">（</span><span style="color: #222222;">Java Debug Wire Protocol<span style="color: #222222;">）：描述了调试信息、请求信息的格式。支持前后端的通信</span></span></li>
<li>JDI（Java Debug Interface）：客户端，即debugger端。Eclipse实现了JDI</li>
</ol>
<p>理论上，任何实现了JDI的前端，均可调式支持JPDA的VM。</p>
<div class="blog_h2"><span class="graybg">JDWP相关的虚拟机参数</span></div>
<p>通过设置VM参数，可以把VM作为调试服务端或者客户机：</p>
<table style="width: 100%;" border="1" cellspacing="0" cellpadding="5">
<thead>
<tr>
<td style="width: 150px; text-align: center;">参数名</td>
<td style="text-align: center;"> 参数说明</td>
</tr>
</thead>
<tbody>
<tr>
<td> -Xdebug</td>
<td>启用调试特性</td>
</tr>
<tr>
<td> -Xrunjdwp:&lt;子选项&gt;</td>
<td>包含一系列的子选项，来控制调试行为：</p>
<div style="padding-left: 30px;">
<p>transport：传输方式，通常使用套接字server：如果为y，表示当前VM是debuggee，否则为debugger</p>
<p>address：对于debuggee，指定监听地址和端口；对于debugger，指定需要连接的地址和端口</p>
<p>suspend：如果为y，则VM暂停，直到debugger连接</p>
</div>
</td>
</tr>
</tbody>
</table>
<strong>debuggee虚拟机参数样例：</strong><br />
<pre class="crayon-plain-tag">-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8000</pre><br />
<strong>debugger虚拟机参数样例：</strong><br />
<pre class="crayon-plain-tag">-Xdebug -Xrunjdwp:transport=dt_socket,address=127.0.0.1:8000</pre>
<div class="blog_h2"><span class="graybg">在Eclipse中配置远程调试客户端</span></div>
<p>点击工具栏上的Debug按钮，选择Debug Configurations，新建一个调试配置，其中Host、Port分别填写被调试VM的地址和调试端口。参考下图：<br />
<a href="/wp-content/uploads/2010/05/eclipse-remote-debug.jpg"><img class="alignnone size-full wp-image-1600" src="https://blog.gmem.cc/wp-content/uploads/2010/05/eclipse-remote-debug.jpg" alt="eclipse-remote-debug" width="769" height="560" /></a></p>
<div class="blog_h2"><span class="graybg">配置远程调试服务端</span></div>
<p>下面以Tomcat和Weblogic为例，描述如何配置远程调试的服务端，本质上都是添加对应的VM参数</p>
<div class="blog_h3"><span class="graybg">Tomcat 6.0远程调试服务端</span></div>
Tomcat6已经内置了对JDPA的支持，只需要按如下命令启动即可：<br />
<pre class="crayon-plain-tag">#监听默认的8000端口
catalina jpda start</pre><br />
亦可修改脚本catalina.bat，添加类似以下内容：<br />
<pre class="crayon-plain-tag">SET CATALINA_OPTS=-server -Xms1024m -Xmx1024m -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n</pre>
<div class="blog_h3"><span class="graybg">Weblogic 7.0远程调试服务端（JDK1.4）</span></div>
在weblogic的启动目录中修改startWLS.cmd这一文件，它位于%weblogic_home%\server\bin\目录下，添加如下一行：<br />
<pre class="crayon-plain-tag">set DEBUG_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n</pre><br />
然后，把默认的set JAVA_VM=-hotspot后面的参数-hotspot去掉，否则会启动不了，提示参数错误
</div><p>The post <a rel="nofollow" href="https://blog.gmem.cc/remote-debug-with-eclipse">使用Eclipse进行远程调试</a> appeared first on <a rel="nofollow" href="https://blog.gmem.cc">绿色记忆</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.gmem.cc/remote-debug-with-eclipse/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eclipse知识集锦</title>
		<link>https://blog.gmem.cc/eclipse-faq</link>
		<comments>https://blog.gmem.cc/eclipse-faq#comments</comments>
		<pubDate>Sun, 25 Apr 2010 01:42:47 +0000</pubDate>
		<dc:creator><![CDATA[Alex]]></dc:creator>
				<category><![CDATA[Work]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[FAQ]]></category>

		<guid isPermaLink="false">http://blog.gmem.cc/?p=684</guid>
		<description><![CDATA[<p>常用快捷键 快捷键 说明 Ctrl + Shift + T 打开一个类型，甚至是位于JAR中的类文件，依据文件名搜索 Ctrl + Shift + R 打开任意一个文件，依据文件名搜索 Ctrl + 1   快速修复  Ctrl + <a class="read-more" href="https://blog.gmem.cc/eclipse-faq">[...]</a></p>
<p>The post <a rel="nofollow" href="https://blog.gmem.cc/eclipse-faq">Eclipse知识集锦</a> appeared first on <a rel="nofollow" href="https://blog.gmem.cc">绿色记忆</a>.</p>
]]></description>
				<content:encoded><![CDATA[<div class="wri_content_clear_both"><div class="blog_h2"><span class="graybg">常用快捷键</span></div>
<table class=" full-width">
<thead>
<tr>
<td style="width: 25%; text-align: center;">快捷键</td>
<td style="text-align: center;">说明</td>
</tr>
</thead>
<tbody>
<tr>
<td>Ctrl + Shift + T</td>
<td>打开一个类型，甚至是位于JAR中的类文件，依据文件名搜索</td>
</tr>
<tr>
<td>Ctrl + Shift + R</td>
<td>打开任意一个文件，依据文件名搜索</td>
</tr>
<tr>
<td>Ctrl + 1  </td>
<td>快速修复 </td>
</tr>
<tr>
<td>Ctrl + Shift + O</td>
<td>清理Java import</td>
</tr>
<tr>
<td>Ctrl + O</td>
<td>快速大纲，可以快速定位到当前文件中的某个结构</td>
</tr>
<tr>
<td>Alt + Left / Right </td>
<td>切换编辑器标签页 </td>
</tr>
<tr>
<td>Ctrl + Shift + Up / Down</td>
<td>在上下一个类成员之间切换 </td>
</tr>
<tr>
<td>F3</td>
<td>转到类型定义处 </td>
</tr>
<tr>
<td>Ctrl + /</td>
<td>生成/解除单行注释</td>
</tr>
<tr>
<td>Ctrl + Shift + /</td>
<td>生成/解除注释块</td>
</tr>
<tr>
<td>F4</td>
<td>显示Type Hierarchy视图</td>
</tr>
<tr>
<td>Ctrl + W</td>
<td>关闭当前编辑页签</td>
</tr>
<tr>
<td>Ctrl + Shift + W</td>
<td>关闭所有编辑页签</td>
</tr>
<tr>
<td>Ctrl + L</td>
<td>定位到某一行</td>
</tr>
<tr>
<td>Ctrl + Shift + F</td>
<td>格式化代码</td>
</tr>
<tr>
<td>Ctrl + F</td>
<td>查找和替换</td>
</tr>
<tr>
<td>Ctrl + D</td>
<td>删除行</td>
</tr>
<tr>
<td>Ctrl + Q</td>
<td>返回最近编辑的地方</td>
</tr>
<tr>
<td>Ctrl + T</td>
<td>快速类型层次，立即显示选中类型的继承结构</td>
</tr>
<tr>
<td>Ctrl + E</td>
<td>快速切换到其它编辑器页签，支持搜索</td>
</tr>
<tr>
<td>Ctrl + . / ,</td>
<td>快速定位到当前文件下一个/上一个警告或错误</td>
</tr>
<tr>
<td>Ctrl + Alt + H</td>
<td>显示选中方法被调用的层次</td>
</tr>
<tr>
<td>Ctrl + Shift + P</td>
<td>定位到匹配的括号</td>
</tr>
<tr>
<td>Alt + Shift + J</td>
<td>为类、方法、字段等添加JavaDoc</td>
</tr>
<tr>
<td>Ctrl + Shift + L</td>
<td>显示快捷键列表，再次按此组合键打开Preferences</td>
</tr>
</tbody>
</table>
<div class="blog_h2"><span class="graybg">常见问题</span></div>
<div class="blog_h3"><span class="graybg">Eclipse 4.3.2验证工程时报NullPointerException错</span></div>
<p>具体报错日志：java.lang.NullPointerException at org.eclipse.wst.validation.internal.DependencyIndex.clear<br /> 原因：工作区.metadata\.plugins\org.eclipse.wst.validation\dep.index文件损坏导致<br /> 解决：删除dep.index</p>
<div class="blog_h3"><span class="graybg">配置Debug Configurations报错： A ‘* Application’ configuration with this name already exists</span></div>
<p>定位到：%ECLIPSE_WORKSPACE_DIR%\.metadata\.plugins\org.eclipse.debug.core\.launches，搜索对应的*.launch文件，删除即可。</p>
<div class="blog_h3"><span class="graybg">Eclipse启动失败，日志文件显示：java.lang.NoClassDefFoundError: org/eclipse/core/resources/IContainer</span></div>
<p>解决：%WORKSPACE_DIR%\.metadata\.plugins\org.eclipse.core.resources下的.snap文件删除</p>
<div class="blog_h3"><span class="graybg">在Eclipse的WTP下Weblogic 9.2无法启动</span></div>
<p>报错信息：unable to validate weblogic domain<br /> 解决办法：增加JDK系统属性 -Dsun.lang.ClassLoader.allowArraySyntax=true</p>
<div class="blog_h3"><span class="graybg">aspectj-maven-plugin报错</span></div>
<p>Plugin execution not covered by lifecycle configuration: org.codehaus.mojo:build-helper-maven-plugin:1.7:add-source (execution: default, phase: generate-sources)<br /> 解决办法：根据提示安装m2e connector build-helper-maven-plugin</p>
<div class="blog_h3"><span class="graybg">Windows7下禁止多个Eclipse实例的任务栏图标合并</span></div>
<p>Windows7支持把同类型的任务栏图标进行分组、合并，这样可以让任务栏比较清爽。我习惯于这种图标合并的功能，除了需要频繁切换的、同时打开多个的IDE。</p>
<p>为了能让每个Eclipse显示单独的图标，一开始我尝试使用<a href="https://code.google.com/p/win7appid/">win7appid</a>修改快捷方式上的<a href="https://msdn.microsoft.com/en-us/library/windows/desktop/dd378459(v=vs.85).aspx">Application User Model Id</a>，遗憾的是Eclipse在启动后，会自动修改此ID为Eclipse。没办法，只好自己写了一段程序，在后台周期性调用：</p>
<pre class="crayon-plain-tag">#include "stdafx.h"
#include "Shellapi.h"
#include "Psapi.h"
#include "wchar.h"
#include "propsys.h"
#include "Propvarutil.h"
#include "propkey.h"
#include &lt;iostream&gt;

using namespace std;

#define MAX_PROCS 1024
#define NAME_BUF_SIZE 1024

struct handle_data {
    unsigned long process_id;
    HWND best_handle;
};

BOOL is_main_window( HWND handle )
{
    return GetWindow( handle, GW_OWNER ) == ( HWND )0 &amp;&amp; IsWindowVisible( handle );
}

BOOL CALLBACK enum_windows_callback( HWND handle, LPARAM lParam )
{
    handle_data&amp; data = *( handle_data* )lParam;
    unsigned long process_id = 0;
    GetWindowThreadProcessId( handle, &amp;process_id );
    if( data.process_id != process_id || !is_main_window( handle ) ) {
        return TRUE;
    }
    data.best_handle = handle;
    return FALSE;
}
HWND find_main_window( unsigned long process_id )
{
    handle_data data;
    data.process_id = process_id;
    data.best_handle = 0;
    EnumWindows( enum_windows_callback, ( LPARAM )&amp;data );
    return data.best_handle;
}

void  set_app_user_model_ids()
{
    DWORD proc_ids[MAX_PROCS] = {0};
    DWORD pBytesReturned;
    EnumProcesses( proc_ids, MAX_PROCS, &amp;pBytesReturned );
    DWORD proc_count = pBytesReturned / sizeof( DWORD );
    wcout &lt;&lt; "Process count: " &lt;&lt; proc_count &lt;&lt; endl;
    WCHAR buf[NAME_BUF_SIZE];
    //iterate over all local processes
    for( DWORD i = 0; i &lt; proc_count; i++ ) {
        HANDLE hdl = OpenProcess( PROCESS_ALL_ACCESS, FALSE, proc_ids[i] );
        wmemset( buf, 0, NAME_BUF_SIZE );
        //query binary file path
        DWORD buf_size = NAME_BUF_SIZE;
        if( QueryFullProcessImageName( hdl, 0, buf, &amp;buf_size ) ) {
            //filter by filename
            LPWSTR eclipse = wcsstr( buf, L"eclipse.exe" );
            if( eclipse ) {
                HWND hwnd = find_main_window( proc_ids[i] );
                wcout &lt;&lt; "Eclipse window found: " &lt;&lt; buf &lt;&lt; endl;
                IPropertyStore* store = NULL;
                SHGetPropertyStoreForWindow( hwnd, IID_IPropertyStore, ( void** )&amp;store );
                PROPVARIANT propvar;
                InitPropVariantFromString( buf, &amp;propvar );
                store-&gt;GetValue( PKEY_AppUserModel_ID, &amp;propvar );
                swprintf( buf , NAME_BUF_SIZE, L"%d", hwnd );
                //if appid already changed, just do nothing
				//otherwise the taskbar icon  flickers during each invocation
                if( propvar.pwszVal &amp;&amp; wcsstr( propvar.pwszVal, buf ) ) continue;
                swprintf( buf , NAME_BUF_SIZE, L"eclipse-%d", hwnd );
                InitPropVariantFromString( buf, &amp;propvar );
                wcout &lt;&lt; "Change AppUserModelId to " &lt;&lt; buf &lt;&lt; endl;
                store-&gt;SetValue( PKEY_AppUserModel_ID, propvar );
            }
        }
    }
}
int _tmain( int argc, _TCHAR* argv[] )
{
    set_app_user_model_ids();
    return 0;
}</pre>
<p>链接时，需要额外的库：Shlwapi.lib、psapi.lib </p>
</div><p>The post <a rel="nofollow" href="https://blog.gmem.cc/eclipse-faq">Eclipse知识集锦</a> appeared first on <a rel="nofollow" href="https://blog.gmem.cc">绿色记忆</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.gmem.cc/eclipse-faq/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
