Web pages for the ArgoUML project.

This used to be located at
Frequently asked questions for ArgoUML

Frequently asked questions for ArgoUML

List of all questions


Quickstart, install and use

OS Specific

Java Web Start

Diagrams and Navigation

XMI and other Formats

Printing and Graphics

Other topics

Project-related questions


This FAQ is provided with the hopes of being helpful for users using ArgoUML for their projects.

It is a collection of tips and tricks from the ArgoUML users' mailing lists (click here to see the available lists). It is not a complete overview but it does reflect the interests and problems that the users have expressed on the mailing lists. There are also some questions and answers that are not related to the use of ArgoUML but to the ArgoUML project. They are listed here.

The information is updated as the questions and answers are posted on the mailing list. A certain version of the FAQ is only loosely connected to a specific version of ArgoUML but can show how a problem is solved differently in the different versions. The current "stable" version of ArgoUML can be found here. The current developer release can be found at the same place but further down under development releases.

What is ArgoUML?
ArgoUML is a Java based Universal Modeling Language tool. It is able to create and save all standard UML diagrams. More information on UML can be found here. ArgoUML also has the ability to reverse engineer compiling Java code and generate UML diagrams for it.

ArgoUML is made available under the BSD Open Source License.

ArgoUML is not production ready! This means that the things you can't do will distract you, you will have problems that you won't have in commercial UML tools, and there is no one to blame for this. On the other hand, this also means that you have the opportunity to fix your problems yourself.

Where does the name ArgoUML come from?
This goes to the ancient history of ArgoUML when it was Jason Robbins' project.

Jason Robbins writes:

I first learned programming back in the days of BASIC on the Apple II. When TurboPascal arrived, it got me very excited about IDE's. I later had a chance to work with two Smalltalk environments and UNIX and emacs. I've always been interested in how some tools can be so much better than others. I have also enjoyed doing rapid prototyping and experimental programming.

I came to grad school with the intention of building a better software development environment with an emphasis on the human aspects. What makes some languages and IDE's more productive for people than others? I initially set out to build a tool that would help software designers experiment with alternative designs quickly.

At that time, all of the names of research projects in my research group at UC Irvine were taken from Greek Mythology. I borrowed a book on mythology and tried to find a tale of experimentation. The story of Jason and the Argonauts seemed like a good match because my name was Jason and exploration was close to experimentation as I could find. In that myth, "Argo" is the name of the ship that they sailed.

The name "Argo" refers to the library of cognitive support features I implemented (e.g., design critics, checklists, navigational perspectives, etc.). I have also used it as the product line name for some of the applications of that library. The Argo/UML tool is actually the fourth in a series of tools I worked on that have cognitive support features provided by the Argo library. Argo/UML is by far the largest application of the Argo library.

I later learned more about the "Argo" myth and found an interesting coincidence. The ship "Argo" was made from wood cut from a magical talking tree. The beams of wood on the ship continued to talk and warned the Argonauts of upcoming danger. You could say that these were design critics!


How can I help?
Welcome, welcome, welcome, you are most welcome!

Level 1:

  • Use it!
  • Talk about it!
  • Test it!
  • Find bugs!
  • Report bugs!

Level 2:

  • Help in pin-pointing and fixing bugs!
  • Discuss what you want to work on on the developers mailing list.
  • Fix bugs from Issuezilla yourself and get them committed!
  • Make enhancements yourself and get them committed!
  • Become a developer of ArgoUML!
Is there a manual?
Yes. Look here for the 0.32 version.
Where do I get the source code for ArgoUML?
You can download the source from the same server that you download the application from.

There is an archive with all the source so you can look at it. If you are aiming to build ArgoUML, download from the repository instead. You will then get the complete set of development tools and libraries needed to build it. (The build scripts included in the archive does not really fit the way the libraries are packaged so building ArgoUML from the archive is really complicated and not recommended.)

Is there commercial support for ArgoUML?
Not currently. Companies such as Gentleware and Genuitec have created commercial derivatives of ArgoUML, but these are independent and have separate code bases.
What versions of UML are supported?
ArgoUML versions through version 0.18.1 support UML 1.3. Beginning with version 0.20 in early 2006, ArgoUML began supporting UML 1.4.

We don't have plans for the support of UML 2.0 in the immediate future, but it is a goal as the standard is completed and software components that support it (model repository, OCL, etc) become available.

Quickstart, install and use

How do I install ArgoUML?
The easiest way to get started is to click on the Java Web Start link on our home page. If you need a different style of installation, you can find more information in Quick Guide Chapter 2 .
Where can I discuss ArgoUML usage with other users?
The users' mailing list and #argouml IRC channel is available for questions and discussions. See the support page for more information about these possibilities.
Can I use ArgoUML for "large" projects?
Yes. But be sure to use a large heap space when you have more than about 50 modelelements. The heap space for any java application can be defined on the command line, the supplied launch scripts for ArgoUML (.bat, .sh, .jnlp, .lnk), all use:
    java -Xms64m -Xmx512m -jar argouml.jar
If you have problems with large models, you may need to set -Xmx512m to a higher number.

OS Specific

OS X: How can I access the context sensitive menus?
Press the Apple Key together with the mouse button
OS X 10.2: How can I get ArgoUML to work?
ArgoUML will not work out-of-the-box on MacOSX 10.2 for people who have the Apple Developer Tools installed, because those tools install Java 1.4.1.

There is a workaround, though: Apple leaves the 1.3.1 java engine installed, but in an obscure place. You can run ArgoUML from the Terminal window by typing

% /System/Library/Frameworks/JavaVM.framework/Versions/1.3.1/Commands/java -jar argouml.jar

Windows: How can I get ArgoUML to load when I double-click on a model file?
Easy Option: For ArgoUML 0.25.5 and above, use the windows installer which associates .zargo files with ArgoUML automatically.

Hard Option: On Windows XP, (don't try this on Vista!) the trick is to do things in two steps. First, open Windows Explorer and find a .zargo file, and then right-click on it. You should get the normal Windows menu, including an Open or Open With option. At this point, give a description for the file like "ArgoUML Model", and tell Windows to use Notepad to open the file. That's not what you want to do ultimately, but it does get Windows to accept the .zargo extension as representing a valid file type.

Now close, and then reopen Windows Explorer. If you are using a version of Windows prior to XP go to the Explorer menu and select View->Options. For XP you would use Tools->Folder Options. You should get a two (or more) tabbed dialog. Click the "File Types" dialog and then scroll through the list for the Description you gave - in this example "ArgoUML Model". Click to select that file type, and then click the "Edit" button.

Now, click on the "Open" action and then the "Edit" button there. You will then get a dialog that has a line for entering in the application action that will have a line for using Notepad to open the file. Replace that line with:

"C:\Program Files\Java\j2re1.4.1_01\bin\javaw.exe" -jar "c:\ArgoUML\argouml.jar" "%L"

Substitute your path to your JavaW.exe and ArgoUML.jar files if they aren't located where specified above. Click OK, then click OK, then click OK (three buttons on three different levels of the dialog).

You can now double-click on your model and have ArgoUML instantly loaded.

On Windows Vista, you do the following:

1) Create a batch file "runargo.bat" in your ArgoUML directory which looks something like this:

    @echo off
    cd "C:\ArgoUML"
    start javaw -cp "argouml.jar" org.argouml.application.Main %1 /B

replacing "C:\ArgoUML" as appropriate.

2) Associate your .zargo files with this batch file (just double-click a .zargo file and follow the instructions).

Unix/Linux: I cannot start because of an
ArgoUML uses the Java method InetAddress.getLocalHost() to get the IP address of the local machine to use in constructing a unique identifier on all elements that are to be created in that instance of ArgoUML. This works for networked machines and for stand alone-machines. However there are cases when the TCP/IP configuration is wrong where this does not work. Make sure that 'hostname' returns a valid name on your machine and that there is an IP address for this name in your /etc/hosts file or DNS.

The solution is, fix your network configuration.

If you want to suggest a better explanation or a fix within ArgoUML for this, go through the and find out what really happens in this case.

Linux: Why does ArgoUML fail to start with an exception in the GUI components?
Many Linux distributions bundle GCJ (The GNU Compiler for the Java™ Programming Language) which, as of April 2006, doesn't provide sufficient functionality to run Java Swing applications such as ArgoUML. You can check on the current status of GCJ at

Please install a supported Java run-time on your system.

Linux: Does ArgoUML work with GCJ, GIJ, or GNU Classpath?
Not as of April 2006.

Java Web Start (JWS)

What is Java Web Start?
It is a way to download and install and launch Java applications with a single click and have the updated automatically when new versions are available.

Java Web Start is included with recent Java Runtime Environments including Java 5/1.5.

For more information, see the Java Web Start product page.

How do I install Java Web Start?
If you have a recent JRE (Java 1.5 or later), you probably don't need to, but if you do, see the installation instructions on the Sun web site: Java Web Start.

In particular, note that Mozilla and Netscape 6.x users must take an additional step to register the helper application in your browser preferences.

Web Start returns a Bad MIME Type error. What's wrong?
This is from the Lopica Unofficial JWS FAQ.

This is a very common problem and most likely caused by Web Start's failed attempt to automatically detect your proxy settings. The "Bad MIME Type" error displayed by Web Start is somewhat confusing as it should really be a "Resource Not Found" error.

Your proxy will send back an error page either in HTML or plain text instead of the requested JNLP descriptor if it fails to get the JNLP descriptor requested by Web Start.

You can change your proxy settings for Web Start manually by starting the Application Manager and using the Preference panel. (Select File|Preferences to get there.)

Proxy Settings: Proxy Settings

The certificate has expired.
Yeah, sorry about that. You are probably running an old release of ArgoUML that we have not signed again with the new certificate or we have messed up by making a release with an old certificate. For now, just click the "Start" button that proceeds with the expired certificate.
The certificate cannot be authenticated
Yeah, sorry about that. The security in Java Web Start relies on certificates that are signed by known and trusted root certificates and authorities. To acquire such a certificate you need to have a registered company that owns the certificate and you need to pay some money to get it... For the ArgoUML project we don't have a company around that can own the certificate so we don't achieve the security to the level that the Java Web Start is designed to do. That is the reason you get a warning every time you download a new version. The next question is about how you avoid the warning.
How to trust upcoming Java Web Start deliveries?
For the impatient:
  1. Download "argouml-linus-2.cer"
  2. Use keytool to import the certificate to jre/javaws/cacerts (Give password: changeit)
    keytool -import -alias -file argouml-linus-2.cer -keystore cacerts
  3. Verify the fingerprints.
If you are somewhat "security aware" and would like to understand what you are doing
  1. Be sure you are linked to the ArgoUml-server, e.g. by putting "" into the adressline of your browser. ( To be honest you can't be sure that it is not a fake what you are seeing unless will supply a )
  2. Download "argouml-linus-2.cer". ( The self signed certificate of the public key that Linus Tolke uses to make the ArgoUML releases. You must trust that it was put there by Linus Tolke and that it has not been compromised on the tigris server or while moving it from the tigris server to your computer. ) Before the release 0.23.3 the certificate was called "argouml-linus-1.cer".
  3. Note one of the hashcodes:
       MD5:  88:B9:BB:BE:B8:53:F8:97:FC:B4:AE:9F:E2:2F:21:50
       SHA1: 1C:5D:60:B3:77:29:94:4A:1F:BE:B0:0E:D5:D9:66:63:9B:EC:E5:E6
    that are published together with the file on Be sure to get it from there! ( You must trust that the fingerprints where put there by Linus Tolke and that they have not been compromised while on the tigris server or while moving them from the tigris server to your computer. ) Before release 0.23.3 the certificate file was called "argouml-linus-1.cer". The old certificate had the hash codes
       MD5: F1:A9:ED:79:88:91:19:31:AA:69:EE:A0:8F:AF:4A:43
       SHA1: B5:F4:02:AC:7D:34:FF:61:D4:56:CF:AE:10:F8:1D:B9:24:AB:DF:AA
  4. Import the certificate to your local installation of Java Web Start. You can do that - for example - performing these steps:
    1. In a terminal window (DOS-Box) change to your Java Web Start folder, usually this would be $JAVA_HOME/jre/javaws (%JAVA_HOME%\jre\javaws)
    2. Enter
      keytool -import -alias -file argouml-linus-2.cer -keystore cacerts
    3. If you are asked for the password enter the default "changeit" or the appropriate one that you have assigned to your local JKS-keystore of Java Web Start named "cacerts".
    4. You will be asked wether you trust this certificate or not. Compare the locally generated hashcodes (fingerprints) shown to that read from (see step 3). If the fingerprints match and you decide to trust the whole chain of Linus Tolke, Tigris, your internet connection, and your computer enter "Yes" in your language.
That's it! Now you should not see a message like "Failed to verify the authenticity of this certificate. No assertions can be made of the origin or validity of the code. It is highly recommended not to install and run this code." Now you are trusting the updates from ArgoUML issued by Linus Tolke using this certificate.

If you notice that the September 2004 certificate ("argouml-linus-1.cer") expired in November 2006, that was the reason Linus Tolke created a new certificate (in October 2006) and the fingerprints for the new certificate are different. The new certificate ("argouml-linus-2.cer") expires in March 2012 and then a new certificate will be created then unless something has happened that changes this. If Linus Tolke will let someone else do the release work and sign the Java Web Start releases with a new key the key will change. In both of these cases you will have to do this all over again to trust the new certificate.

Further readings:

Keytool documentation
Java Web Start FAQ
Java Web Start whitepapers
Java Web Start for developers
Other problems.
If you have any other problem with JWS, please:

Diagrams and Navigation

How do I know what diagram I'm working on?
The name of the current diagram is displayed in the Title bar of the ArgoUML application window.
How can I sort the artifacts in the Navigation Pane, for example sort all of my Actors?
That is not currently supported.
How do I arrange my diagram elements?
There are several ways to easily and elegantly move diagram elements.

Select the elements you want to move. By holding down the control key you can select several.

Now hit your arrow keys. Your elements move a little with every key stroke.

If you also hold down the shift key, they move a bit faster.

Or click on the broom button, move your mouse to the diagram pane, right click and hold. Now moving your mouse side ways (or up and down) will align elements.

There also is the menu item Arrange where you can align, group or nudge (move a little bit) elements.

Why don't the sequence diagrams work?
You are probably using an old version of ArgoUML. Upgrade to ArgoUML 0.20 or later.
I'm trying to change the ordering of the links in the sequence diagram. How do I do that?
That is not currently supported.
How do I create a diagram?
If you are trying to create a Sequence, Statechart, Activity, or Collaboration diagram, you need to have an appropriate model element selected for the diagram to be associated with.

If you just want to experiment with different diagram types, the easiest thing to do is create an empty Class on the Class Diagram and select it to enable the other diagram buttons.

How does the note tool in the tool bar work?
Click on your target class. Then click on the note icon. ArgoUML will generate the link automatically.

You can also right click on an element in the diagram to add a note as well.

Be aware that your note will not appear in the source code documentation tab but it will appear in the diagram view of the navigation pane (the left pane tree view).

What is the easiest way to enter data into attributes and methods window for classes?
Click direct class properties pane and start typing.
Where can I find some sample ArgoUML models?
There are some models at: Most of these are incomplete, so if you'd like to to do more work on them or create additional examples, the contribution would be welcome.

XMI and other formats

Why won't my XMI file load?
There are several possible reasons for ArgoUML to be unable to load your file. Some of them include:
  • Wrong UML/XMI version - ArgoUML supports UML 1.3 or 1.4 stored in XMI 1.0, 1.1, or 1.2 files. It's native format is UML 1.4, so that's the best version to choose if you have a choice. Similarly XMI 1.1 or 1.2 will provide the best information transfer. Versions of UML greater than 1.4 and versions of XMI greater than 1.2 are not supported.
  • Proprietary vendor format - Some tools write non-standard XMI files either by default or always. Here are some tips for getting standard files from a few known tools:
    • Poseidon - Turn off the option Save with diagram data in the Export Project to XMI dialog.
    • MagicDraw - Turn on the Rich XMI option on the Save As dialog and select either XMI 1.1 or XMI 1.2. Also, if your project references any external modules such as the Magic Draw profile, you'll need to import those so that ArgoUML can reference them. Right click on the module in the explorer pane and select Modules->Import.
    • Enterprise Architect - Select do not export UML diagrams and do not enable full EA Roundtrip. (Thanks to user "Roel" for this information)
If the ArgoUML error message complains about an unknown element named 'UML:Diagram' (generated while loading non-standard Poseidon files and perhaps others), you may be able to get the file to load by turning on the ArgoUML user preference to ignore Diagram elements on user preference Settings dialog (ArgoUML 0.21.1 or later).
Does ArgoUML save XMI files?
Yes. ArgoUML versions through 0.18.1 will export XMI 1.0 files containing models conforming to the UML 1.3 metamodel. Beginning with ArgoUML 0.20, XMI 1.2 files are exported conforming to the UML 1.4 metamodel.

XMI files can be exported separately and they are also included in the zipped .zargo file where they can be extracted using the 'jar' command.

How do I import an .xmi into ArgoUML and what formats are known to be supported?
The Import XMI File option on the Tools or File menu (depending on your version) can be used to import an XMI file from another tool. No diagram data is included in the XMI file for UML versions prior to UML 2.0, so you will only get the model data, not any diagrams.

UML 1.3/XMI 1.0 is the only format supported through ArgoUML 0.18.1. Beginning with 0.20, ArgoUML can read UML 1.3 & 1.4 in XMI 1.0, 1.1, and 1.2 formats. It only writes UML 1.4/XMI 1.2.

Interoperability with other modeling tools has improved over time, but still continues to be problematic in some cases. XSLT can be used to correct some problems and you can find examples included in the ArgoUML source. There are also commercial solutions available from companies such as MetaIntegrations.

Currently ArgoUML exports to XMI version 1.0 only, why?
Through ArgoUML 0.18.1 only UML 1.3/XMI 1.0 is exported. Beginning with 0.20, only UML 1.4/XMI 1.2 is exported, although both UML 1.3 and 1.4 are read as well as all of XMI 1.0, 1.1, and 1.2.

The UML 1.4/XMI 1.2 combination should be interoperable with many more tools than UML 1.3/XMI 1.0, but if you need a different version, you'll have to use a separate tool to do the conversion.

Can ArgoUML read an MDL file generated by Rational Rose?
No. MDL is a Rational Rose-specific format. You are much better off getting Rose to export an XMI file.

Rose has an XMI Add-in that can create XMI format from an MDL file. It may move as the IBM site is reorganized, but you may be able to find version 1.3.6 here. If that doesn't work this might take you to a page of Rose add-ins that you can search. There's also a technote describing the various versions of this add-in.

I have a project where I need to add tags to attributes. How do I do that?
Open the zargo file with any zip application and you'll find the XMI inside. If you want to convert it to XSD then go to (Dave Carlson's site) and convert the XMI there.
I have a Gentleware project. How do I convert it to ArgoUML?
When Poseidon was first created from ArgoUML it was possible to manually convert projects, but the two tools have diverged too much to make this practical any more.

Export an XMI file from Poseidon and import it to ArgoUML like you would from any other modelling tool.

Printing and Graphics

How can I print my diagrams?
Select a diagram, then go to File->Export Diagrams. You can generate gif, postscript, eps or .svg format.
What does SVG stand for?
Scalable Vector Graphics. It's a standard of the World Wide Web Consortium (W3C). Find out more at the
How do I save my diagram as .SVG?
First: select .svg as the file type. Second: type the name of the file as you like with the .svg tag at the end. Example myumldiagram.svg
Can I save my diagram as EPS with a preview image?
Can I output my entire project as an HTML?
Can I save just part of a diagram?
No. You will have to edit the image after saving.
Does ArgoUML generate an XMI document?
Yes, models can be saved in XMI format (without the graphical information). It is also one of the files zipped into the .zargo file, which can be unpacked with the Java jar utility or a Zip utility.

Other Topics

I've got a bunch of people working on the same diagrams. How do I track who is doing what on the diagram? How do I use ArgoUML with CVS?
You can't. ArgoUML works as if the .zargo files is a single binary file. If several users open it at once to do work some work will be lost.
Is there a mechanism to do a sanity check in ArgoUML and enforce that sanity check?
Yes, by paying attention to the to do items generated by the critics. They will give you ideas on what the problems are with your model and sometimes help you in fixing them.

ArgoUML follows the policy that the user in the end knows more than the developers of ArgoUML do. A level of sanity enough to be able to draw and save the model is maintained by ArgoUML but beyond that the user can do what he pleases as long as he ignores (or turns of) the critics with suggestions.

I saved a project from ArgoUML, and then when I opened it later ArgoUML said it was empty. What can I do?
Many types of corruption can be repaired by hand by a member of the development team. These problems have become less and less common, but if you do encounter one the best thing to due is create a bug report in Issuezilla and attach your project. If your project contains information that you don't want posted in an attachment, you may be able to email it privately to one of the developers.

When you report the problem, try to include as much information as possible about the actions leading up to the problem to give the developers the best chance of finding and fixing the root cause (in addition to repairing your file).

I started ArgoUML and it is in the wrong language. Why? How can I configure it so it will be in my desired language?
ArgoUML attempts to detect the language settings from your operating system environment and start with the language you prefer.

There are two known problems with this approach:

  • Some of the translations are incomplete and ArgoUML will use English fallbacks instead of the configured language in places where there is no translated text.
  • If you are borrowing someone else's computer or working in an foreign office you might not understand the GUI.
There are two possible solutions:
  • Reconfigure the environment to work in your language (or English) and restart ArgoUML.
  • Force ArgoUML to use the language of your choice.

Since version 0.19.3 you can set the language in the menu:

Edit -> Settings... -> Appearance ->Language

The combobox contains the supported languages. To see the effect of your change, you have to restart ArgoUML.

Why does ArgoUML use the environment variable LC_CTYPE instead of LANG to determine the language when both are set?
This is a Java bug. Please see bug #5033780 in Sun's bug database for more information on when it will be fixed. It is present in Java 1.4, 5, and 6.
Why are the links not displayed correctly?
This may be a result of a bug in the ATI graphics card drivers.

See this report in Sun's bug database for possible workarounds such as disabling Java's use of DirectDraw.

Project-related questions

Where and how do I report bugs?
You report bugs by entering them into Issuezilla. Bugs are called defects. Issuezilla also contains feature and enhancement requests.

How you do this is explained on the How to Report Bugs and register enhancements page.

You don't need to ask on any mailing list if it is a problem, if it is already known, or if it is has a solution. If you are having problems, assume that there really is a problem! If you are wrong and it is not really a problem, you will get notified by someone that resolves the issue (as INVALID, WORKSFORME, or FIXED). If you can't find it in Issuezilla, assume that no-one else has reported it! If the bug was already known and reported but you didn't find it, you will get notified by someone that resolves the issue (as DUPLICATE). It might be that it is filed under a completely different problem description since the same problem might manifest itself in different ways.

What information is interesting when reporting a Bug?
Get a screen capture of it and a .txt copy of the stack output for analysis.

Also include what version of ArgoUML you are running and on what platform. Useful information includes:

  • OS - Which OS, which version, and which patches
  • Java-version - Including whether you are running a development version or runtime version
  • Hardware - Processor and processor speed, Memory, Hard Drive space, and free hard drive space
It is also helpful if you can upload the zargo project file for the project that is having problems.

How do I suggest an enhancement?
You proceed exactly as when reporting the bug including a search to see if someone else has already suggested that.

How you do this is explained on the How to Report Bugs and register enhancements page.

Something is happening when I run ArgoUML that's hard to describe. How should I send a picture or document describing it?
It is probably a bug. Write a defect report and attach your picture or document as part of a defect report. Reporting bugs is described earlier in the FAQ.

If you have successfully reported the problem in Issuezilla there is no need to send an email about it. The discussion and investigation will take place in that issue in Issuezilla.

How do I indicate that I think an enhancement or fix is important?
You vote for the issue.
  • Register for a user id on Tigris.
  • Apply for a role in the ArgoUML project. (Observer role is the only one you can apply for).
  • Get the role granted.
  • Login to the Tigris site
  • Find the issue that you are interested in
  • Click on the Vote for this issue link directly above the Additional Comments field
After having voted for an issue you will receive mails when something happens to the issue. This is unless you have turned it off in your Issuezilla settings.

Your votes helps the developers of ArgoUML to know what defects are the most important to solve and what features are the most important to add.

How do I see how many votes have been cast for an enhancement or fix?
You can query for all issues that have at least one vote by entering "1" in the At least ____ votes field and clicking on the Submit query button. You will get a list of all issues that have at least one vote cast for them. By following the link to the issue, you can adjust your votes as you see fit.

Another way is to change the columns shown by Issuezilla list to include the Votes column.

This FAQ maintained by Tom Morris. Questions about the FAQ should be addressed to
This FAQ was last updated $Date$.
Ewan Grantham did all the work on this FAQ through September 2003.