Eclipse
现在在Internet上已经可以见到不少的Eclipse插件开发的入门文章,这里我写本文的目的主要是将我自己的体会和最开始的学习告诉给大家。 同时也希望本文能使用最为简单的方法来让大家了解开发Eclipse插件的基础。需要注意的是,要学习Eclipse的插件开发,你需要:
会使用Eclipse来开发Java应用程序
了解插件这个词的概念
了解一些XML的知识 本文是一个入门的文章,只是向大家说明开发一个插件的简单步骤,同时了解在开发插件时涉及到的技术面会有哪些。
Eclipse SDK概述
我们通常使用的Eclipse也就是我们这里所说的Eclipse SDK,这个SDK中包括了很多的内容,如下图所示:

运行时核心(Eclipse Platform) - SDK必须一个Eclipse Platform,它自身不具有任何对最终用户有意义的功能, 它是一个加载所有插件的基础平台。也就是Eclipse的运行时最小集合了。
Java 开发工具(JDT) - 我们所有的有关Java的开发部分都是由这个插件来完成了,它形成了对于Java最为基础的编辑、 编译、运行、调试、发布的环境。
插件开发者环境(PDE) - 开发插件的插件,我们如果要开发插件哪么我们就会发现所有的工作环境都是由它来提供的。 它提供了用来自动创建、处理、调试和部署插件的工具。
我们将来要开发的插件都是由平台来加载和运行,而PDE则是开发插件的开发环境,JDT则是开发插件时的Java代码的开发环境。
创建插件项目
设置引用项目
开发插件时需要大量的外部库,这些外部库主要是现有的Eclipse中各个插件所提供的库。 为了开发方便,我们先将这些外部库由一个项目统一引用。
从资源透视图中,使用文件>导入...>外部插件和段。
在下一步中选择抽取源归档并在项目中创建源文件夹。
到显示称为选择的屏幕,选择 org.eclipse.ui,然后单击完成按钮。
创建项目
在Eclipse需要创建一个空的插件项目,为了让我们更好的理解插件中各个文件的来源,我们从一个空白的插件项目开始:
1) 打开新建项目...向导(文件>新建>项目...)并从插件开发类别中选择插件项目。
2) 将com.huangdong.examples.helloworld用作项目的名称。缺省情况下,向导还会将com.huangdong.examples.helloworld设置为标识。
3) 最终,确保在插件代码生成器页面上选择了创建空白插件项目。
4) 当询问您是否想切换到“插件开发”透视图时,回答是。
5) 选择com.huangdong.examples.helloWorld项目并打开属性对话框。
6) 在Java构建路径属性中,选择项目选项卡,并选择项目org.eclipse.ui。这些包含了项目需要的导入类。
7) 重建项目。
创建一个插件内容
创建一个新的小视图
下面我们为该项目加入一个很简单的视图:
1) 在项目的src目录下创建包com.huangdong.examples.helloworld。
2) 在此包中创建称为HelloWorldView的新类其超类为org.eclipse.ui.part.ViewPart。
在HelloWorldView中加入以下代码:
package com.huangdong.examples.helloworld;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.ui.part.ViewPart;
public class HelloWorldView extends ViewPart {
Label label;
public void createPartControl(Composite parent) {
label = new Label(parent, SWT.WRAP);
label.setText("Hello World");
}
public void setFocus() {}
}
我们为该类定义了一个变量lable,在createPartControl方法中初始化并设置了一个显示的字符串。
护展扩展点
让Eclipse添加这个视图,需要扩展org.eclipse.ui.views扩展点。所有的这些需要在plugin.xml中进行描述。该清单文件描述插件,包括插件的代码所在的位置以及正在添加的扩展。
将以下内容复制到plugin.xml中:
<?xml version="1.0" encoding="UTF-8"?>
<plugin id="com.huangdong.examples.helloworld"
name="com.huangdong.examples.helloworld"
version="1.0.0"
provider-name="HuangDong">
<runtime>
<library name="helloworld.jar"/>
</runtime>
<requires>
<import plugin="org.eclipse.ui"/>
</requires>
<extension point="org.eclipse.ui.views">
<category
name="Hello"
id="com.huangdong.examples.helloworld.hello">
</category>
<view
name="Hello Greetings"
category="com.huangdong.examples.helloworld.hello"
class="com.huangdong.examples.helloworld.HelloWorldView"
id="com.huangdong.examples.helloworld.helloworldview">
</view>
</extension>
</plugin>
在plugin域中定义了插件的名称、标识和版本。 同时在runtime域中定义了插件代码将打包于helloworld.jar文件中。 在requires域中定义了该插件所要使用的依赖插件,由于我们要使用SWT API和工作台所以列示了org.eclipse.ui。 最后,在extension中说明了要们要扩展org.eclipse.ui.views扩展点。 首先我们在category中定义了视图的类别,在工作台的显示视图对话框中,可以使用类别来将相关的视图集中在一起。我们定义的类别名为“Hello”。 同时也定义了我们的视图,名为“Hello Greetings”,这个视图将会显示在“显示视图”对话框和视图的标题栏中,这里我们还通过class标识来说明了实现这个视图的最终类。
通过plugin.xml的定义,Eclipse才会真正的找到插件可以做的行为,以及这些行为最终实现的具体Java类。
在插件清单文件中使用了许多标识。 个别扩展点通常会定义需要标识的配置参数(例如,以上用于视图扩展点的类别标识)。 我们还要定义插件标识。通常,应该对所有标识都使用 Java 包名前缀,以便确保所有已安装的插件都是唯一的。
在前缀后面使用的特定名称完全由您自己决定。 然而,如果插件标识前缀刚好与其中一个包的名称相同,则应该避免在该包中使用类名。 否则,将很难分辨您正在查看标识名还是类名。
还应该避免对不同的扩展配置参数使用相同的标识。 在上述清单中,已经使用了公共标识前缀(com.huangdong.examples.helloworld),但是,我们的所有标识都是唯一的。 此命名方法可以帮助我们阅读文件并了解哪些标识是相关的。
运行和测试插件
运行插件是一件很简单的事,这些在PDE中给我们提供了很好的支持。 只需要在菜单中选择运行>运行为>运行时工作台,在运行时会弹出一个重复插件的提示框,可以按确定跳过,不必在意。 这样会启动一个已经安装好插件的Eclipse。
启动后在菜单中选择窗口>显示视图>其它,在显示视图对话框中会有一个分类为Hello,点开Hello分类会看到Hello Greetings,选择后点确定按钮。在最下面的视图中可以见到以下界面:

到这里,如果你看到了这个图,哪么恭喜你,你的第一个Eclipse插件成功运行了。

译者 | 李睿审校 | 孙淑娟随着Python越来越受欢迎,其局限性也越来越明显。一方面,编写Python应用程序并将其分发给没有安装Python的人员可能非常困难。解决这一问题的最常见方法是将程序与其所有支持库和文件以及Python运行时打包在一起。有一些工具可以做到这一点,例如PyInstaller,但它们需要大量的缓存才能正常工作。更重要的是,通常可以从生成的包中提取Python程序的源代码。在某些情况下,这会破坏交易。第三方项目Nuitka提供了一个激进的解决方案。它将Python程序编

今天这篇文章的重点是使用 ChatGPT API 创建私人语音 Chatbot Web 应用程序。目的是探索和发现人工智能的更多潜在用例和商业机会。我将逐步指导您完成开发过程,以确保您理解并可以复制自己的过程。为什么需要不是每个人都欢迎基于打字的服务,想象一下仍在学习写作技巧的孩子或无法在屏幕上正确看到单词的老年人。基于语音的 AI Chatbot 是解决这个问题的方法,就像它如何帮助我的孩子要求他的语音 Chatbot 给他读睡前故事一样。鉴于现有可用的助手选项,例如,苹果的 Siri 和亚马

ChatGPT 目前彻底改变了开发代码的方式,然而,大多数软件开发人员和数据专家仍然没有使用 ChatGPT 来改进和简化他们的工作。这就是为什么我在这里概述 5 个不同的功能,以提高我们的日常工作速度和质量。我们可以在日常工作中使用它们。现在,我们一起来了解一下吧。注意:切勿在 ChatGPT 中使用关键代码或信息。01.生成项目代码的框架从头开始构建新项目时,ChatGPT 是我的秘密武器。只需几个提示,它就可以生成我需要的代码框架,包括我选择的技术、框架和版本。它不仅为我节省了至少一个小时

测试时自适应(Test-TimeAdaptation,TTA)方法在测试阶段指导模型进行快速无监督/自监督学习,是当前用于提升深度模型分布外泛化能力的一种强有效工具。然而在动态开放场景中,稳定性不足仍是现有TTA方法的一大短板,严重阻碍了其实际部署。为此,来自华南理工大学、腾讯AILab及新加坡国立大学的研究团队,从统一的角度对现有TTA方法在动态场景下不稳定原因进行分析,指出依赖于Batch的归一化层是导致不稳定的关键原因之一,另外测试数据流中某些具有噪声/大规模梯度的样本

哈喽,大家好。之前给大家分享过摔倒识别、打架识别,今天以摔倒识别为例,我们看看能不能完全交给ChatGPT来做。让ChatGPT来做这件事,最核心的是如何向ChatGPT提问,把问题一股脑的直接丢给ChatGPT,如:用 Python 写个摔倒检测代码 是不可取的, 而是要像挤牙膏一样,一点一点引导ChatGPT得到准确的答案,从而才能真正让ChatGPT提高我们解决问题的效率。今天分享的摔倒识别案例,与ChatGPT对话的思路清晰,代码可用度高,按照GPT返回的结果完全可以开

自 2020 年以来,内容开发领域已经感受到人工智能工具的存在。1.Jasper AI网址:https://www.jasper.ai在可用的 AI 文案写作工具中,Jasper 作为那些寻求通过内容生成赚钱的人来讲,它是经济实惠且高效的选择之一。该工具精通短格式和长格式内容均能完成。Jasper 拥有一系列功能,包括无需切换到模板即可快速生成内容的命令、用于创建文章的高效长格式编辑器,以及包含有助于创建各种类型内容的向导的内容工作流,例如,博客文章、销售文案和重写。Jasper Chat 是该

1970年,机器人专家森政弘(MasahiroMori)首次描述了「恐怖谷」的影响,这一概念对机器人领域产生了巨大影响。「恐怖谷」效应描述了当人类看到类似人类的物体,特别是机器人时所表现出的积极和消极反应。恐怖谷效应理论认为,机器人的外观和动作越像人,我们对它的同理心就越强。然而,在某些时候,机器人或虚拟人物变得过于逼真,但又不那么像人时,我们大脑的视觉处理系统就会被混淆。最终,我们会深深地陷入一种对机器人非常消极的情绪状态里。森政弘的假设指出:由于机器人与人类在外表、动作上相似,所以人类亦会对

译者 | 李睿审校 | 孙淑娟信使、网络服务和其他软件都离不开机器人(bot)。而在软件开发和应用中,机器人是一种应用程序,旨在自动执行(或根据预设脚本执行)响应用户请求创建的操作。在本文中, NIX United公司的.NET开发人员Daniil Mikhov介绍了使用微软Azure Bot Services创建聊天机器人的一个例子。本文将对想要使用该服务开发聊天机器人的开发人员有所帮助。 为什么使用Azure Bot Services? 在Azure Bot Services上开发聊


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Dreamweaver CS6
Visual web development tools

ZendStudio 13.5.1 Mac
Powerful PHP integrated development environment

Atom editor mac version download
The most popular open source editor

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Safe Exam Browser
Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.
