easyUML - plugin detail

easyUML is a UML diagram tool for NetBeans that provides features to easily create and work with UML diagrams. Currently it supports only class diagrams providing drag-and-drop visual editor for diagram drawing, Java code generation from diagrams and 'reverse engineering' to create class diagrams from Java code. It is very suitable for teaching software design.

NetBeans Plugin - easyUML
Plugin owner: sevarac
Website: https://java.net/projects/nb-uml-plugin
Added: 2014-07-13
License: Apache 2.0
Category: Modeling
Downloaded: 56,357 times
 4.11, by 6 users

Plugin Log Show log

Versions available

Download plugin   Download size: 1.26 MB   Last Update: 2016-02-25

This plugin is also available on the NetBeans Plugin Portal Update Center. Use 'Tools > Plugins' action from the NetBeans IDE main menu for convenient installation of this plugin

What's new in this version

Version 1.3
Added support for NetBeans 8.1

Please report potential bugs in the comments or send an e-mail to perovic@netbeans.org. For the fastest resolution, please include a detailed description and if possible the problematic diagram / java file.

Verifications for NetBeans versions

8.1 verification PASSED See verification details
Download plugin   Download size: 1.26 MB   Last Update: 2015-09-15

This plugin is also available on the NetBeans Plugin Portal Update Center. Use 'Tools > Plugins' action from the NetBeans IDE main menu for convenient installation of this plugin

What's new in this version

Version 1.2.2
Fixed bug "Component **** already exists in package ???".

Version 1.2.1
Fixed incorrect Has / Use relationships creation.

Version 1.2
Added support for Java 8 code parsing and generation.
Enabled generating code to Maven projects.

Version 1.1.1
Linux path bugfix. Descriptive warning dialogs when unable to generate code or reverse engineer (no Java or UML project open).

Version 1.1
Numerous improvements and fixes.

Fixed IndexOutOfBounds bug when loading a .cdg file containing a class with several constructors.
Reverse Engineering action enabled for packages and Maven projects.
Color themes added (right-click on the scene->Change theme). More themes and custom themes available soon.
Save-as action enabled and will be further refined (currently window of the old file stays open and the new saved file needs to be opened manually).
Fixed the bug with palette receiving keyboard events when class diagram scene is focused.
Signed the plugin.
Explorer-scene two-way selection refined.
Added tooltips to palette.

Relations: Has (default) relation added. New relation icons.
Visual: Minimum size of widgets set to title only. "Click to add member" functionality.

Code generation enabled. No comments generation.

Enabled adding multiple constructors. Explorer window properly updating when component is added to the diagram.

Bugfix: properties window losing focus.

Many improvements, including:
- enabled diagram saving
- refined Visual Editor and relations drawing
- added Properties window
- two-way selection between Explorer and Visual Editor
- reworked Reverse Engineering

Verifications for NetBeans versions

8.0 verification PASSED See verification details


easyUML is a UML diagram tool for NetBeans that provides features to easily create and work with UML diagrams. Currently it supports only class diagrams providing drag-and-drop visual editor for diagram drawing, Java code generation from diagrams and 'reverse engineering' to create class diagrams from Java code. It is very suitable for teaching software design.

[ You have to be logged in to be able to comment. ]

User Comments


Netbeans 8.2?

Could this be updated for Netbeans 8.2, and appear in the update center?
Posted by ariddlestone on Jan 26, 2017


For those who want to import CDG files into yEd, there is XSLT for it:
Posted by russkiy on Nov 12, 2016


Is it possible to move the code to github?
Posted by ChrisLE on Mar 01, 2016

Doesn't make sense to have a UML project

I don't have any cases, only fantasy, but for me it doesn't make sense to have a separate project, because the UML diagrams are part of a Java Project and I don't want to separate it from this project. Is there a case why I have to do that?

If you have a look to the NbMindMap plugin, each project, has a new folder called knowledge and there you have your mind map files, which would be nice to have the same for UML diagrams. So a new folder called UML Diagrams and inside of this, you only have your UML files.
Posted by ChrisLE on Feb 25, 2016

After deleting class from the uml explorer

I don't see any new classes inside the explorer, which I have created. I opened the designer for the first time, the explorer opens too, I created a class, I see the class inside the explorer. I delete the class in the designer, the class was removed from the explorer. After I create a new one, this class is never shown inside the explorer.
Posted by ChrisLE on Feb 25, 2016

Can't delete class from designer

When I create a class via the context menu inside the designer and I click outside the class and I select the class again, I can't delete the class when I press del.
Posted by ChrisLE on Feb 25, 2016

NetBeans 8.1 Support

Dear all,

The plugin has been updated to work with NetBeans 8.1. We hope you enjoy using it.

Special thanks for user jfranki for reporting the incompatibility issue.

If you are still using NetBeans 8.0 and easyUML plugin 1.2.2, we strongly advise you to move to versions 8.1 and 1.3.

Regarding any potential future bugs, please make sure to include a detailed description and if possible upload the problematic diagram or java file.

Kind regards,
Boris Perovic
Posted by perovic on Feb 24, 2016

NetBeans 8.1 incompatible?

It appears the plugin is not yet compatible with the final release of NetBeans 8.1. Whenever a UML project is created a ClassNotFoundException is thrown (org.netbeans.spi.project.ui.ProjectOpenedHook). I really hope the plugin gets updated soon...
Posted by jfranki on Nov 18, 2015

Cannot open UML project

Error is:
NullPointerException at org.uml.projecttype.nodes.UMLProjectChildNodeFactory$UMLProjectChildNodeList.keys
Posted by epdv on Oct 19, 2015

Problem in version 1.2.2 when creating a new class

when I create a class diagram from a project or a package and then edit it adding a class, for example, all the already existing void setter methods become the same type of the respective getter methods. For instance, if a have a "void setId(int n)" and a "int getId()", when I add any other class to the diagram, the method setId signature becomes "int setId(int n)".
Posted by begbarros on Oct 07, 2015

Re: Package name problem when create a UML from scratch.

Dear fractals80, begbarros

Thank you very much for reporting the package-setting bug. The issue has been resolved in the version 1.2.2, which you will receive through the Update Center soon.

Kind regards,
Boris Perovic
Posted by perovic on Sep 15, 2015

I canĀ“t edit neither create a package name for my classes

When I try to enter a package name for my classes, it returns a message saying that the class already exists in the package name I try to enter. For every name a try to enter.
Posted by begbarros on Sep 11, 2015

Package name problem when create a UML from scratch.


First of all, congratulations for this great plugin.

I have a problem when I create a new UML from scratch. When
I'm trying to assign a package name in box property but does not allow me and shows the following message class ??? already exist ...

Posted by fractals80 on Aug 19, 2015

Re: Bug

Dear csemanickam,

Version 1.2.1 should be verified soon, with the requested bugfix.
Thank you for reporting this! If you encounter any other bugs, please feel free to write here.

Kind regards,
Boris Perovic
Posted by perovic on Aug 04, 2015


I have a interface named "Ixyz", a class "GUIxyz" implementing the interface. The class creates a singleton instance within itself. But the easyUML is showing a relationship that the class created an instance of interface "Ixyz" which is not correct. When I renamed class to "ABCxyz" easyUML created the diagram properly. This clearly shows that the relationship is determined with the help of substring of name used for entities (example: "Ixyz" matches in both the cases). Please look into this issue and resolve.

This creates problem when the UML is created for a huge project. Difficult to validate each individual relationship.
Posted by csemanickam on Aug 04, 2015

Version 1.2

Dear all,

We have updated the plugin to version 1.2, enabling Java 8 code parsing and generation as well as code generation to Maven projects.

We hope you find these improvements useful.

Kind regards,
Boris Perovic
Posted by perovic on Jul 25, 2015

Incomplete creation of Diagram on package reverse engineering.

Keep getting an error when I attempt to create a diagram from my package.

Update: I tracked down the error, it couldn't parse some lambda expressions. Notably -> and ::
Posted by Chinajo on Jun 01, 2015

Maven project

It would be great if code could be generated into a maven project.
works the other way reverse engineering from a maven project into the Uml project
Posted by davti on May 27, 2015

Re: export format

Dear relativo,

Thank you for your feedback :)

- Copying and pasting of the diagrams is enabled already through Project Explorer tab. Did you mean something else and I misunderstood it?
- SVG export is very useful feature, I hope we can have it in the next release.

Kind regards,
Boris Perovic
Posted by perovic on May 03, 2015

export format

please give:
- the possibility to export in vectorial format like .svg
- the possibility to duplicate a component diagramm (copy-paste)

Posted by relativo on Apr 22, 2015

Linux path bugfix

Dear users,

The Linux path bug has been resolved in the latest release. As soon as the verification passes, you will receive the update in your IDE.

Thank you,
Boris Perovic
Posted by sevarac on Apr 07, 2015

Malformed or Unreadable .cdg file

I think the problem is in ReverEngineerUtils.java in saveDiagramAndOpenTopComponent, where it is hardcoded to replace the forward slashes with back slashes.

String defaultPath = projectFolder.getPath().replace("/", "\\") + File.separator + UMLProject.CLASS_DIAGRAMS_FOLDER;

I changed it to

String defaultPath = projectFolder.getPath().replace("\\", "/") + File.separator + UMLProject.CLASS_DIAGRAMS_FOLDER;

In my local environment and seems to be working like charm.
Posted by ajeets on Apr 05, 2015

Malformed or Unreadable .cdg file

Whenever I am right clicking on any of the java file and try to generate the UML from the context menu, it throws and error Malformed or Unreadable .cdg file
Posted by ajeets on Apr 04, 2015

Diagrams not opening

I upgraded and my diagram files did not open from the project Window.

I re-installed the plugin and now it only opens as a text file.

Using netbeans 8.0.2 on Ubuntu 14.04.
Posted by authentictech on Apr 02, 2015

Re: Bug: filepath formatted with backslashes (Windows-dependent)

Dear datazuul and pintergreg,

The bug has been noted and fixed in the development version. When we wrap up a few more things, we will release the update.

As this is an important bugfix, expect the release at latest by Sunday, but most likely much sooner.

Kind regards,
Boris Perovic
Posted by perovic on Apr 02, 2015

filepath format error

I can confirm datazuul's error, I got exactly the same.
Netbeans 8.0.2, Arch Linux (64bit):

Posted by pintergreg on Apr 02, 2015

Bug: filepath formatted with backslashes (Windows-dependent)

Netbeans 8.0.2, Linux (64bit):
right click on a java project - easyUML generate class diagram - Error loading file: Malformed or unreadable .cdg file

Reason: file is generated under "/home/ralf/\home\ralf\DEV\SOURCES\UMLDiagrams/Class Diagrams"
Seems like path of current directory is Windows-formatted! (backslashes). Please use File.separator in creating file paths.
Posted by datazuul on Apr 01, 2015


Dear TinkerTaylor,

We are unable to reproduce the issue with a fresh NetBeans 8.0.2 installation. The plugin has additionally been verified by the NetBeans team, so it might be a local problem.

We are aware of the things that you did (deactivation etc.), but it might have happened that the user/cache directories remained. We suggest erasing them (http://wiki.netbeans.org/FaqWhatIsUserdir) for a fresh start, or even doing a clean install of the IDE.

In case of any additional trouble, please post it here, or contact me by e-mail.

Kind regards,
Boris Perovic
Posted by perovic on Mar 31, 2015

Install of easyUML timesout.

Using Netbeans 8.0.2 with JDK-40 (64 bit). Installation of easyUML from the plugin menu as well as from a downloaded *.nbm timesout during installation. In both cases the installation slider timesout at about 90-92%. Kind of suggests corruption.

However, even with the timeout, the menu items appear, but are inoperable after that.

Note, have deactvated, removed, attempted reinstalls, etc., etc.
Posted by TinkerTaylor on Mar 26, 2015

Version 1.1

Dear all,

After a long wait, the plugin has been updated. We sincerely hope that you will enjoy it. The update will be in the Update Center soon, when the verification is completed.

Please report any bugs here, if you encounter them, or contact me by e-mail.

Kind regards,
Boris Perovic
Posted by perovic on Mar 22, 2015

Empty files

I'm having the same issue with the software writing empty files. It seems the issue is with the "Has" connector. Whenever I add a Has connector and save the file, the application clears my save file, so when I open the file again nothing is displayed.
Posted by ndeppe on Mar 16, 2015

Major update

We had some setbacks with the new update, sorry for the delay. We expect it to be online by Wednesday.

Kind regards,
Boris Perovic
Posted by perovic on Mar 08, 2015

Saving empty files

I'm saving my diagrams and upon reopening them discovering that the files are empty and no diagram elements are present.
Posted by authentictech on Mar 04, 2015

Re: Class with more than 2 constructors fails

Dear actonian,

Thank you very much for your feedback. Try downloading the new version manually from the Plugin Portal (not the Update Center). We are unable to reproduce the bug using this version. I hope this solves your problem.

In any case, expect a big update, with new features and stability improvements sometime during the week. It will be published on the Update Center.

Kind regards,
Boris Perovic
Posted by perovic on Feb 09, 2015

Class with more than 2 constructors fails

I have discovered that easyUML fails for a class with more than 2 constructors. Type this one in and try to run easyUML on it:

package bugTest;

* @author actonian
public class TestClass {

public TestClass() {


public TestClass(int i) {


public TestClass(int i, int j) {



On my system, no UML diagram appears or error message appears.
Posted by actonian on Feb 07, 2015

New version good, but display problem

Hello again,

Thank you very much for your update, it works without any trouble.

However the Java project I tried to made an UML version is "big" and easyUML show some trouble: the space allowed to him to draw the UML is not enough (and I speak about the space in the Navigator panel).

Is it a way to get it bigger? I didn't found any parameter panel.

I took a screenshot to let you see: http://postimg.org/image/ohdlq8e4j/
This is just the package with my main class, so I let you imagine when I tried on the complete project.

In all case that a really nice work and plugin you are developing. I am pretty sure it will be used a lot when stabilize and in the Update Center.

Best regards,

If I make right-click -> Arrange Diagram : http://postimg.org/image/pnix0c2ux/
Posted by FeNiX57 on Feb 02, 2015

Re: Reverse Engineering impossible

Dear FeNiX57,

Thank you very much for your feedback, the stack trace allowed us to pinpoint the bug.
A new version has been uploaded and we hope you will enjoy it.

We will test the plugin for more cases, before going live to the Update Center.

Kind regards,
Boris Perovic
Posted by perovic on Jan 31, 2015

Reverse Engineering impossible


When I try to launch the reverse engineering on a project (or on Sources Packages), NetBeans told me there is an unexpected exception. More details:

java.lang.IndexOutOfBoundsException: Index: 3, Size: 1
at java.util.ArrayList.rangeCheckForAdd(ArrayList.java:643)
at java.util.ArrayList.add(ArrayList.java:455)
at org.netbeans.api.visual.widget.Widget.addChild(Widget.java:272)
at org.netbeans.api.visual.widget.Widget.addChild(Widget.java:261)
at org.uml.visual.widgets.components.MemberContainerWidget.addMemberWidget(MemberContainerWidget.java:92)
at org.uml.visual.widgets.components.ComponentWidgetBase.addMember(ComponentWidgetBase.java:191)
at org.uml.visual.widgets.components.ClassWidget.(ClassWidget.java:98)
at org.uml.visual.widgets.ClassDiagramScene.attachNodeWidget(ClassDiagramScene.java:224)
at org.uml.visual.widgets.ClassDiagramScene.attachNodeWidget(ClassDiagramScene.java:62)
at org.netbeans.api.visual.graph.GraphScene.addNode(GraphScene.java:100)
at org.uml.visual.widgets.ClassDiagramScene.(ClassDiagramScene.java:126)
at org.uml.visual.UMLTopComponent.(UMLTopComponent.java:79)
at org.uml.reveng.ReverseEngineerPackageAction.actionPerformed(ReverseEngineerPackageAction.java:58)
[catch] at org.openide.awt.InjectorExactlyOne.actionPerformed(InjectorExactlyOne.java:78)
at org.openide.awt.ContextAction$Performer.actionPerformed(ContextAction.java:226)
at org.openide.awt.ContextManager.actionPerformed(ContextManager.java:260)
at org.openide.awt.ContextAction.actionPerformed(ContextAction.java:109)
at org.openide.util.actions.ActionInvoker$1.run(ActionInvoker.java:93)
at org.openide.util.actions.ActionInvoker.doPerformAction(ActionInvoker.java:116)
at org.openide.util.actions.ActionInvoker.invokeAction(ActionInvoker.java:99)
at org.openide.awt.GeneralAction$BaseDelAction.actionPerformed(GeneralAction.java:234)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:833)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:877)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3320)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:708)
at java.awt.EventQueue$4.run(EventQueue.java:706)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:159)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

If it can help you!
Thank you very much
Posted by FeNiX57 on Jan 30, 2015

Re: Problems and features

Dear izirion,

We have released the Release Candidate 1 and in it we have resolved problems and added the requested features.

We hope you enjoy it and we look forward to your feedback.

Thank you,
Boris Perovic
Posted by perovic on Jan 30, 2015

Re: Problems and features

Dear izirion,

We are currently working on a few features, one of them being the support for packages and various project types for diagram generation ("Reverse Engineering").

At the moment, diagrams are automatically saved to "project_root/UML Reverse Engineer/" folder, but we plan on changing this to something more flexible.

As for "Ctrl+S" shortcut, the bug has been noted, and it will be fixed soon.

Kind regards,
Boris Perovic
Posted by perovic on Jan 26, 2015

Problems and features


I am using your addon. I have some problem: shortcut "ctrl+S" don't work as expected, some times find panel is shown on the panel "Relations".

I have used "Reverse Engineering". I cant save generated schema. Also I want use "Reverse Engineering" in maven projects and use it with some package rather than whole project.
Posted by izirion on Jan 26, 2015

Update via netbeans

Yes Chris, we'll provide update feature once we stabilize it, and it gets ready for update center. We think we're very close to that point.
Posted by sevarac on Jan 17, 2015

Update via netbeans

Netbeans doesn't show me updates inside the plugin window, is it possible to add this feature? I don't want to update it manually (download from here, extract all files, open each file to install the plugin).


Posted by ChrisLE on Jan 16, 2015

Re: Problems and updates

Dear Peter,

Thank you for the feedback!

We have updated the plugin to the newest version and all of the problems you mentioned have been resolved.

Regarding the update center, we will put the plugin there soon and will inform you here when we do it.

We hope you like the new version. If you have any additional feedback, we would be very happy to hear it.

Kind regards
Posted by sevarac on Dec 23, 2014

Problems and updates


I've just downloaded the plugin(s) and tried to make a simple diagram with two classes.

I've got these problems:

1. Relations aren't intuitive to draw - it's impossible to just click into one class and connect it to the other one as in other tools.

2. UML project isn't opened after restart.

3. Most important: I cannot save the diagram. There's only an empty diagram file.

So, I wonder when there'll be an update, so I can save my diagrams?

Another issue: I've to download the files manually - whaat about a UC for experimental UML plugins?

Kind regards
Posted by epdv on Dec 19, 2014

Built with Java 7

Dear Tomas,

We have built the plugin with Java 7 and made several minor updates.
Expect more polishing and new features soon.

Posted by sevarac on Oct 08, 2014

Build all plugins at version Java 1.7, please!


if it's possible you build and release all plugins at version 1.7 of Java, please. I have any problems with platform 1.8 of Java at Netbeans and your plugin UMLProjectType requests platform 1.8 of Java.

Regards Tomas

UpDate Dec 11, 2014 - Thanks a lot of for that.
Posted by bumor on Aug 21, 2014

Required plugins

Have the same problem when I want to install the easyUML plugin as -Silver-. It shows me a lot of required uml plugins/classes. Have I install the old uml plugin for this? Better if the old one comes with the new one, together, if the new one requires the old one.



Update: After updating to 20140804, now it's working.
Posted by ChrisLE on Jul 22, 2014

Cannot close UML projects

Just filed P1 issue about impossibility to close UMLDiagrams projects.

Posted by jkovalsky on Jul 22, 2014

Installation instructions

I downloaded the plugin. But it's not the classic nbm it's a zip file with on it about 30 jar files. Could you explain how to install please?

Now the file is a valid .nbm (thanks) but I've still installation problems. When I select the plugin and click on Install Netbeans tells that other plugins are required and shows the list of them but the "Next>" button is disabled and it's not possible to continue.
Posted by -Silver- on Jul 15, 2014
By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2012, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo