精华内容
下载资源
问答
  • java插件

    千次阅读 2010-07-14 01:03:00
    eclipse rcp popup menu文章分类:Java编程在做RCP开发中遇到个问题,搞了大半天。代码贴出来: Java代码 view(视图) MenuManager menuManager = new MenuManager(); Menu menu = menuManager....

    eclipse rcp popup menu

    文章分类:Java编程

    在做RCP开发中遇到个问题,搞了大半天。代码贴出来:
    Java代码 复制代码
    1. view(视图)   
    2. MenuManager menuManager = new MenuManager();   
    3. Menu menu = menuManager.createContextMenu(viewer.getControl());   
    4. MenuItem item = new MenuItem (menu, SWT.PUSH);   
    5. item.setText ("Popup");   
    6. viewer.getControl().setMenu(menu);   
    7. getSite().registerContextMenu(menuManager, viewer);  
    
    view(视图)
    MenuManager menuManager = new MenuManager();
    Menu menu = menuManager.createContextMenu(viewer.getControl());
    MenuItem item = new MenuItem (menu, SWT.PUSH);
    item.setText ("Popup");
    viewer.getControl().setMenu(menu);
    getSite().registerContextMenu(menuManager, viewer);


    Java代码 复制代码
    1. plugin.xml   
    2. <menuContribution   
    3.             locationURI="popup:org.eclipse.ui.popup.any">   
    4.          <command   
    5.                commandId="com.ibm.de.eclipse.menu.command.viewCmd">   
    6.             <visibleWhen>   
    7.                <reference   
    8.                      definitionId="twoSelectedCheck">   
    9.                </reference>   
    10.             </visibleWhen>   
    11.          </command>   

     

     

     

    Java AWT: Popup Menu


    Popup menus (also known as "context menus") are now a very common UI element in modern GUIs (Win95, CDE, etc.). The AWT in 1.0 supports only Pulldown menus (menus which are always attached to a menubar or menu-item) and needs an API to allow Java programs to be able to easily create popup menus. The primary goal for this API is to make the creation and invocation of popups extremely easy in Java programs. Additionally, we want to ensure that popups are not tightly bound to a single component and can be easily reused both within , as well as across, containment hierarchies.

    Last Updated: February 3, 1997

    Purpose

     

     

    Popup Menu API

     

    The API consists of a new subclass of Menu:

    	java.awt.PopupMenu
    

    The main addition to this subclass is a method to invoke the popup:

    	public void show(Component origin, int x, int y)
    

    This method will invoke the popup at the x,y coordinate position relative to the component parameter (the intention is that all parameters can easily be extracted from a given mouse-down event object). Popup menus must have a valid "parent" component in order to be shown. This is to ensure that a popup menu can be instantiated and cached prior to being shown (to prevent any potential slow-down during the show operation, which from the user's perspective should happen simultaneously with the mouse event which triggered it). Popup menus can be attached-to/removed-from any component, using new methods in class java.awt.Component:

     

    Popup Menu Ownership

     

    	add(PopupMenu popup)
    
    	remove(MenuComponent popup)
    

    Note that a popup menu can only be owned by one component at a time.

    The "origin" parameter passed into the show() method can be any component contained within the containment hierarchy defined with the popup's parent as the root (it need not be the parent itself). This is particularly useful if you need to define a single popup for an entire window; you would attach the popup menu to the frame, but could invoke it in response to a mouse-down event on any component within that frame. The main issue with popup menus is defining an appropriate event trigger definition, as this varies slightly across the different platforms:

     

    Popup Event Trigger

     

    • In Windows, the menu is popped up on the mouse button *2* mouse UP.
    • In Motif, the menu is popped up on the mouse button *3* mouse DOWN (and it remains showing if the subsequent mouse UP happens within a small interval; else the menu is pulled down on the mouse DOWN)

    The API provides a platform-independent abstraction so a program can detect a popup-menu trigger event without hard-coding platform-specific event-handling logic in the program. This is accomplished by providing the following method on java.awt.event.MouseEvent:

    	public boolean isPopupTrigger()
    

     

    Event Model Issues

    The AWT's 1.0 event model has a limitation where menu events (the actions invoked when a menu item is selected) are not catchable in the menu itself, but must be caught on the parent frame. To work with the 1.0 event model, the popup menu events must be caught in the action() method of the component which owns it. Clearly this is not a desirable limitation for popup menus, as they are not designed to be tightly bound to a particular component. With the new 1.1 event model API, action listeners can be attached directly to the menu items themselves, alleviating this issue (See the AWT Delegation Event Model document for details). Following is a very simple sample program which shows the usage of this API using the 1.1 Delegation Event Model.

     

    Sample Code

     

        
        import java.awt.*;
        import java.applet.*;
        import java.awt.event.*;
    
        public class PopupMenuTest extends Applet implements ActionListener {
    
    	PopupMenu popup;
    
    	public void init() {	    
                MenuItem mi;
    
    	    popup = new PopupMenu("Edit");
    
                mi = new MenuItem("Cut");
                mi.addActionListener(this);
    	    popup.add(mi);
    
                mi = new MenuItem("Copy");
                mi.addActionListener(this);
    	    popup.add(mi);
    
    	    popup.addSeparator();
    
                mi = new MenuItem("Paste");
                mi.addActionListener(this);
    	    popup.add(mi);
    
    	    add(popup); // add popup menu to applet
               
                enableEvents(AWTEvent.MOUSE_EVENT_MASK); 
    
    	    resize(200, 200);
            }
    
    	public void processMouseEvent(MouseEvent e) {
    
    	    if (e.isPopupTrigger()) { 
    	        popup.show(e.getComponent(), e.getX(), e.getY());
    	    }
    	    super.processMouseEvent(e);
            }
    
            public void actionPerformed(ActionEvent e) {
    	    String command = e.getActionCommand();
    
                if (command.equals("Cut")) {
    	        // perform cut operation
                } else if (command.equals("Copy")) {
                    // perform copy operation
                } else if (command.equals("Paste")) {
                    // perform paste operation
                }
            }
        }
    
    
    Eclipse插件开发之新手入门
    huangdong.com
    2005-3-27 20:50:00 文/maven
    border="0" marginwidth="0" marginheight="0" src="http://dcdv1.it.com.cn/adsunion/get/;pl=pl-26-edu_art_zl;tp=if;sk=0;ck=0;/?" frameborder="0" noresize="noresize" width="550" scrolling="no" height="80">

      现在在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插件成功运行了。
     

     

     

     Eclipse由一个很小的核心和核心之上的大量插件组成。有些插件仅仅是供其它插件使用的库。其中存在很多你可以利用的工具。所有插件使用的基础库是:
      · 标准Widget工具包(SWT):Eclipse中处处使用的图形化组件:按钮,图像、光标、标签等等。布局管理类。通常这个库被用于代替Swing。
      · JFace:菜单、工具条、对话框、参数选择、字体、图像、文本文件的类和向导基类。
      · 插件开发环境(PDE):辅助数据操作、扩展、建立过程和向导的类。
      · Java开发者工具包(JDT):用于编程操作Java代码的类。
      上面的每一个类都有自己专有的功能,其中一些还可以单独使用(尽管它们内在地依赖于其它类)。例如,SWT不仅仅只用于插件;它还可以被用于建立非Eclipse的、独立的应用程序。还有一些其它的库没有被列举出来。
      图1显示了Eclipse不同层次之间的关系。

    图1:分层的类库
      安装GEF和Draw2D运行时
      在默认情况下,这两个面向对象的库(图形化编辑器框架组件GEF和Draw2D)是没有被安装的。在本文中我们需要利用它们,因此首先需要安装它们。你可以在GEF主页面下载GEF和Draw2D,下载3.0.1或以后版本,把文件保存为GEF-SDK-3.0.1.zip(5.5MB)。把这个文件解压到Eclipse文件夹下(这是包含plugins子文件夹的文件夹)。这两个库自身也是作为插件加进来的。
      这些库提供了什么样的功能?它们构成了建立图形化插件的基础。图形化插件通常显示一些对象(例如方框和标签,用线和箭头链接在一起)。这些对象和连接器的绘制都是由Draw2D来处理的。但是绘制过程仅仅是图形化编辑器实现的一半功能。另一半--编辑器命令、工具条、拖放功能、打印--由GEF来完成。
      配置PDE选项
      安装上述的各种部件之后,下一步就是定制或至少是熟悉插件配置选项。这些选项在菜单窗体 -> 选项的"插件开发"类别下选择。浏览一下插件用到的数以十计的配置选项。你可以特地看一下Target Environment(目标环境)类别。它允许我们选择默认的操作系统、视窗(windowing)系统、CPU架构和语言。
      我们感兴趣的还有Plug-in Development(插件开发)透视图(透视图是一组视图参数选择,包括面板、视图、工具条等等,根据不同的事务发生改变,可以把它看出Eclipse中的"模式")。通过选择菜单中的窗口-> 打开透视图 -> 其它,然后在列表中选择"插件开发"就可以看到它了。它与Java透视图相似,但是拥有一个插件视图,可以显示所有检测到的插件。图2显示了如何激活这个透视图,并显示了该透视图。

    图2:插件开发透视图
      建立一个简单插件
      建立插件最简单的办法是使用文件-> 新建->插件项目向导所提供的模板。接着输入一个项目名称(例如"Invokatron")。这是什么意思呢?我们将建立的插件是Invokatron,它是一个供Java代码使用的代码生成图形化编辑器。本文删除了Invokatron的路径,但是很明显这个雄心勃勃的项目直到下次安装时才会完成。
      在"下一步"页面上,除了类名之外其它的选项都不变,类名输入invokatron.InvokatronPlugin。在"插件内容"页面上,输入你认为适合的任何信息。在"模板"页面上,选中检查框以激活模板。我们可以在多个模板中进行选择:
      · Hello, World
      · 简单的XML编辑器
      · 多页面编辑器和向导
      · 透视图扩展
      · 弹出菜单
      · 属性页面
      · 视图
      · 拥有前面的一个或多个数据项的自定义插件
      对于本文的示例,我们使用自定义插件模板。选择"多页面编辑器"-"新建文件向导"-"属性"页面。在"下一步"页面输入下面一些值:
    "多页面编辑器"页面(图3所示):
      · Java程序包名称:invokatron.editor
      · 编辑器类名称:InvokatronEditor
      · 编辑器辅助类名称:InvokatronEditorContributor
      · 编辑器名称:Invokatron Editor
      · 文件扩展名:invokatron

    图3:"多页面编辑器"设置
      "新建向导"页面(图4所示):
      · Java程序包名称:invokatron.wizard
      · 向导类别ID:Invokatron
      · 向导类别名称:Invokatron Wizard
      · 向导类名称: InvokatronWizard
      · 向导页面类名称:InvokatronWizardPage
      · 向导名称:Invokatron Wizard
      · 文件扩展名: invokatron
      · 初始文件名: MyClass.invokatron

    图4:"新建向导"设置
      "属性"页面(图5所示):
      · Java程序包名称:invokatron.properties
      · 属性页面类: InvokatronPropertyPage
      · 属性页面名称:Invokatron Properties
      · 目标类:org.eclipse.core.resources.IFile
      · 文件名过滤器:*.*

    图5:"属性"页面设置
      这个时候Eclipse生成了大量的文件:
      · plugin.xml:描述该插件的主文件。它包含了辅助代码生成、库、插件依赖关系和扩展指向的一些信息。
      · build.properties:用于描述建立(build)过程的文件。它主要用于指定需要的库。
      · invokatron/*.java:插件类。
      · sample.gif:菜单项显示的图标。
      plugin.xml文件和build.properties一起被显示在多页面编辑器中。第一个页面("预览")允许你在测试环境中导出和运行该插件。"导出"的意思是通过生成一些代码、接着编译和打包来完善该插件。
      查看一下类,你会发现它实际上没有做什么操作。添加菜单选项的代码在哪儿呢?框架组件从plugin.xml文件包含的信息中简单地生成了必要的代码。你可以查看一下这个文件。它的最后一部分包含了一个扩展列表,这是这些类可以插入Eclipse的地方。
      上面过程中产生的项目是示例代码的一部分,你可以下载。
      运行和调试
      你可以在一个特殊的沙盒(sandbox)--运行时工作台(runtime workbench)中测试自己的插件。使用这种方式的时候,即使运行时工作台崩溃了,Eclipse仍然能够工作。通过点击"预览"页面上的"载入运行时工作台"或"在调试模式中载入运行时工作台"链接。第一次运行运行时工作台的时候,会建立eclipse untime-workbench-workspace文件夹。它会启动一个新的Eclipse实例,该实例与正常的Eclipse窗口非常相似(除了你的插件可以使用了之外)。
      但是你还是首先选择文件 -> 新建 -> 项目菜单和Java项目来建立一个Java项目。这个项目的名称叫做Test。图6显示了带有我们建立的向导和编辑器的运行时工作台。

    图6:运行该插件
      现在我们看一下Invokatron向导。从菜单文件->新建 -> 其它 可以看到它。查看类别Invokatron向导。选择Invokatron向导,接着点击"下一步"。这个向导会建立一个空的Invokatron文档。在Container(容器)字段中选择Test项目并点击"完成"。一个新的Invokatron编辑器显示出来了。这个编辑器有三个页面:一个文本编辑页面、一个属性页面(字体选择)和一个预览页面(排序的、用选择的字体绘制的)。
      支持文件
      你可以在很多位置指定自己的插件在编译和运行时所需要的文件。这使我们这些Eclipse用户感到很困惑。我们试图澄清这些问题。
      支持文件分为三类:
      1、来自插件代码自身的类和资源。它们在建立过程中就会被打包为一个或多个.jar文件。
      2、编译和运行插件所需要的类和资源。它们都应该被包含在类路径中,并且我们必须指明在导出的时候需要复制这些文件。
      3、与插件一起包含进来的文件(例如readme.txt文件)。它们不在类路径中。
      在插件编辑器的"建立(Build)"页面中可以设置编译环境。此外,这些设置会映射为build.properties文件。在第一次看到这个页面的时候我们可能会感到困惑,因为它有四个分开的部分:
      · 运行时信息:列出了生成的库文件(第1类文件)。通常,在一个库文件中包含了插件所需要的所有类,但是你可能希望把它分割成更小的块。
      · Source Build:列出应该被包含到.jar文件中的类文件(第1类文件的输入)
      · Binary Build:列出应该被复制到导出的插件文件夹或档案文件中的文件(第3类文件)。上面的选择框被选中的时候,生成的文件会被自动地包含进来。
      · 精确的类路径项:列出了在编译时刻你的应用程序所需要的.jar文件(第2类文件)。这些文件会被自动地添加到你的项目库中。我们通常容易犯的一个错误是在"属性"页面中的"Java建立路径"中和这个列表中同时包含了某个.jar文件。
      如果你的插件使用了某个特殊的库,就必须确保把这个库添加到项目中。接着把它添加到Source Build和精确的类路径项中。
      插件编辑器的其它一些重要的属性页面有:
      · 依赖关系(Dependencies):如果你的插件依赖于其它的插件,你就必须在这儿指定。
      · 运行时(Runtime):在这个属性页面中你可以为插件指定特殊行为。
      导出
      插件编码完成了,并且在工作台中测试过之后,就该准备部署到"真实的" Eclipse环境中了。要实现这个步骤,需要返回"预览"页面并点击"导出向导"链接。"导出选项"对话框允许你从三种部署类型中选择一个:
      · 目录结构:把文件部署到一个目录中供Eclipse立即使用。接着你可以把目标位置(Destination)设置为本地的Eclipse文件夹(例如c:deveclipse),直接地使用插件。
      · 单个.zip文件:相同的文件夹会被压缩为一个.zip文件,准备好发布给客户。接下来,你必须把这个文件解压到Eclipse最上层的文件夹来安装插件。你必须在文件名字段中指定.zip文件名。
      · 更新站点使用的独立.jar文档文件:产生一个与Eclipse用于自动更新系统相兼容的.jar文件。
      你点击"完成"之后,会生成我们选中的输出。如果你把输出作为目录结构,就必须重新启动Eclipse以激活该插件。
      查看示例和源代码
      关于如何编写Eclipse插件的最好信息来源是Eclipse所提供的插件示例集。如果我只能选择一个辅助自己编写插件的信息来源,我一定选择它。
      如果你要下载这些插件,只需要访问Eclipse下载页面并选择最新的版本。接着看这个页面的中间,有一个"示例插件",请下载这些.zip文件(小于2MB)。把这些文件解压到Eclipse所在的文件夹(例如c:dev)中。这个步骤会在eclipse/features和eclipse/plugins下建立很多文件夹。这些示例的源代码在C:deveclipseplugins文件夹的大量.zip文件中,如下所示:
    示例 代码位置SWT示例在org.eclipse.sdk.examples.source_3.0.1src...文件夹下独立的 · 地址薄
    · 剪贴板
    · 文件查看器
    · Hello World
    · 悬浮帮助
    · 图像分析器
    · Java语法查看器
    · 文本编辑器 ...org.eclipse.swt.examples_3.0.0swtexamplessrc.zip 与工作台集成的 · 浏览器...org.eclipse.swt.examples.browser_3.0.0 browserexamplesrc.zip· 控件 ...org.eclipse.swt.examples.controls_3.0.0controlssrc.zip· SWT载入程序...org.eclipse.swt.examples.launcher_3.0.0launchersrc.zip· 布局...org.eclipse.swt.examples.layouts_3.0.0layoutssrc.zip· 绘图...org.eclipse.swt.examples.paint_3.0.0paintsrc.zip· OLE 特殊文件夹:
    org.eclipse.sdk.examples.source.win32.win32.x86_3.0.1 srcorg.eclipse.swt.examples.ole.win32_3.0.0 olewin32src.zip工作台示例 · Java编辑器 ...org.eclipse.ui.examples.javaeditor_3.0.0 javaeditorexamplesrc.zip· 模板编辑器 ...org.eclipse.ui.examples.javaeditor_3.0.0 templateeditorexamplesrc.zip· 多页面编辑器...org.eclipse.ui.examples.multipageeditor_2.1.0< multipageeditorsrc.zip· 属性表...org.eclipse.ui.examples.propertysheet_2.1.0 propertysheetsrc.zip· Readme工具...org.eclipse.ui.examples.readmetool_2.1.0 eadmetoolsrc.zip帮助示例特殊文件夹:
    org.eclipse.help.examples.ex1_3.0.0(没有Java文件;HTML在doc.zip之中)Team示例 · 知识库提供程序
    · 同步共享 ...org.eclipse.team.examples.filesystem_3.0.0 teamfilesystemsrc.zip文件比较示例 · 结构比较...org.eclipse.compare.examples_3.0.0 compareexamplessrc.zip· XML比较 ...org.eclipse.compare.examples.xml_3.0.0 xmlcompareexamplessrc.zip  
      还存在一些GEF和Draw2D插件的有用示例。你可以访问GEF页面并下载最新版本。在版本发布页面中间有"GEF示例",请下载该.zip文件。在写作本文的时候,该文件是GEF-examples-3.0.1.zip(0.5MB)。把这个文件解压到Eclipse所在的文件夹中。你将看到下面两个示例:
    示例代码位置· 逻辑图表示例 org.eclipse.gef.examples.source_3.0.1src org.eclipse.gef.examples.logic_3.0.0logicsrc.zip· 流图表示例org.eclipse.gef.examples.source_3.0.1src org.eclipse.gef.examples.flow_3.0.1flowsrc.zip
      查找插件开发的信息
      你首先查看的位置应该是本文前面部分中的示例。其次还有帮助系统,它的质量也非常高。相关的内容还有:
      · 平台插件开发
      · JTD插件开发
      · PDE指导
      · Draw2D开发者指导
      · GEF开发者指导
      结论
      现在你已经有了建立Eclipse图形化插件的足够信息了。有了这么多类库的帮助,只有你的想象力会限制你的作为了。其秘诀在于你要知道自己能够使用那些工具,并且使用正确的工具完成适当的工作。
    本篇文章来源于 黑客基地-全球最大的中文黑客站 原文链接:http://www.hackbase.com/lib/2007-05-02/16449.html

    插件开发-如何运行java类

    (2008-02-02 09:35:39)
    标签:

    netbeans

    it

    分类:Netbeans 智囊团
    在插件开发中,想运行当前打开的java文件,但是搜索了提供的doc没有发现相关的action,在Execute包里,发现只能通过NbProcessDescriptor来自定义运行命令,很是麻烦。
    请问:netbeans系统自带的如何运行单个文件?我只知道它是调用ant来运行build-imp.xml里面的target。
     
    运行java文件的原理就是调用当前打开的java工程的build.xml文件,netbeans是按照ant来进行工程管理的。首先需要对ant有所熟悉。
    我的步骤是这样:首先根据当前打开的Node,获得它的DataObject,再获得FileObject,再获得工程,利用工程进行查找AntArtifactProvider,通过它获得AntArtifact。然后调用ActionUtils.runTarget运行指定的Target,代码如下:

    protected void performAction(Node[] activatedNodes) {
            Node activetedNode = activatedNodes[0];
          DataObject dataObject = (DataObject)activetedNode.getLookup().lookup(DataObject.class);
            FileObject fileObject = dataObject.getPrimaryFile();
            JavaDataObject jdo = (JavaDataObject)dataObject;
            SourceElement src  = jdo.getSource();
            
            Project project = FileOwnerQuery.getOwner(fileObject);
            AntArtifactProvider provider = (AntArtifactProvider)project.getLookup().lookup(AntArtifactProvider.class);
            AntArtifact[] antArtifacts = provider.getBuildArtifacts();
            try {
                Properties prop = new Properties();            
                prop.put("main.class",src.getClasses()[0].getVMName()); //main-class
                prop.put("application.args","arg1 arg2 arg3"); //argument
                prop.put("run.jvmargs","-Xms10m"); //java vm-option
                prop.put("work.dir","workdir"); //work-dir
                ExecutorTask  task = ActionUtils.runTarget(antArtifacts[0].getScriptFile(),new String[]{"run"},prop);
                InputOutput io = task.getInputOutput();
                io.select();
                OutputWriter writer = io.getOut();
                writer.println("run success!!!!");
            } catch (IllegalArgumentException ex) {
                ex.printStackTrace();
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }

     

    【Eclipse插件开发】Java基本类加载原理 VS 插件类加载原理

                标题说明了一切,我想说的就是如果你在做Eclipse插件开发,想真正搞清楚Eclipse插件类加载,那么Java基本类加载原理是基础,无法逾越!!!我会举一个小例子来简单说明一下
                
            【情景】
              例如我们在底层模块插件(就叫做Host)中做了一个解析器实现(什么解析器就别管了),对应类型为IParser(com.my.host.parser.IParser),简单定义如下:
    1 public interface IParser {
    2     public Object parse(Object input) throws CoreException;
    3 }
             
            基本的原则告诉我们:如果一个实例的创建过程较为负责,则因该把这种实例的创建和实例的使用解耦合。于是,我们在Host插件中提供了一个如下的工厂类:
     1 public class ParserFactory {
     2     /**
     3      * create IParser instance
     4      * 
     5      * @param clazz  qualified parser type name
     6      * @return
     7      * @throws CoreException
     8      */
     9     public static IParser createParser(String clazz) throws CoreException{
    10         try {
    11             Object object = Class.forName(clazz).newInstance();
    12             if (object instanceof IParser)
    13                 return (IParser)object;
    14             
    15             return null;
    16         } catch (Exception e) {
    17             throw new CoreException(new Status(IStatus.ERROR, "host"101"创建工厂失败:" + clazz, e));
    18         }
    19     }
    20     
    21     /**
    22      * create IParser instance with corresponding class loader
    23      * 
    24      * @param clazz         qualified parser type name
    25      * @param classLoader   corresponding class loader
    26      * @return
    27      * @throws CoreException
    28      */
    29     public static IParser createParser(String clazz, ClassLoader classLoader) throws CoreException{
    30         try {
    31             Object object = classLoader.loadClass(clazz);
    32             if (object instanceof IParser)
    33                 return (IParser)object;
    34             
    35             return null;
    36         } catch (Exception e) {
    37             throw new CoreException(new Status(IStatus.ERROR, "host"101"创建工厂失败:" + clazz, e));
    38         }
    39     }
    40 }
    41 
            这里的简单工厂中创建方法返回的是IParser接口类型,目的就是为了保证可以创建子类型的灵活性,同时确保对外提供的接口是一致的,有助于客户端基于接口编程(说的有点上纲上线了~_~)

            同时我们在Host插件中,也提供了一个默认的IParser实现,就叫做DefaultParser吧。那到这里我们的Host插件共提供了如下类型:
            com.my.host.parser.IParser                     解析器接口定义
            com.my.host.parser.ParserFactory          解析器工厂
            com.my.host.parser.impl.DefaultParser    解析器接口默认实现

            下面我们在Host插件的基础之上建立了上层功能插件(就叫做Extension插件吧,Extension插件依赖于Host插件),提供了解析器实现,对应类型为com.my.extension.parser.MyParserImpl。我们在Extension插件中想使用这个实现,假设有如下几种中创建方式:
    第一种:直接创建实例,偏不用你Host中的工厂。 俗了点,但是没问题。
     1 package com.my.extension.model;
     2 
     3 public class Customer {
     4     public void doOperation(Object input) throws CoreException{
     5         //直接创建实例的方式
     6         IParser parser = new MyParserImpl();
     7         
     8         Object model = parser.parse(input);
     9         //TODO 拿到模型之后干其他活
    10     }
    11 }

    第二种,直接使用Class.forName(),还是不用你Host中的工厂。也是俗了点,但也没问题,为什么没问题,可能就没有想清楚了~_~
     1 package com.my.extension.model;
     2 
     3 public class Customer {
     4     public void doOperation(Object input) throws CoreException{
     5         try {
     6             //使用默认的Class.forName()的方式
     7             IParser parser = (IParser)Class.forName("com.my.extension.parser.MyParserImpl").newInstance();
     8             
     9             Object model = parser.parse(input);
    10             //TODO 拿到模型之后干其他活
    11         } catch (Exception e) {
    12             // TODO: handle exception
    13         }
    14         
    15     }
    16 }

    第三种:用一把工厂 ---》》ClassNotFoundException
     1 package com.my.extension.model;
     2 
     3 public class Customer {
     4     public void doOperation(Object input) throws CoreException{
     5         //使用工厂,不指定类加载器
     6         IParser parser = ParserFactory.createParser("com.my.extension.parser.MyParserImpl");
     7         
     8         Object model = parser.parse(input);
     9         //TODO 拿到模型之后干其他活
    10     }
    11 }
    疑惑了:第二种使用方式为什么没问题,第三种怎么就有问题了?代码实现中都是Class.forName("").newInstance();调用啊???

    大致错误原因:
            这个时候如果你只基本熟悉Eclipse的插件类加载机制(会去找所依赖的插件中的类型...),可能一时半会想不清楚。Java的类加载基本原理中有一条:Class.forName()调用方式加载类型所默认使用的类加载器实例是加载当前类型的类加载器。对于在Extension插件Customer中调用Class.forName()使用的是加载Customer类型的类加载器,也就是Extension插件的唯一类加载器;对于在Host插件中的ParserFactory中调用Class.forName()则使用的加载ParserFactory类型的类加载器实例,也就是Host插件的唯一类加载器。你想让Host插件类加载器去加载一个在Extension插件中定义的类型,注意Extension插件是依赖于Host插件的啊,根据Eclipse插件类记载规则,这种加载请求无法从Host插件类加载器委托到Extension类加载器(说明:使用扩展点机制可以,extension registry会帮你委托这一个请求,找到对应的BundleHost...)。如果你想让Extension插件的类加载器去加载Host中定义的切export出来的类型,Extension插件的类加载器会把这个请求合理的委托给Host插件类加载器。


    第四种:用一把工厂,指定类加载器。由于com.my.extension.parser.MyParserImpl本身就和Customer定义在同一插件中,所以公用同一插件类加载器实例,两者对于Extension插件来说都是local class,加载肯定没问题。
     1 package com.my.extension.model;
     2 
     3 public class Customer {
     4     public void doOperation(Object input) throws CoreException{
     5         //使用工厂,指定类加载器
     6         IParser parser = ParserFactory.createParser("com.my.extension.parser.MyParserImpl"this.getClass().getClassLoader());
     7         
     8         Object model = parser.parse(input);
     9         //TODO 拿到模型之后干其他活
    10     }
    11 }

    以上是举了一个小例子,仅仅是为了说明一个道理:掌握Java类加载基本原理是掌握Eclipse插件类加载原理的基础,不可逾越!!!如果让你在一个插件应用中写一个较为负责的自定义类加载器,但靠背一点Eclipse类加载的规则,那更不够了...

    Java类加载基本原理还有很多,我博客中有随笔(老早之前写的,土了点,头一段时间贴到了博客上了)。

    Java基本类加载原理 VS 插件类加载原理(1)
    文章发布人gxy  共46人阅读  文字大小:[ ]  文字背景色杏仁黄 秋叶褐 芥末绿 灰 白

      标题说明了一切,我想说的就是如果你在做Eclipse插件开发,想真正搞清楚Eclipse插件类加载,那么Java基本类加载原理是基础,无法逾越!!!我会举一个小例子来简单说明一下

      【情景】

      例如我们在底层模块插件(就叫做Host)中做了一个解析器实现(什么解析器就别管了),对应类型为IParser(com.my.host.parser.IParser),简单定义如下:

    1 public interface IParser {
    2   public Object parse(Object input) throws CoreException;
    3 }    
        基本的原则告诉我们:如果一个实例的创建过程较为负责,则因该把这种实例的创建和实例的使用解耦合。于是,我们在Host插件中提供了一个如下的工厂类:
    1 public class ParserFactory {
    2   /**
    3   * create IParser instance
    4   *
    5   * @param clazz qualified parser type name
    6   * @return
    7   * @throws CoreException
    8   */
    9   public static IParser createParser(String clazz) throws CoreException{
    10     try {
    11       Object object = Class.forName(clazz).newInstance();
    12       if (object instanceof IParser)
    13         return (IParser)object;
    14      
    15       return null;
    16     } catch (Exception e) {
    17       throw new CoreException(new Status(IStatus.ERROR, "host", 101, "创建工厂失败:" + clazz, e));
    18     }
    19   }
    20  
    21   /**
    22   * create IParser instance with corresponding class loader
    23   *
    24   * @param clazz     qualified parser type name
    25   * @param classLoader  corresponding class loader
    26   * @return
    27   * @throws CoreException
    28   */
    29   public static IParser createParser(String clazz, ClassLoader classLoader) throws CoreException{
    30     try {
    31       Object object = classLoader.loadClass(clazz);

    32       if (object instanceof IParser)
    33         return (IParser)object;
    34      
    35       return null;
    36     } catch (Exception e) {
    37       throw new CoreException(new Status(IStatus.ERROR, "host", 101, "创建工厂失败:" + clazz, e));
    38     }
    39   }
    40 }
    41    

     

    对eclipse功能的一些扩展方式 收藏
    今天看了一点有关于java插件开发方面的东西,写一点点感想吧。

    eclipse体系本身就是一个以一内核为基础,然后再由很多插件组成的一个体系。所以有了eclipse的原有内容,我们就能够在其基础上进行仅我们需要的开发了。比如说一个大纲视图就是一个插件,一个搜索功能也就是一个插件,但是这些功能仅仅是eclipse上的,并不同于我们所需要的应用程序。而eclipse的架构非常好,每一个插件都是一个扩展点,而同时往往也是对其他插件的一个扩展,所以使得无数程序员可以在其上面进行扩展,而扩展成的成品也就是插件。对eclipse体系进行功能扩展的过程其实也就是插件开发。

    现在讲讲我今天学到的一点点东西。其实也很简单。既然eclipse的每一个功能是一个插件,就意味着每一个功能都可以扩展。比如你要添加一个视图(eclipse现存的视图有控制台视图、大纲视图、错误日志视图等等),那么你就可以扩展org.eclipse.ui.views插件;如果你要在菜单栏上添加一个动作集,那么就可以扩展org.eclipes.ui.actionSets插件;如果要在某个对象或者某个视图右击的菜单上添加某功能,那么就可以扩展org.eclipse.popupMenus插件。后面还有键绑定的操作,我先把这里的扩展讲完。

    在eclipse中如果要对某一项右键之后的菜单进行添加,那么就需要对org.eclipse.popupMenus进行扩展,这只要在extension里面添加一个这样的插件就可以。然后再对这个插件扩展一个objectContribution.接下去就是一系列设置了。设置完车之后再写一个类来执行所要做得操作就可以。具体的plugin.xml的写法如下:

    <extension
             point="org.eclipse.ui.popupMenus">
          <objectContribution
                adaptable="false"
                id="com.plugindev.addressbook.example.objectActionTest"
                nameFilter="Three"
                objectClass="java.lang.String">
             <menu
                   id="exampleMenu"
                   label="示例菜单"
                   path="additions">
                <separator
                      name="example">
                </separator>
             </menu>
             <action
                   class="com.plugindev.addressbook.example.ObjExampleAction"
                   enablesFor="1"
                   id="com.plugindev.addressbook.objExampleAction"
                   label="对象示例操作"
                   menubarPath="exampleMenu/additions"
                   tooltip="举例说明如何添加对象操作">
             </action>
          </objectContribution>
        
         
          <viewerContribution
                id="com.plugindev.addressbook.example.viewerActionTest"
                targetID="#TextEditorContext">
             <menu
                   id="ViewToolbarMenu"
                   label="示例工具栏菜单"
                   path="additions">
                <separator
                      name="example">
                </separator>
             </menu>
             <action
                   class="com.plugindev.addressbook.example.ViewerExampleAction"
                   enablesFor="+"
                   id="com.plugindev.addressbook.viewerExampleAction"
                   label="查看器示例操作"
                   menubarPath="ViewToolbarMenu/addition"
                   style="push"
                   tooltip="举例说明如何添加查看器操作">
             </action>
            
          </viewerContribution>
       </extension>

    上面还有一个viewerContribution,这个也就是对右键某一个视图弹出的菜单的扩展,可以看到,这个也是扩展了org.eclipse.ui.popupMenus这一插件的。

    之后的根据所需对象的不同可以对xml文件的属性进行配置,结果便可以让eclipse根据xml文件进行对图形界面的生成。

     

    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/llmhyy1/archive/2010/02/25/5326830.aspx

    展开全文
  • 安装完jdk之后,打开java控制版面如图所示![](C:\Users\JC\Desktop\1.PNG),不能选择安全等级。打开某个浏览器页面还是提醒要安装java插件,是怎么回事?
  • java按钮禁用和启用 The Java plugin is part of the Java Runtime Environment (JRE) and allows a browser to work with the Java platform to run Java applets to ... Java插件是Java运行时环境(JRE)的一部分...

    java按钮禁用和启用

    The Java plugin is part of the Java Runtime Environment (JRE) and allows a browser to work with the Java platform to run Java applets to execute in the browser.

    Java插件是Java运行时环境(JRE)的一部分 ,它允许浏览器与Java平台一起运行Java小应用程序,以便在浏览器中执行。

    The Java plugin is enabled in a large number of browsers around the world and this makes it a target for malicious hackers. Any popular third-party plugin is subjected to the same kind of unwanted attention. The team behind Java have always taken security seriously and they will endeavor to quickly release an update to patch any serious security vulnerabilities found. This means the best way to minimize problems with the Java plugin is to make sure it is up-to-date with the latest release.

    Java插件已在世界各地的众多浏览器中启用,这使其成为恶意黑客的目标。 任何流行的第三方插件都会受到相同程度的不必要关注。 Java背后的团队一直非常重视安全性,他们将努力快速发布更新以修补发现的任何严重的安全漏洞。 这意味着最小化Java插件问题的最佳方法是确保它是最新版本。

    If you are really worried about the security of the Java plugin but still need to visit a popular website (e.g., online banking in some countries) that need the Java plugin enabled, then consider the two browser trick. You can use one browser (e.g., Internet Explorer) only when you want to use the websites using the Java plugin. For the rest of the time use another browser, (e.g., Firefox) with the Java plugin disabled.

    如果您真的担心Java插件的安全性,但是仍然需要访问需要启用Java插件的受欢迎的网站(例如,某些国家的在线银行),请考虑使用两种浏览器技巧。 仅当您想使用使用Java插件的网站时,才可以使用一个浏览器(例如Internet Explorer)。 在其余时间中,使用禁用了Java插件的其他浏览器(例如Firefox)。

    Alternatively, you might find that you don't go to websites that use Java very often. In this case, you may prefer the option of disabling and enabling the Java plugin as needed. The instructions below will help you to set up your browser to disable (or enable) the Java plugin.

    另外,您可能会发现您不经常访问使用Java的网站。 在这种情况下,您可能希望根据需要选择禁用和启用Java插件的选项。 以下说明将帮助您设置浏览器以禁用(或启用)Java插件。

    火狐浏览器 ( Firefox )

    To turn on/turn off Java applets in the Firefox browser:

    要在Firefox浏览器中打开/关闭Java小程序,请执行以下操作:

    1. Select Tools -> Add-ons from the menu toolbar.

      从菜单工具栏中选择工具->附加组件

    2. The Add-ons Manager window appears. Click on Plugins on the left-hand side.

      出现“ 加载项管理器”窗口。 单击左侧的插件。

    3. In the list on the right select, the Java Plugin - the name of the plugin will vary depending on whether you are a Mac OS X or Windows user. On the Mac, it will be called Java Plug-in 2 for NPAPI Browsers or Java Applet Plug-in (depending on the operating system version). On Windows, it will be called Java (TM) Platform.

      在右侧选择的列表中,“ Java插件”-插件的名称将根据您是Mac OS X还是Windows用户而有所不同。 在Mac上,它将称为NPAPI浏览器的Java插件2Java Applet插件 (取决于操作系统版本)。 在Windows上,它将称为Java(TM)Platform

    4. The button to the right of the selected plugin can be used to enable or disable the plugin.

      所选插件右侧的按钮可用于启用或禁用插件。

    IE浏览器 ( Internet Explorer )

    To enable/disable Java in the Internet Explorer browser:

    要在Internet Explorer浏览器中启用/禁用Java:

    1. Select Tools -> Internet Options from the menu toolbar.

      从菜单工具栏中选择工具-> Internet选项

    2. Click on the Security tab.

      单击安全选项卡。

    3. Click on the Custom level.. button.

      单击自定义级别..按钮。

    4. In the Security Settings window scroll down the list until you see Scripting of Java applets.

      在“ 安全设置”窗口中,向下滚动列表,直到看到Java小程序脚本

    5. Java applets are Enabled or Disabled depending on which radio button is checked. Click on the option you want and then click OK to save the change.

      根据选中的单选按钮,可以启用禁用 Java小程序。 单击所需的选项,然后单击确定以保存更改。

    苹果浏览器 ( Safari )

    To enable/disable Java in the Safari browser:

    要在Safari浏览器中启用/禁用Java:

    1. Select Safari -> Preferences from the menu toolbar.

      从菜单工具栏中选择Safari->首选项

    2. In the preferences, window click on the Security icon.

      在首选项中,单击“ 安全性”图标。

    3. Make sure the Enable Java checkbox is checked if you want Java enabled or unchecked if you want it disabled.

      如果要启用Java,请确保选中了“ 启用Java”复选框;如果要禁用Java,请确保未选中。

    4. Close the preferences window and the change will be saved.

      关闭首选项窗口,更改将被保存。

    Chrome ( Chrome )

    To turn on/turn off Java applets in the Chrome browser:

    要在Chrome浏览器中打开/关闭Java小程序,请执行以下操作:

    1. Click on the wrench icon to the right of the address bar and choose Settings.

      点击地址栏右侧的扳手图标,然后选择设置

    2. At the bottom click the link called Show advanced settings...

      在底部单击名为显示高级设置...的链接

    3. Under the Privacy, section click on Content settings...

      在“隐私”下,单击“ 内容设置...”。

    4. Scroll down to the Plug-ins section and click on Disable individual plug-ins.

      向下滚动至“ 插件”部分,然后单击“ 禁用单个插件”

    5. Look for the Java plugin and click on the Disable link to turn off or the Enable link to turn on.

      查找Java插件,然后单击“ 禁用”链接关闭或“ 启用”链接打开。

    歌剧 ( Opera )

    To enable/disable the Java plugin in the Opera browser:

    要在Opera浏览器中启用/禁用Java插件,请执行以下操作:

    1. In the address bar type in "opera:plugins" and hit enter. This will display all the installed plugins.

      在地址栏中输入“ opera:plugins”,然后按Enter。 这将显示所有已安装的插件。

    2. Scroll down to the Java plugin and click on Disable to turn off the plugin or Enable to turn it on.

      向下滚动到Java插件,然后单击“ 禁用”以关闭该插件或单击“ 启用”以将其打开。

    翻译自: https://www.thoughtco.com/disabling-or-enabling-the-java-plugin-in-a-browser-2034111

    java按钮禁用和启用

    展开全文
  • 1、火狐添加java 插件 我的jdk是1.7版本在/home/lzhprogram/java目录 火狐插件文件夹在/usr/user/mozija/plugins 使用如下软链接即可给火狐添加插件  ln -s /home/lzh/program/java/jdk1.7.0_79/jre/lib/amd...

    1、火狐添加java 插件

    我的jdk是1.7版本在/home/lzhprogram/java目录

    火狐插件文件夹在/usr/user/mozija/plugins

    使用如下软链接即可给火狐添加插件

     ln -s /home/lzh/program/java/jdk1.7.0_79/jre/lib/amd64/libnpjp2.so /usr/lib/mozilla/plugins/


    2、问题来了,新版本的火狐强制阻止了低版本的java插件运行,所以还需要做如下配置

    在Firefox的地址栏输入 about:config
    找到 extensions.blocklist.enabled 这个选项,将值设为 false。


    3、访问某些网站还可能有如下提示,您的安全设置已阻止自签名的应用程序运行。

    这是java的安全设置级别太高导致的,需要给添加例外站点或者调整安全级别。

    linux下可以使用javaws -viewer打开java控制面板

    展开全文
  • 摘要: 解决新版sonar-java插件,尤其是4.12以后的soanr-java分析插件,在分析的时候提示Please provide compiled classes of your project with sonar.java.binaries property的问题最近在新的docker容器上部署了...
    摘要: 解决新版sonar-java插件,尤其是4.12以后的soanr-java分析插件,在分析的时候提示Please provide compiled classes of your project with sonar.java.binaries property的问题

    最近在新的docker容器上部署了sonarqube,然后在更新中心安装了java插件后,使用以前的命令分析java源码的时候出现了以下问题

    ERROR: Error during SonarQube Scanner execution
    org.sonar.squidbridge.api.AnalysisException: Please provide compiled classes of your project with sonar.java.binaries property

    命令如下

    sonar-scanner -Dsonar.projectKey=test -Dsonar.projectName=test -Dsonar.projectVersion=1.0 -Dsonar.sources=src -Dsonar.language=java

    源码是在src下面的,以往来说都可以直接分析成功,但是这次提示了错误。
    于是去官网看了一下

    https://docs.sonarqube.org/display/PLUG/SonarJava

    说是需要额外的参数,编译后的字节码,目前来说配置这个极为麻烦,尤其是有些源码暂时不需要编译的

    于是在官网找到下载soanr-java插件链接:

    https://sonarsource.bintray.com/Distribution/sonar-java-plugin/sonar-java-plugin-4.12.0.11033.jar

    但是4.12不是我们想要的版本,而且又没有历史版本的下载链接,怎么办呢?
    上github找到其它的版本。

    然后替换链接版本编号部分,尝试下载成功
    https://sonarsource.bintray.com/Distribution/sonar-java-plugin/sonar-java-plugin-4.10.0.10260.jar
    然后进入到容器里面,把plugins下面的新版的4.12版本的sonar-java替换成4.10版本的。

    重启sonaqube,大功告成,按照原来的命令分析成功!

    展开全文
  • gradle学习(20)-详解java插件

    万次阅读 2015-01-13 19:57:53
    1.使用 ...java插件引入了sourceset这个概念,sourceset将编译时和执行时所要用到的source文件组合在一起,其中包含java的源文件和资源文件,有的插件还包括了groovy和Scala资源文件,sourceset
  • firefox 火狐浏览器安装java插件

    万次阅读 2017-03-16 16:15:04
    由于工作中用到决策引擎产品 FICO Blaze ,该产品展示决策流,决策树,决策表等组件是依托的applet ,需要浏览器启用java插件。经常碰到明明电脑上装了java 但是浏览器的附加组件中却没有显示,经过一下午的折腾发现了...
  • Gradle 第五讲 之 java插件的使用

    千次阅读 2015-12-02 10:39:31
    在完成前面几讲之后,后面的貌似就没有那么轻松了,本讲讲结合java插件来介绍gradle在java中的使用 1.添加java插件 2.添加依赖仓库 3.添加编译引用 4.添加自定义jar包的引用 5.定制MANIFEST.MF文件 1.添加java插件...
  • java插件化开发

    千次阅读 2018-11-12 15:09:27
    我开始想一想什么是java常用的插件化开发、在我的印象中jpa等算是一种吧,那么接下来我们将开始总结一下java开发有哪些插件。 一、Small 一个小框架,将应用程序分成小部分 地址: http://code.wequick.net/Small...
  • Java 插件向一个项目添加了 Java 编译、 测试和 bundling 的能力。它是很多其他 Gradle 插件的基础服务。 23.1. 用法 要使用 Java 插件,请在构建脚本中加入: 示例 23.1. 使用 Java 插件 build.gradle apply ...
  • 使用QTP进行Java插件环境搭建

    千次阅读 2017-05-19 16:24:04
    QTP是Quick Test Professional的简称,目前成为UFT(Unified Functional Testing),是HP旗下的UI自动化利器,市场占有率非常高。本文对QTP的安装过程进行说明,使用的是11.5 试用版,操作系统为...3、选择Java插件
  • Jeecg-P3 1.0版本发布,JAVA插件开发框架,特点:业务组件以JAR方式提供,插件模式、松耦合、可插拔、支持独立部署,也可以无缝集成Jeecg平台中。
  • Java插件安装说明 正常情况浏览器自动检测提示安装插件,只需按照浏览器提示一步步默认安装Java插件即可; 如果出现浏览器无提示或无法自动安装,可自行访问Oracle JDK 7手工下载安装Java运行环境 提示:以下文档...
  • jmeter - 开发java插件,进行测试

    千次阅读 2015-10-29 10:56:00
    开发jmeter的java插件需要引入两个包"ApacheJMeter_core.jar"和"ApacheJMeter_java.jar",位于Jmeter的安装目录lib/ext 下 在java工程中,导入这两个包 2.开发步骤 jmeter插件需要继承 AbstractJavaSamplerClient,...
  • ubuntu中chrome开启java插件

    千次阅读 2013-05-26 18:28:54
    ubuntu中的chrome默认是没有java插件的,需要自己从网上下载。  首先从网上下载jdk或者jre:http://www.oracle.com/technetwork/java/javase/downloads/index.html  下载后解压,然后按照下图的命令进行插件的...
  • WindowsMobile系统管理java插件

    千次阅读 2009-11-20 17:03:00
    WindowsMobile系统无法直接管理JAVA插件,需要借助JAVA虚拟机来管理JAVA插件,WM平台常见的JAVA虚拟机有Jbed和Jblend。下面就WM平台管理JAVA插件做简要介绍。1、JbedEsmertec公司的产品,外部命令管理方式为:安装:...
  • 集成Slice2Java插件

    千次阅读 2012-04-19 10:13:10
    注意Slice2Java插件只能集成到Eclipse中,不能集成到MyEclipse中,具体原因不详 下面是具体操作步骤: 在Eclipse操作界面,点击Help -> install new software,然后弹出一个窗口,如下图所示: 点击上图中的Add...
  • linux系统中firefox安装java插件

    千次阅读 2013-04-12 15:27:30
    1、下载java插件,...2、安装java插件,比如目录为:/home/Java/jre1.6.0_43 3、转至 Firefox 安装目录下的 plugins 子目录  cd /usr/lib/plugins 4、将jre的两个so文件进行符号连接  ln -s /home/Java/
  • firefox安装java插件

    千次阅读 2019-06-17 15:40:21
    将C:\Program Files (x86)\Java\jre6\bin\new_plugin\npjp2.dll复制粘贴到firefox的插件安装目录下
  • Ubuntu下浏览器Java插件安装及启用

    千次阅读 2014-01-10 22:21:19
    开发zedborad的过程中需要查看摄像头传到网页上的视频信息,但是浏览器因缺少JAVA插件问题无法查看 点击“安装插件...”,此时弹出java的下载页面: 点击红色按钮“免费Java下载”,跳转到操作系统选择页面: ...
  • 1.这是因为登录服务器需要能运行java插件的java运行环境,所以你本地pc需要安装java的JDK或者JRE。 2.安装后还是因为java环境支持问题的话,再试试设置:控制面板—查看方式大(或小)图标—java—安全—“例外站点...
  • ubuntu 中firefox 安装Java插件

    千次阅读 2011-09-13 22:34:53
    在Ubuntu中给firefox安装Java插件时新建连接文件后在firefox的插件管理器中看不到java的连接文件,这时候需要手动添加 命令为: sudo update-alternatives --install /usr/lib/mozilla/plugins/moz
  • Ubuntu下为firefox&chrome安装Java插件

    千次阅读 2013-05-20 17:49:39
    Ubuntu下安装Java插件 from: http://www.googies.info/blog/15.html  最近在Linux下用到了Java Applet。默认情况下,Firefox和Google Chrome for Linux都没有安装Java插件。需要自己手动安装。  首先,...
  • QTP添加java插件

    千次阅读 2014-01-06 11:18:19
    **插件java步骤: 1、打开注册表 (开始>运行>regedit) 2、找到 HKEY_LOCAL_MACHINE\SOFTWARE\MercuryInteractive\QuickTestProfessional\Add-InManager\Java 将名称为“默认”的键值修改为 QTCoreAddin  再...
  • 如何在 Firefox 浏览器安装 java 插件

    千次阅读 2012-09-04 15:15:10
    第一次写博客文章,写的不好,请见谅,如有错误,请指正。... 如何在 Firefox 浏览器安装 java 插件 1.去官网下载 jre 的程序,例如:jre-7u4-linux-x64.rpm 2.安装 jre:rpm -ivh 3.cd jre-7...
  • Ubuntu12.04下为Chrome安装java插件

    千次阅读 2012-08-07 11:55:58
    最近看网页发现我的chrome没有java插件,但是我已经在系统里自己完全安装了jdk1.7了,自然包括jre,不知道怎么让chrome识别我的jre。google半天,总算弄成了。记录一下。 1、到chrome安装目录下,可以用whereis命令...
  • 我用notepad++配置java环境时为什么会出现这样??环境变量也配了,命令端可以运行到Notepad就不行了 CD: F:\ Current directory: F:\ java Hello Process started >>> Error: opening registry key 'Software\...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 44,469
精华内容 17,787
关键字:

java插件

java 订阅