- 浏览: 1076856 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (399)
- C++ (39)
- Java (74)
- Java界面开发学习笔记 (4)
- Java用户的c++之旅 (0)
- 自言自语 (12)
- DSP (1)
- MCU (0)
- CG (0)
- Jabber (0)
- Gloox (0)
- Linux (11)
- Windows (19)
- Networks (4)
- Jobs (0)
- PHP (1)
- JSP (2)
- 生活 (35)
- C (2)
- Qt4 (2)
- C# (50)
- WPF (5)
- ASP (2)
- FLEX (47)
- SQL (20)
- JavaScript (12)
- SharePoint (6)
- GWT (1)
- Dojo (9)
- HTML (11)
- Others (7)
- 如何安装配置系列 (7)
- UML (2)
- Android (3)
- alibaba (1)
最新评论
-
zxjlwt:
学习了http://surenpi.com
Firefox插件开发: Hello World! -
ylldzz:
楼主知道MVEL怎么调试么
MVEL简介及快速使用 -
blueman2012:
您好,可否提供源码下载,我把您的代码贴过来后,好多报错的,谢谢 ...
Log4J日志解析 -
svygh123:
你的游标都没有关闭呢!
MYSQL游标嵌套循环示例 -
dizh:
写的很好啊
MVEL简介及快速使用
首先定义一个控制台类(继承自MessageConsole),以及一个输出带链接的字符串的帮助类。
package com.shansun.easycmd.controls; import java.io.IOException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import org.eclipse.core.runtime.jobs.Job; import org.eclipse.jface.text.DocumentEvent; import org.eclipse.jface.text.IDocumentListener; import org.eclipse.swt.graphics.Color; import org.eclipse.ui.console.ConsolePlugin; import org.eclipse.ui.console.IConsole; import org.eclipse.ui.console.IConsoleManager; import org.eclipse.ui.console.MessageConsole; import org.eclipse.ui.console.MessageConsoleStream; public class MavenConsole extends MessageConsole { final public static String MAVEN_CONSOLE_NAME = "Maven Tools"; int addStrLen; static class DocChangeListener implements IDocumentListener { int lenBeforeChange; int expectedlen; final MavenConsole mvnConsole; final MavenHyperLink mvnLink; public DocChangeListener(MavenConsole console, MavenHyperLink link, int lenWanted) { mvnConsole = console; mvnLink = link; expectedlen = lenWanted; } public void documentAboutToBeChanged(DocumentEvent event) {} public void documentChanged(final DocumentEvent event) { int strLenAfterChange = event.getDocument().getLength(); if (strLenAfterChange >= expectedlen) { Job job = new Job("MavenMessageConsole.addLinkToConsole") { public IStatus run(IProgressMonitor monitor) { try { mvnConsole.addHyperlink(mvnLink, expectedlen - mvnLink.getText().length(), mvnLink.getText().length()); } catch (Exception e) {} return Status.OK_STATUS; } }; job.schedule(); event.getDocument().removeDocumentListener(this); } } } public MavenConsole() { super(MAVEN_CONSOLE_NAME, null); addStrLen = 0; } public void clearConsole() { super.clearConsole(); this.addStrLen = 0; } public void printToConsole(final String msg, final Color color) { final MessageConsoleStream stream = this.newMessageStream(); this.activate(); if (color != null) stream.setColor(color); addStrLen += msg.length(); stream.println(msg); // "\n" will take length 1, so use print, not println try { stream.flush(); } catch (IOException e) { e.printStackTrace(); } } public void addLinkToConsole(final MavenHyperLink link, Color color) { if (link.valid()) { try { final MavenConsole console = this; final int currentStrLen = addStrLen; printToConsole(link.getText(), color); console.getDocument().addDocumentListener(new DocChangeListener(console, link, currentStrLen + link.getText().length())); } catch (Exception e) {} } } public static MavenConsole getMavenConsole() { IConsoleManager manager = ConsolePlugin.getDefault().getConsoleManager(); IConsole[] curConsoles = manager.getConsoles(); for (IConsole co : curConsoles) { if (co.getName().equals(MAVEN_CONSOLE_NAME)) return (MavenConsole) co; } MavenConsole myConsole = new MavenConsole(); manager.addConsoles(new IConsole[] { myConsole }); return myConsole; } }
package com.shansun.easycmd.controls; import java.net.URL; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.console.IHyperlink; public class MavenHyperLink implements IHyperlink { String text; URL url; public MavenHyperLink(String text, String urlStr) { try { this.text = text; this.url = new URL(urlStr); } catch (Exception e) { this.url = null; } } public boolean valid() { return this.text != null && this.url != null; } public String getText() { return this.text; } public void linkActivated() { try { if (url != null) PlatformUI.getWorkbench().getBrowserSupport().createBrowser("TestConsole").openURL(url); } catch (Exception e) {} } public void linkEntered() {} public void linkExited() {} }
下面介绍如何在代码中使用这两个类:
private void doMavenInWindows(boolean isDir, String osPath) { final Color colorBlue = Display.getDefault().getSystemColor(SWT.COLOR_BLUE); Color colorRed = Display.getDefault().getSystemColor(SWT.COLOR_RED); Color colorBlack = Display.getDefault().getSystemColor(SWT.COLOR_BLACK); final MavenConsole myConsole = MavenConsole.getMavenConsole(); myConsole.printToConsole(osPath, colorBlue); try { final String mavenExePath = Activator.getMavenExe(); if (mavenExePath == null) return; try { myConsole.clearConsole(); myConsole.setBackground(colorBlack); String cmd = mavenExePath + " clean deploy -Dmaven.test.skip=true"; Process proc = null; if (isDir) { proc = Runtime.getRuntime().exec(cmd, null, new File(osPath)); } else { int index1 = osPath.lastIndexOf('/'); int index2 = osPath.lastIndexOf('\\'); int index = Math.max(index1, index2); String realPath = osPath.substring(0, index); proc = Runtime.getRuntime().exec(cmd, null, new File(realPath)); } InputStream is = proc.getInputStream(); InputStreamReader isr = new InputStreamReader(is, "GBK"); final BufferedReader br = new BufferedReader(isr); myConsole.printToConsole("Maven Tools v1.0, Made By Lanbo.xj", colorRed); Job job = new Job("MavenMessageConsole.addLinkToConsole") { public IStatus run(IProgressMonitor monitor) { String line = null; try { while ((line = br.readLine()) != null) { final String tmpLine = line; myConsole.printToConsole(tmpLine, colorBlue); } return Status.OK_STATUS; } catch (IOException e) { e.printStackTrace(); } return Status.CANCEL_STATUS; } }; job.schedule(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } catch (Exception e) { e.printStackTrace(); } }
发表评论
-
Interesting interview question…
2011-06-23 19:10 1449Today I was asked this questi ... -
简单易用的Web框架:SummerCool介绍
2011-05-10 19:01 4744SummerCool是国内某大型电子商务平台的架构师自 ... -
[转]Eclipse插件:Java AST View
2011-05-06 16:03 4615转载:http://www.blogjava.net/life ... -
Eclipse之Debug技巧
2011-05-02 15:30 1560你认为你的eclipse debug技能都学会了吗?能够熟 ... -
AccessController.doPrivileged 小记
2011-04-29 20:29 2076原文:http://blog.csdn.net/tea ... -
推荐一个下载源码的网站
2011-04-29 20:26 1246http://olex.openlogic.com/ 这个网 ... -
Java解析xml禁止校验dtd
2011-04-27 21:34 8390今天在做log4j.xml解析的时候,指定了如下的dtd声明: ... -
区分getName、getCanonicalName与getSimpleName
2011-04-27 18:34 5765举例,现有一个类如下: package com.sha ... -
Log4J日志解析
2011-04-25 16:12 7053在有些场景下,需要解析Log4J的日志,以为己用。比如,根据 ... -
分享个不错的网站:看JSON字符串的利器
2011-04-20 20:09 1304分享个不错的网站:看JSON字符串的利器or胸器 http: ... -
Regex:密码验证
2011-04-13 18:45 20044.当且仅当含数字和字母的密码验证 如果密码当且仅当 ... -
JDBC操作数据库时切记关闭资源
2011-04-08 18:14 1865Error: No ManagedConnectio ... -
JDBC:如何将resultset的信息自动封装到pojo里面
2011-04-08 10:32 4308不多说了 直接上代码 Java代码 p ... -
Maven自动升级版本号并打包上传的脚本
2011-04-02 09:52 7517同事写的自动升级版本并打包上传的脚本: echo of ... -
在ibatis中使用$value$引入变量会引入SQLInjection漏洞
2011-04-01 16:26 2312(1)sql语法中的_关键字_.如果sql语句中出现存在用户输 ... -
EqualsBuilder和HashCodeBuilder
2011-03-31 19:30 2222自动化hashCode()和equals() 问题产生:当需 ... -
Eclipse中的Stack Trace Console的使用
2011-03-15 14:47 3024很多的Java程序员(特别是开发Web程序的时候),通常在 ... -
System.out.format的使用
2011-01-21 12:34 4795JDK5.0允许象C语言那样直接用printf()方法来格式化 ... -
jhat的简单使用
2011-01-18 19:41 2890leak一般会发生在容器类保存对象引用而不删除的时候,替代方法 ... -
关于变更eclipse中maven插件的repository路径
2011-01-10 10:02 17031.打开eclipse 2.window-->ref ...
相关推荐
以上只是Eclipse众多功能的一部分,实际使用中,开发者会发现更多实用特性,如问题视图(Problems View)用于显示错误和警告,搜索视图(Search View)用于查找代码中的特定字符串,以及资源管理(Resource)视图...
虽然本文主要关注于使用`trim()`方法和`equals()`方法比较字符串,但在示例代码中还涉及到日期格式化的部分。这里简单介绍一下这部分内容: - `DateFormat`类提供了日期和时间的格式化和解析。 - `SimpleDateFormat`...
将在控制台输出一串字符。不要清除,将其复制出来,然后找到D:\Program Files\jee-mars\eclipse\configuration\org.eclipse.equinox.simpleconfigurator\bundles.info文件,把内容追加到bundles.info后面。此时spket...
- `Ctrl+Shift+Y`:转换选择的字符串为大写。 - `Ctrl+Shift+X`:转换选择的字符串为小写。 - `Ctrl+Shift+H`:显示选择对象的引用。 - `Ctrl+Shift+O`:组织导入,自动添加缺少的导入语句,并删除无用的导入。 ...
这些参数告诉JVM使用UTF-8编码,并设定用户的国家和地区为美国,以确保相关本地化字符串也以UTF-8处理。 2. **设置工作空间编码**: - 启动Eclipse后,选择`Window` -> `Preferences`,进入首选项设置界面。 - ...
`System.out.println()`用于在控制台上输出字符串。 2. **运行程序**: - **使用Eclipse**:点击工具栏上的运行按钮或选择“运行”>“运行”。 - **结果**:控制台将显示“HelloWorld!”输出。 #### 三、编译与...
Mybatis Log Plugin 可以将 Mybatis 脚本输出到控制台中,使开发者可以更方便地进行开发和测试。 3. Maven Helper Maven Helper 是一款功能强大的插件,旨在帮助开发者更好地管理 Maven 项目。该插件提供了许多实用...
- `-nl`: 将字符串拆分成多行输出,提高代码的可读性。 - `-ff`: 数据成员在方法之前显示,更符合常规编程习惯。 - `-space`: 在关键字和表达式之间插入空格,遵循 Java 的编码规范。 - `-nonlb`: 不在大括号前换行...
Eclipse还会显示控制台输出,方便查看程序运行结果。 五、调试 Eclipse的调试功能强大,包括设置断点、单步执行、查看变量值、调用栈信息等。在代码行号前点击,即可设置断点。运行时,当程序执行到断点处会暂停,...
- "print"语句:Python中的标准输出函数,可以打印信息到控制台。 - "Hello, world!":最基础的程序示例,用于展示如何在Python中输出文字。 - 注释:在Python中,单行注释以"#"开头,多行注释可以通过三个双引号...
在Eclipse Tail Plugin的实现中,它利用Eclipse插件体系结构,无缝集成到Eclipse IDE中。用户可以通过Eclipse的插件管理器安装该插件,或者直接将提供的压缩包"org.jdt.eclipsetail_0.5.0"解压后放到Eclipse的...
`:这是一个输出语句,用于在控制台输出字符串HelloWorld。 - `String str="test";`:这行代码声明了一个String类型的变量str,并给它赋了一个字符串"test"。 3. Java中的数组和文件操作 文档中通过`Scanner`类展示...
- 在控制台输出:“Hello, World!” **理解要点** - **打印函数:** `print()`用于在终端显示指定内容。 - **字符串:** `"Hello, World!"`是一个字符串,用于存储文本信息。 - **语法规范:** Python中的字符串...
echo和print是PHP中最基本的输出函数,主要用于输出字符串。在调试过程中,可以直接输出变量的值,以验证程序的执行流程和变量的当前状态。 代码示例: ```php $a = 1; $b = 2; if ($a == 1) { echo "分支1"; } ...
字符串与包装类、 java集合类框架、 常用数学工具类、 错误处理、 输入/输出、 枚举类型与泛型、 swing入门、 多线程、 网络通信和数据库操作。 本书所精选的实例都是一线开发人员在实际项目中所积累的,并进行了...
参数 `args` 是一个字符串数组,可以用来接收命令行参数。 - `println("Hello World!")`: 输出 “Hello World!” 到控制台。 #### 面向对象编程 Kotlin 支持面向对象编程,包括类、继承、接口等概念。 ```kotlin ...
7. **正则表达式**:Groovy内置了强大的正则表达式支持,方便处理字符串匹配和替换等任务。 以上是关于Groovy快速入门的一些基础知识和特性介绍,希望对初学者有所帮助。通过掌握这些基本概念,开发者可以更快地...
JasperAssistant是一款专门用于Java报表组件JasperReports的可视化设计工具,它以Eclipse插件的形式存在,旨在简化复杂报表的设计过程。通过提供一个直观的用户界面,JasperAssistant使得开发人员可以轻松地创建、...