MagicDraw in Docker: Difference between revisions
Jump to navigation
Jump to search
| Line 23: | Line 23: | ||
WORKDIR /home/root/java/ | WORKDIR /home/root/java/ | ||
ENTRYPOINT ["java", "-cp","bin","Gui"] | ENTRYPOINT ["java", "-cp","bin","Gui"] | ||
</source> | |||
== Gui.java == | |||
<source lang='java'> | |||
import javax.swing.*; | |||
import java.awt.event.*; | |||
/** | |||
* | |||
*/ | |||
public class Gui { | |||
public static class MyAction implements ActionListener { | |||
public void actionPerformed(ActionEvent ae){ | |||
JOptionPane.showMessageDialog(null, "Thanks.", "GUI Test", 1); | |||
} | |||
} | |||
public static void main(String args[]){ | |||
JFrame frame = new JFrame("GUI Test"); | |||
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); | |||
frame.setSize(300,300); | |||
JButton button1 = new JButton("Click me"); | |||
frame.getContentPane().add(button1); | |||
button1.addActionListener(new MyAction()); | |||
frame.setVisible(true); | |||
} | |||
} | |||
</source> | </source> | ||
Revision as of 17:04, 3 April 2019
How to run MagicDraw in Docker container
see also https://community.nomagic.com/running-magicdraw-in-a-docker-container-t5895.html
The goal is to get an older MagicDraw 16.9 working in a container.
Prerequisites
You need to be able to run a Java 6 Swing GUI in a container. To get the GUI environment working might be tricky e.g. on MacOS see https://stackoverflow.com/questions/37826094/xt-error-cant-open-display-if-using-default-display
Dockerfile
FROM java:6
MAINTAINER Wolfgang Fahl (https://www.bitplan.com)
LABEL Description="Java GUI"
COPY src /home/root/java/src
WORKDIR /home/root/java
RUN mkdir bin
RUN javac -d bin src/Gui.java
WORKDIR /home/root/java/
ENTRYPOINT ["java", "-cp","bin","Gui"]
Gui.java
import javax.swing.*;
import java.awt.event.*;
/**
*
*/
public class Gui {
public static class MyAction implements ActionListener {
public void actionPerformed(ActionEvent ae){
JOptionPane.showMessageDialog(null, "Thanks.", "GUI Test", 1);
}
}
public static void main(String args[]){
JFrame frame = new JFrame("GUI Test");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300,300);
JButton button1 = new JButton("Click me");
frame.getContentPane().add(button1);
button1.addActionListener(new MyAction());
frame.setVisible(true);
}
}