Ik heb in NetBeans een applicatie gemaakt.
Van deze applicatie wil ik een executable maken.
Als ik mijn code compileer in NetBeans , dan gaat dat allemaal perfect.
Ook als ik mijn applicatie vanuit NetBeans wil runnen , dan gaat dat ook allemaal perfect.
Dan wil ik er een executable van maken , hiervoor gebruik ik JSmoothGen.
Na het invoeren van mijn .jar file ,en het aangeven waar mijn klassen staan , compileert hij mijn project tot een .exe
Hier krijg ik ook allemaal geen enkele foutmelding te zien.
Echter , als ik dubbelklik op de .exe , dan start hij mijn programma niet op.
Wil is de laptop heel ff druk bezig, en kijk ik dan in taskmanager, dan zie ik dat er een proces genaamd javaw.exe bijkomt.
Dit is echter maar voor een enkele seconde en dan verdwijnt het proces weer.
Een tijdje terug had ik een rekenmachinetje gemaakt(zonder swing) en op exact dezelfde manier als hierboven staat , heb ik deze applicatie naar een .exe gecompileerd.
Het gekke is dat deze nu nog wel steeds werkt als ik deze dubbelklik.
Ter verduidelijking geef ik even de JAVA code mee(let wel , vanuit mijn IDE werkt het wel allemaal gewoon)
Of weten jullie een efficienteren manier om een executable te maken van java applicaties
Hopelijk kunnen jullie me weer een beetje opweg helpen
Van deze applicatie wil ik een executable maken.
Als ik mijn code compileer in NetBeans , dan gaat dat allemaal perfect.
Ook als ik mijn applicatie vanuit NetBeans wil runnen , dan gaat dat ook allemaal perfect.
Dan wil ik er een executable van maken , hiervoor gebruik ik JSmoothGen.
Na het invoeren van mijn .jar file ,en het aangeven waar mijn klassen staan , compileert hij mijn project tot een .exe
Hier krijg ik ook allemaal geen enkele foutmelding te zien.
Echter , als ik dubbelklik op de .exe , dan start hij mijn programma niet op.
Wil is de laptop heel ff druk bezig, en kijk ik dan in taskmanager, dan zie ik dat er een proces genaamd javaw.exe bijkomt.
Dit is echter maar voor een enkele seconde en dan verdwijnt het proces weer.
Een tijdje terug had ik een rekenmachinetje gemaakt(zonder swing) en op exact dezelfde manier als hierboven staat , heb ik deze applicatie naar een .exe gecompileerd.
Het gekke is dat deze nu nog wel steeds werkt als ik deze dubbelklik.
Ter verduidelijking geef ik even de JAVA code mee(let wel , vanuit mijn IDE werkt het wel allemaal gewoon)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
| import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
public class test extends JFrame
{
public static void main(String[] args)
{ //niewe klasse test aanmaken
new test();
}
//Variabelen aanmaken
private JButton bladerknop , resizeknop;
private JTextField bestandvenster,hoogtevenster,breedtevenster,bestandgrootte,resizehoogte,resizebreedte;
private JLabel filelabel,hoogtelabel,breedtelabel,previewafbeelding,bestandgroottelabel,resizehoogtelabel,resizebreedtelabel;
private JRadioButton prefixmaat , procentmaat, costummaat;
private JSlider schuifbalk;
private String picturelokatie;
private Image picture;
public test()
{ //Frame gegevens vastzetten
setSize(800,600);
setTitle("Slice - image Resizer");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//nieuw paneel aanmaken en layout vastzetten
JPanel content =(JPanel) getContentPane();
content.setLayout(new BorderLayout());
//2 panelen aanmaken
JPanel besturingpaneel = new JPanel();
JPanel bestandpaneel = new JPanel();
JPanel optiepaneel = new JPanel();
JPanel maatpaneel = new JPanel();
JPanel afbeeldingpaneel = new JPanel();
//panelen toevoegen
content.add(besturingpaneel, BorderLayout.NORTH);
content.add(bestandpaneel);
content.add(optiepaneel);
content.add(maatpaneel);
content.add(afbeeldingpaneel, BorderLayout.CENTER);
//radiobuttons aanmaken
prefixmaat = new JRadioButton("Prefix");
procentmaat = new JRadioButton("Percentage");
costummaat = new JRadioButton("Costum");
ButtonGroup knoppengroep = new ButtonGroup();
knoppengroep.add(prefixmaat);
knoppengroep.add(procentmaat);
knoppengroep.add(costummaat);
//dropdownlijstje maken met daarin voorgeprogrammeerde formaten
String fotoformaten[] = {"320x240","640x480","800x600","1024x768"};
JComboBox lijstje = new JComboBox(fotoformaten);
//schuifbalk aanmaken voor percentage foto
schuifbalk = new JSlider(0,100);
schuifbalk.setMajorTickSpacing(10);
schuifbalk.setMinorTickSpacing(1);
schuifbalk.setPaintTicks(true);
schuifbalk.setPaintLabels(true);
//knoppen maken en actionlistener aan toevoegen
bladerknop = new JButton("Blader");
bladerknop.addActionListener(new knopjeHandler());
resizeknop = new JButton("Resize!");
resizeknop.addActionListener(new knopjeHandler());
//tekstvelden maken
bestandvenster = new JTextField(25);
hoogtevenster = new JTextField("",5);
breedtevenster = new JTextField("",5);
bestandgrootte = new JTextField("",5);
resizebreedte = new JTextField("",5);
resizehoogte = new JTextField("",5);
//labels aanmaken
filelabel = new JLabel("File:");
hoogtelabel = new JLabel("Hoogte:");
breedtelabel = new JLabel("Breedte:");
bestandgroottelabel = new JLabel("Grootte");
resizebreedtelabel = new JLabel("Breedte:");
resizehoogtelabel = new JLabel("hoogte");
ImageIcon icon = new ImageIcon("down.jpg");
previewafbeelding = new JLabel(icon);
//alles toevoegen aan de desbetreffende panelen
bestandpaneel.add(filelabel);
bestandpaneel.add(bestandvenster);
bestandpaneel.add(bladerknop);
bestandpaneel.add(hoogtelabel);
bestandpaneel.add(hoogtevenster);
bestandpaneel.add(breedtelabel);
bestandpaneel.add(breedtevenster);
bestandpaneel.add(bestandgroottelabel);
bestandpaneel.add(bestandgrootte);
optiepaneel.add(prefixmaat);
optiepaneel.add(procentmaat);
optiepaneel.add(costummaat);
maatpaneel.add(lijstje);
maatpaneel.add(schuifbalk);
maatpaneel.add(resizehoogtelabel);
maatpaneel.add(resizehoogte);
maatpaneel.add(resizebreedtelabel);
maatpaneel.add(resizebreedte);
maatpaneel.add(resizeknop);
//besturingpaneel.add(lijstje);
afbeeldingpaneel.add(previewafbeelding);
besturingpaneel.setPreferredSize(new Dimension(100, 130));
besturingpaneel.add(bestandpaneel);
besturingpaneel.add(optiepaneel);
besturingpaneel.add(maatpaneel);
getContentPane().add(afbeeldingpaneel,BorderLayout.SOUTH);
getContentPane().add(besturingpaneel,BorderLayout.NORTH);
setVisible(true);
}
//ActionListener aanmaken die akties uitvoert voor knoppen
public class knopjeHandler implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
if(e.getSource() == bladerknop)
{
Bladeren();
}
else if(e.getSource() == resizeknop)
{
String veldlengte = bestandvenster.getText();
if(veldlengte.length() == 0)
{ //Popup scherm tonen als er geen image geselecteerd is
JOptionPane.showMessageDialog(test.this,"Je moet eerst een afbeelding selecteren voordat je hem kunt resizen","Error mbt image",JOptionPane.ERROR_MESSAGE);
}
else
{
}
}
}
}
private void Bladeren()
{ //zoekvenster openen zodat image geselecteerd kan worden en daarna alle gegevens in tekstvelden zetten
FileDialog bladervenster = new FileDialog(test.this,"Selecteer een bestand",FileDialog.LOAD);
bladervenster.show();
String bestandsnaam = bladervenster.getFile();
String directory = bladervenster.getDirectory();
bestandvenster.setText(directory+bestandsnaam);
picturelokatie = bestandvenster.getText();
veranderImage();
}
private void veranderImage()
{ //plaatje dat in bladervenster geselecteerd is openen en inladen
picture = getToolkit().getImage(""+picturelokatie);
MediaTracker media = new MediaTracker(this);
media.addImage(picture,0);
try
{
media.waitForID(0);
}
catch(InterruptedException ie)
{
System.out.println(ie);
}
//hoogte en breedte opvragen
int width = picture.getWidth(this);
int height = picture.getHeight(this);
File f = new File(picturelokatie);
long bestandsgrootte = f.length()/1024;
//hoogte en breedte in tekstvelden zetten
breedtevenster.setText(""+width+" px");
hoogtevenster.setText(""+height+" px");
bestandgrootte.setText(""+bestandsgrootte + " KB");
//plaatje als preview laten zien
previewafbeelding.setIcon(new ImageIcon(picture));
}
} |
Of weten jullie een efficienteren manier om een executable te maken van java applicaties
Hopelijk kunnen jullie me weer een beetje opweg helpen
www.degroot-it.nl
