java - 如何将我的代码转换为可执行 jar 文件

标签 java eclipse

由于某些原因,我无法将我的项目转换为可执行 jar 文件,尽管它在我启动 eclipse 时有效,请给我一个解决方案。我认为我需要找到一种方法使我的代码具有主函数,但是我一尝试就无法做到这一点,它说静态方法不能调用非静态方法。 这是代码:

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.util.Random;

public class Kartuvės extends Applet implements ActionListener{
static final int MIRTIS=13; // maksimalus klaidū skaičius
public int klaidos; // dabartinis klaidū skaičius
public String zinute; // laimėjimas ar pralaimėjimas
public String informacija; // informacija
public String aZodis; // A Žodis
public StringBuffer bZodis;// Bžodis
public Button bIsNaujo; // Mygtukas "Iš Naujo"
public Button bSpek; // Mygtukas "Spėk"
public TextField tfRaide; // Dėžutė spėjamai raidei
public Font fnt; // paprastas šriftas


public  void init(){
fnt = new Font( "Monospaced", 0, 12 );
setFont(fnt);
// Dėžutės į kurią rašoma raidė sukurimas
tfRaide = new TextField();
// mygtukų ir užrašų sukurimas
bIsNaujo = new Button("Iš naujo");
bSpek = new Button("Spėti");
// ankčiau aprašytų elementų pridėjimas
add(bIsNaujo);
add(new Label("Spėk raidę : "));
add(tfRaide);
add(bSpek);
// Java laukia kol paspaus mygtuka
bIsNaujo.addActionListener(this);
bSpek.addActionListener(this);
// žaidimo pradžia
initGame();
}
public void initGame(){
/* klaidų nustatymas ( jei 0 pradedama piešti nuo žemės jei daugiau pradedama piešti nuo tam tikros vietos)*/
klaidos=7;
/* žodžiai atskirti simboliu | vedami čia */
String str =   "computer|radio|calculator|teacher|bureau|police|geometry|president|subject|country|enviroment|classroom|animals|province|month|politics|puzzle|instrument|kitchen|language|vampire|ghost|solution|service|software|virus25|security|phonenumber|expert|website|agreement|support|compatibility|advanced|search|triathlon|immediately|encyclopedia|endurance|distance|nature|history|organization|international|championship|government|popularity|thousand|feature|wetsuit|fitness|legendary|variation|equal|approximately|segment|priority|physics|branche|science|mathematics|lightning|dispersion|accelerator|detector|terminology|design|operation|foundation|application|prediction|reference|measurement|concept|perspective|overview|position|airplane|symmetry|dimension|toxic|algebra|illustration|classic|verification|citation|unusual|resource|analysis|license|comedy|screenplay|production|release|emphasis|director|trademark|vehicle|aircraft|experiment";
String[] temp;
/* simbolis atskiriantis žodžius */
String delimiter = "\\|";
/* atskyrėjas "supjausto" simbolių eilutę */
temp = str.split(delimiter);
Random randomGenerator = new Random();
/* sugeneruojamas atsitiktinis numeris */
int randomInt = randomGenerator.nextInt(temp.length);
aZodis = new String(temp[randomInt]);
char positions[] = new char[aZodis.length()];
for (int i=0; i<aZodis.length(); i++) {
positions[i] = '.';
}
String s = new String(positions);
bZodis = new StringBuffer(s);
tfRaide.setText("");
// žinučių ištrinimas
zinute="";
informacija = "";
repaint();
}
public void paint(Graphics g) {
// Kartuvių piešimas
int baseY = 250;
if (klaidos > 0){ // žemė
g.drawLine(90, baseY,200,baseY);
}
if (klaidos > 1){ // strypas į viršų
g.drawLine(125,baseY,125,baseY-100);
}
if (klaidos > 2){ // primas pasviras strypas 
g.drawLine(110,baseY,125,baseY-15);
}
if (klaidos > 3){ // antras pasviras strypas
g.drawLine(140,baseY,125,baseY-15);
}
if (klaidos > 4){ // šoninis strypas
g.drawLine(125,baseY-100,175,baseY-100);
}
if (klaidos > 5){ // 
g.drawLine(125,baseY-85,140,baseY-100);
}
if (klaidos > 6){ // virvė
g.drawLine(175,baseY-100,175,baseY-75);
}
if (klaidos > 7){ // galva
g.drawOval(170,baseY-75,10,12);
}
if (klaidos > 8){
g.drawOval(170,baseY-65,15,25);
}
if (klaidos > 9){ // rankos
g.drawLine(160,baseY-65,170,baseY-60);
}
if (klaidos > 10){
g.drawLine(183,baseY-60,193,baseY-65);
}
if (klaidos > 11){ // kojos
g.drawLine(165,baseY-30,170,baseY-45);
}
if (klaidos > 12){
g.drawLine(183,baseY-45,193,baseY-30);
}
// rodoma zinute
g.drawString( zinute, 40, baseY+25 );
g.drawString( informacija, 25, baseY+45 );
g.drawString( new String (bZodis), 110, 60);
}
public void actionPerformed(ActionEvent e){
if (e.getSource() == bIsNaujo){
initGame();
}
if (e.getSource() == bSpek){
processTurn();
// Delete the letter input box
tfRaide.setText("");
repaint();
}
}
private void processTurn(){
String s, t;
char a;
s = tfRaide.getText();
a = s.charAt(0);
if (!Character.isLetter(a)){
zinute="vesk tik paprastas raides !";
return;
}
if (s.length()>1){
zinute="Tik po vieną raidę";
return;
}
// ar raidė jau buvo atspėta
t = new String(bZodis);
if (t.indexOf(s) != -1){
zinute="Šią raidę jau atspėjai";
return;
}
// Jei reidės žodyje nėra
if (aZodis.indexOf(s) == -1){
zinute="";
klaidos++;
if (klaidos==MIRTIS){
zinute="Pralaimėjai";
informacija =
"Spausk Iš naujo jei nori pabandyti dar kartą";
}
return;
}
// taškų pakeitimas atspėta raide
for (int i=0; i<aZodis.length(); i++){
if (aZodis.charAt(i) == a){
bZodis.setCharAt(i, a);
}
}
t = new String(bZodis);
// Jei atspėtos visos raidės
if (t.indexOf('.') == -1){
zinute="Laimėjai";
return;
}
// Žinutės ištrinimas
zinute="";
repaint();
}
}

最佳答案

添加静态主函数并在其中启动您的类:

public static void main(String[] args)
{
    Kartuves obj = new Kartuves();
    obj.init(); // Or do whatever you need
}

并且您不应在类名或变量中使用变音符号。

比你能的export executable file from Eclipse .

关于java - 如何将我的代码转换为可执行 jar 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23855030/

相关文章:

java - 查找数字 600851475143 的最大质因数的更有效方法

java - 如何在 Spring-Integration 中将 SOAPAction header 添加到 HTTP 消息中?

Java——私有(private)构造函数 vs final 等等

android eclipse 使用地址而不是纬度和经度来启动 map 的 Intent

Java 内存模型保证 volatile

java - 引用字符串数组中的前一个字符串

java - HibernateTemplate 和 Spring @Transactional 如何协同工作?

java - Eclipse - 字符串引号内的拼写检查 ""

java - 以编程方式在工作区中查找接口(interface)的引用

java - MySQL、Eclipse 和 Java - 是否需要 Ant?