ich hoffe ihr könnt mir bei diesem Problem helfen:
Ich möchte ein Java-Programm schreiben, das andere Java-Programme startet ( Die Java Programme benötigen z.T. die Variablen der Starterdatei, bzw. sollen Ihre Ergebnisse, auch in Form von Variablen bereitstellen ).
z.B.:
Starterdatei ( errechnet Wert ) --> startert ein Programm, das den Wert in eine Exceldatei einträgt und sagt der Starterdatei ob alles gut ging, die dann wiederum eine Statusmeldung abgibt.
P.S: Ich möchte nur wissen wie man die Datei startet keine Lösung für mein Beispiel!
Naja, also die Java Programme befinden sich alle in einem Projekt.
Alles was ich machen will, ist das ich eine andere Java-Klasse von meiner Hauptklasse in der alles passiert, starte und mir die Werte der Variablen zurückgeben lasse.
Bsp.:
Hauptprogramm macht nichts anderes, als andere sich im Projekt befindliche Java-Klassen aufzurufen und sich die Variablen-Wert zurück geben lassen.
/* Test.java */
public class Test {
public static void main(String[] args) {
int a = Test2.a;
Test2 t2 = new Test2();
int b = t2.b;
System.out.println("a = " + a + ", b = " + b);
}
}
Die Klasse liest die Klassenvariable a und die Instanzvariable b von Klasse Test2 aus.
Code:
/* Test2.java */
public class Test2 {
static int a = 3;
int b = 4;
}
Also wenn ich des jetzt bei mir genauso laufen lasse kommt das dabei heraus:
Exception in thread "main" java.lang.Error: Unaufgelöstes Kompilierungsproblem:
Erstellen eines statischen (static) Verweises für das nicht-statische Feld Addierer.a nicht möglich
Aber gibt es auch ne Möglichkeit die Dateien auszulesen, wenn in der auszulesenden Datei auch
public static void main(String args[] { steht??
Bsp:
Hauptklasse:
Code:
public class ExcelUpdate {
public static void main(String[] args) {
String Sex = ExcelAuslesen.StringSex;
System.out.println(Sex);
// Hier kommt noch der Code hinein der das ganze in eine ExcelTabelle schreibt....
}
}
Wenn ich das richtig sehe, schreibst du ein Programm, das einfach aus mehreren Klassen besteht.
Eine dieser Klassen ist das Hauptprogramm (, welches auch gestartet wird).
Diese Hauptklasse greift auf Methoden anderer Klassen zu. Da diese Klassen aber nicht explizit ausgeführt werden,
brauchst du doch in diesen keine main-Methode.
Die Variable(n) der Klasse, auf die zu zugreifst, legst du als Objektvariablen (Klassenvaribalen) an
Code:
public class ExcelUpdate {
public static void main(String[] args) {
ExcelAuslesen lesen = new ExcelAuslesen();
String Sex = lesen.StringSex; // besser wäre mit getMethode und Variable private
System.out.println(Sex);
}
}
Code:
import java.io.File;
import jxl.*;
class ExcelAuslesen {
String StringSex = "";
public static void main(String[] args) throws Exception {
Workbook workbook = Workbook.getWorkbook(new File("User/Users.xls"));
Sheet sheet = workbook.getSheet(0);
int Spalte = 0; // nur Klassen groß schreiben
int Zeile = 0;
Cell Sex = sheet.getCell(Spalte++,Zeile);
Cell Prename = sheet.getCell(Spalte++,Zeile);
Cell Name = sheet.getCell(Spalte++,Zeile);
Cell Street = sheet.getCell(Spalte++,Zeile);
Cell PLZ = sheet.getCell(Spalte++,Zeile);
Cell TelephoneNumber = sheet.getCell(Spalte++,Zeile);
Cell Email = sheet.getCell(Spalte++,Zeile);
Cell Status = sheet.getCell(Spalte++,Zeile);
StringSex = Sex.getContents();
workbook.close();
}
Naja das geht auch nicht. Er gib mir diesesmal eben nichts aus weil er nur
Code:
class ExcelAuslesen {
String StringSex = "";
liest.
Des Problem hier ist doch, das ich eigentlich
Code:
public static void main(String[] args) throws Exception {
rauswerfen müsste, damit mein Programm läuft, aber geanau des kann ich ja nicht da er sonst folgenden Fehler ausgibt:
Code:
Exception in thread "main" java.lang.Error: Unaufgelöstes Kompilierungsproblem:
Syntaxfehler bei Token ";", { wurde nach diesem Token erwartet
at ExcelAuslesen.<init>(ExcelAuslesen.java:27)
at ExcelUpdate.main(ExcelUpdate.java:5)
Habe vergessen die zweite Klasse zu verändern. Dort darf natürlich keine main-Methode mehr stehen.
Versuch es mal auf diese Weise (Du startest nur das Hauptprogramm):
Code:
public class ExcelUpdate {
public static void main(String[] args) {
ExcelAuslesen lesen = new ExcelAuslesen();
String Sex = lesen.getSex(); // besser wäre mit getMethode und Variable private
System.out.println(Sex);
}
}
Code:
import java.io.File;
import jxl.*;
class ExcelAuslesen {
public String getSex() {
Workbook workbook = Workbook.getWorkbook(new File("User/Users.xls"));
Sheet sheet = workbook.getSheet(0);
int Spalte = 0; // nur Klassen groß schreiben
int Zeile = 0;
Cell Sex = sheet.getCell(Spalte++,Zeile);
Cell Prename = sheet.getCell(Spalte++,Zeile);
Cell Name = sheet.getCell(Spalte++,Zeile);
Cell Street = sheet.getCell(Spalte++,Zeile);
Cell PLZ = sheet.getCell(Spalte++,Zeile);
Cell TelephoneNumber = sheet.getCell(Spalte++,Zeile);
Cell Email = sheet.getCell(Spalte++,Zeile);
Cell Status = sheet.getCell(Spalte++,Zeile);
String StringSex = Sex.getContents();
workbook.close();
return StringSex;
}
}
Nicht behandelter Ausnahmebedingungstyp (exception type) IOException
Nicht behandelter Ausnahmebedingungstyp (exception type) BiffException
at ExcelAuslesen.getSex(ExcelAuslesen.java:11)
at ExcelUpdate.main(ExcelUpdate.java:6)