Hallo, ich hab den folgenden Code und Eclipse braucht irgendwie knappe 30sek um den zu starten.
Wenn ich den Code per Konsole kompiliere und starte, dann geht das in 2-3sek.
Wenn ich das ganze als Jar packe und starte dauert es auch nur 2-3sek.
Hat jemand ne Idee? Ist mir irgendwie schleierhaft.
Es gibt sonst keine eingebundenen Libs oder sonstwas, auch nix, was ich noch nicht benutzt hätte an Code.
Alles andere rennt in Eclipse einwandfrei ohne große Verzögerung.
Vielleicht sieht ja jemand von euch das Problem.
Wenn ich den Code per Konsole kompiliere und starte, dann geht das in 2-3sek.
Wenn ich das ganze als Jar packe und starte dauert es auch nur 2-3sek.
Hat jemand ne Idee? Ist mir irgendwie schleierhaft.
Es gibt sonst keine eingebundenen Libs oder sonstwas, auch nix, was ich noch nicht benutzt hätte an Code.
Alles andere rennt in Eclipse einwandfrei ohne große Verzögerung.
Vielleicht sieht ja jemand von euch das Problem.
Code:
package main;
import java.io.*;
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.*;
public class Converter_all extends JFrame implements ActionListener {
private static final long serialVersionUID = 4757800617145093061L;
private String newline = "\n";
private StringBuffer text = new StringBuffer("");
private JRadioButton jrb = new JRadioButton("Converter1");
private JRadioButton jrb2 = new JRadioButton("Converter2");
private JRadioButton jrb3 = new JRadioButton("Converter3");
//private JRadioButton jrb4 = new JRadioButton("Converter4");
private JRadioButton nur_0011 = new JRadioButton("nur_0011");
private JRadioButton ohne_0011 = new JRadioButton("ohne_0011");
private JRadioButton beides = new JRadioButton("beides");
private JPanel rbuttonPanel = new JPanel();
private JButton openButton = new JButton("Datei oeffnen");
private JButton saveButton = new JButton("Konvertierung speichern");
private JTextArea log = new JTextArea(5,20);
private JFileChooser fc = new JFileChooser();
private JScrollPane logScrollPane = new JScrollPane(log);
private JFrame me = this;
private ButtonGroup bg = new ButtonGroup();
private ButtonGroup bg_choice = new ButtonGroup();
private JPanel buttonPanel = new JPanel();
private JCheckBox jcb = new JCheckBox("Führende Zeile in InputFile ignorieren (Überschrift)");
public Converter_all() {
super("Converter_fuer_alles");
setLayout(new BorderLayout());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocation(250, 250);
setSize(400, 300);
//setResizable(false);
log.setMargin(new Insets(5,5,5,5));
log.setEditable(false);
openButton.addActionListener(this);
openButton.setEnabled(false);
saveButton.addActionListener(this);
saveButton.setEnabled(false);
ohne_0011.addActionListener(this);
ohne_0011.setEnabled(false);
ohne_0011.setBounds(50,75,100,25);
nur_0011.addActionListener(this);
nur_0011.setEnabled(false);
nur_0011.setBounds(150,75,100,25);
beides.addActionListener(this);
beides.setEnabled(false);
beides.setBounds(250,75,100,25);
jcb.setBounds(0,100,getSize().width,25);
bg_choice.add(ohne_0011);
bg_choice.add(nur_0011);
bg_choice.add(beides);
buttonPanel.add(openButton);
buttonPanel.add(saveButton);
jrb.addActionListener(this);
jrb.setBounds(0,0,100,25);
jrb2.addActionListener(this);
jrb2.setBounds(0,25,100,25);
jrb3.addActionListener(this);
jrb3.setBounds(0,50,100,25);
//jrb4.addActionListener(this);
//jrb4.setBounds(0,75,100,25);
rbuttonPanel.setLayout(null);
rbuttonPanel.setPreferredSize(new Dimension(getSize().width, 125));
rbuttonPanel.add(jrb);
rbuttonPanel.add(jrb2);
rbuttonPanel.add(jrb3);
//rbuttonPanel.add(jrb4);
rbuttonPanel.add(ohne_0011);
rbuttonPanel.add(nur_0011);
rbuttonPanel.add(beides);
rbuttonPanel.add(jcb);
bg.add(jrb);
bg.add(jrb2);
bg.add(jrb3);
//bg.add(jrb4);
add(rbuttonPanel, BorderLayout.NORTH);
add(buttonPanel, BorderLayout.CENTER);
add(logScrollPane, BorderLayout.SOUTH);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == openButton) {
fc.setCurrentDirectory(new File(System.getProperty("user.dir")));
int returnVal = fc.showOpenDialog(Converter_all.this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = fc.getSelectedFile();
log.append(file.getName() + " erfolgreich geöffnet." + newline);
//System.out.println(file.getAbsolutePath());
convert(file);
} else {
log.append("Oeffnen abgebrochen." + newline);
}
log.setCaretPosition(log.getDocument().getLength());
} else if (e.getSource() == saveButton) {
int returnVal = fc.showSaveDialog(Converter_all.this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = fc.getSelectedFile();
log.append("Speichere: " + file.getName() + "." + newline);
speichere(file);
} else {
log.append("Speichern abgebrochen." + newline);
}
log.setCaretPosition(log.getDocument().getLength());
JOptionPane.showMessageDialog(me, "Konvertierung erfolgreich");
me.dispose();
}
else if(e.getSource() == jrb || e.getSource() == jrb2 ||
e.getSource() == jrb3)
{
if(e.getSource() == jrb3)
{
if(!ohne_0011.isSelected() && !nur_0011.isSelected() && !beides.isSelected())
openButton.setEnabled(false);
ohne_0011.setEnabled(true);
nur_0011.setEnabled(true);
beides.setEnabled(true);
}
else
{
bg_choice.clearSelection();
ohne_0011.setEnabled(false);
nur_0011.setEnabled(false);
beides.setEnabled(false);
openButton.setEnabled(true);
}
}
else if(e.getSource() == ohne_0011 || e.getSource() == nur_0011 || e.getSource() == beides)
{
openButton.setEnabled(true);
}
}
private void convert(File f)
{
boolean erfolgreich = true;
openButton.setEnabled(false);
jrb.setEnabled(false);
jrb2.setEnabled(false);
jrb3.setEnabled(false);
//jrb4.setEnabled(false);
ohne_0011.setEnabled(false);
nur_0011.setEnabled(false);
beides.setEnabled(false);
try {
BufferedReader in = new BufferedReader(new FileReader(f.getAbsoluteFile()));
String zeile = null;
String[] splited = null;
String neue_zeile = "";
int zaehler = 0;
while ((zeile = in.readLine()) != null)
{
splited = zeile.split("\t");
/************************************************************************/
if(jrb.isSelected())
{
if(splited.length < 6)
{
log.append("Fehler, ungültiges Format"+newline);
erfolgreich = false;
break;
}
if(jcb.isSelected() && zaehler == 0)
{
log.append("Ignoriere erste Zeile");
zaehler++;
continue;
}
text = text.append("XY=" +splited[4] + "," + splited[5] + "," +
splited[6] + "\r" + newline);
zaehler++;
System.out.println("Konvertierungsregel1");
}
/************************************************************************/
else if(jrb2.isSelected())
{
splited = zeile.split("\t");
if(splited.length < 3)
{
log.append("Fehler, ungültiges Format"+newline);
erfolgreich = false;
break;
}
if(jcb.isSelected() && zaehler == 0)
{
log.append("Ignoriere erste Zeile");
zaehler++;
continue;
}
neue_zeile = "macro M:\\WORKING\\Toolbox\\StrKmRz2Coor\\EBA_WhereIs_FromTo_v2 "
+ splited[0] + " 1 " + splited[2].replace("+", "") + " " +
splited[3].replace("+", "") + " " + splited[1];
text = text.append(neue_zeile + "\r" + newline);
System.out.println("Konvertierungsregel2");
}
/************************************************************************/
else if(jrb3.isSelected())
{
System.out.println("Konvertierungsregel3");
if(ohne_0011.isSelected())
{
if(splited.length < 3)
{
log.append("Fehler, ungültiges Format"+newline);
erfolgreich = false;
break;
}
if(jcb.isSelected() && zaehler == 0)
{
log.append("Ignoriere erste Zeile");
zaehler++;
continue;
}
neue_zeile = "macro eba_parallel_v2 "
+ splited[0] + " 1 " + splited[2].replace("+", "") + " " + splited[3].replace("+", "")
+ " " + "1.80 0 11 7";
text = text.append(neue_zeile + "\r" + newline);
neue_zeile = "macro eba_parallel_v2 "
+ splited[0] + " 1 " + splited[2].replace("+", "") + " " + splited[3].replace("+", "")
+ " " + "-1.80 0 11 7";
text = text.append(neue_zeile + "\r" + newline);
neue_zeile = "macro eba_parallel_v2 "
+ splited[0] + " 2 " + splited[2].replace("+", "") + " " + splited[3].replace("+", "")
+ " " + "1.80 0 11 71";
text = text.append(neue_zeile + "\r" + newline);
neue_zeile = "macro eba_parallel_v2 "
+ splited[0] + " 2 " + splited[2].replace("+", "") + " " + splited[3].replace("+", "")
+ " " + "-1.80 0 11 71";
text = text.append(neue_zeile + "\r" + newline);
System.out.println("ohne 0011");
}
/************************************************************************/
else if(nur_0011.isSelected())
{
if(splited.length < 3)
{
log.append("Fehler, ungültiges Format"+newline);
erfolgreich = false;
break;
}
if(jcb.isSelected() && zaehler == 0)
{
log.append("Ignoriere erste Zeile");
zaehler++;
continue;
}
neue_zeile = "macro eba_parallel_v2 "
+ splited[0] + " 1 " + splited[2].replace("+", "") + " " + splited[3].replace("+", "")
+ " " + "0 0 1 1";
text = text.append(neue_zeile + "\r" + newline);
neue_zeile = "macro eba_parallel_v2 "
+ splited[0] + " 2 " + splited[2].replace("+", "") + " " + splited[3].replace("+", "")
+ " " + "0 0 1 1";
text = text.append(neue_zeile + "\r" + newline);
System.out.println("nur 0011");
}
/************************************************************************/
else if(beides.isSelected())
{
if(splited.length < 3)
{
log.append("Fehler, ungültiges Format"+newline);
erfolgreich = false;
break;
}
if(jcb.isSelected() && zaehler == 0)
{
log.append("Ignoriere erste Zeile");
zaehler++;
continue;
}
neue_zeile = "macro eba_parallel_v2 "
+ splited[0] + " 1 " + splited[2].replace("+", "") + " " + splited[3].replace("+", "")
+ " " + "0 0 1 1";
text = text.append(neue_zeile + "\r" + newline);
neue_zeile = "macro eba_parallel_v2 "
+ splited[0] + " 2 " + splited[2].replace("+", "") + " " + splited[3].replace("+", "")
+ " " + "0 0 1 1";
text = text.append(neue_zeile + "\r" + newline);
neue_zeile = "macro eba_parallel_v2 "
+ splited[0] + " 1 " + splited[2].replace("+", "") + " " + splited[3].replace("+", "")
+ " " + "1.80 0 11 7";
text = text.append(neue_zeile + "\r" + newline);
neue_zeile = "macro eba_parallel_v2 "
+ splited[0] + " 1 " + splited[2].replace("+", "") + " " + splited[3].replace("+", "")
+ " " + "-1.80 0 11 7";
text = text.append(neue_zeile + "\r" + newline);
neue_zeile = "macro eba_parallel_v2 "
+ splited[0] + " 2 " + splited[2].replace("+", "") + " " + splited[3].replace("+", "")
+ " " + "1.80 0 11 71";
text = text.append(neue_zeile + "\r" + newline);
neue_zeile = "macro eba_parallel_v2 "
+ splited[0] + " 2 " + splited[2].replace("+", "") + " " + splited[3].replace("+", "")
+ " " + "-1.80 0 11 71";
text = text.append(neue_zeile + "\r" + newline);
System.out.println("beide");
}
}//jrb3
}//while
in.close();
}//try
catch (IOException e) {
e.printStackTrace();
}
//System.out.println(text);
if(erfolgreich)
{
log.append("Konvertierung erfolgreich." + newline);
log.setCaretPosition(log.getDocument().getLength());
saveButton.setEnabled(true);
}
else
openButton.setEnabled(true);
}
private void speichere(File f)
{
try
{
BufferedWriter b = new BufferedWriter (new FileWriter (f.getAbsoluteFile()));
b.write(text.toString());
b.close();
}
catch (IOException e)
{
System.out.println("Fehler: "+e.toString());
log.append("Fehler: "+e.toString());
}
log.append(f.getName() + " erfolgreich gespeichert." + newline);
}
public static void main(String[] args)
{
new Converter_all();
}
}