F
Furtano
Gast
Habe das Programm mit
übersetzt.
Klassen-Dateien und Quelldateien befinden sich im selben Ordner.
Gab keine Fehler. Wenn ich es jetzt mit
starten möchte bekomme ich die Fehlermeldung:
Folgendes funktioniert auch nicht:
Hauptklasse
Code:
javac *.java
übersetzt.
Klassen-Dateien und Quelldateien befinden sich im selben Ordner.
Gab keine Fehler. Wenn ich es jetzt mit
Code:
java -cp htw.beleg Beleg
starten möchte bekomme ich die Fehlermeldung:
Code:
Fehler: Hauptklasse Beleg konnte nicht gefunden oder geladen werden
Folgendes funktioniert auch nicht:
Code:
C:\Users\chris\Desktop\uni\prog3\beleg\src>java -cp htw Beleg
Exception in thread "main" java.lang.NoClassDefFoundError: Beleg (wrong name: ht
w/Beleg)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
Hauptklasse
PHP:
package htw;
import java.awt.Dimension;
import java.awt.Image;
import java.awt.Toolkit;
import java.io.File;
/**
* Hauptklasse zum:
* - Anzeigen von Bildern
* - Histogrammen berechnen und anzeigen
* - Farbauszuege berechnen und anzeigen
*/
public class Beleg {
/**
* Konfiguriert das Fenster
* @param args Kommandozeilenargumente
*/
public static void main(String[] args) {
if (args.length == 0){
System.err.println("Kein Bild uebergeben!");
}
else if (args.length == 1){
boolean exists = (new File(args[0])).exists();
//Existiert die Datei auf der Festplatte?
if (exists) {
//Nur JPG-Dateien sollen geoeffnet werden
//Ueberpruefung anhand der Dateiendung
if (args[0].endsWith("jpg") || args[0].endsWith("jpeg")) {
ImageToolK pct1 = new ImageToolK(args[0]);
Image foto1 = pct1.getImage();
Window fenster_main_1 = new Window(args[0], foto1);
String filename = new File(args[0]).getName();
fenster_main_1.setTitle(filename);
// Aktuelle Bildschirmaufloesung
Dimension dim = ImageToolK.getActualScreenSize();
Integer actualXSize = 0;
Integer actualYSize = 0;
// Benoetigte Breite
Integer picNeededSizeX = (pct1.getImageSizeX()+((pct1.getImageSizeX())/2)*3) + fenster_main_1.getInsets().left + fenster_main_1.getInsets().right;
// Benoetigte Hoehe
Integer picNeededSizeY = (pct1.getImageSizeY() + fenster_main_1.getInsets().top + fenster_main_1.getInsets().bottom);
// Wenn es in der Breite UND der Hoehe groesser als die Bildschirmaufloesung ist
if (picNeededSizeX > dim.width && picNeededSizeY > dim.height) {
// Falls in der Breite kleiner skaliert werden muss als in der Hoehe
if (((double)dim.width / picNeededSizeX) < ((double)dim.height / picNeededSizeY)) {
actualYSize = (int) (picNeededSizeY * ((double)dim.width / picNeededSizeX));
fenster_main_1.setSize(dim.width, actualYSize);
}
// Falls gleich oder in der Hoehe kleiner skaliert werden muss
else {
actualXSize = (int) (picNeededSizeX * ((double)dim.height / picNeededSizeY));
fenster_main_1.setSize(actualXSize, dim.height);
}
}
// Wenn es in der Breite groesser als die Bildschirmaufloesung ist
if (picNeededSizeX > dim.width && picNeededSizeY < dim.height) {
System.out.println(picNeededSizeX);
actualYSize = (int) (picNeededSizeY * ((double)dim.width / picNeededSizeX));
System.out.println(actualYSize);
fenster_main_1.setSize(dim.width, actualYSize);
}
// Wenn es in der Hoehe groesser als die Bildschirmaufloesung ist
if (picNeededSizeX < dim.width && picNeededSizeY > dim.height) {
actualXSize = (int) (picNeededSizeX * ((double)dim.height / picNeededSizeY));
fenster_main_1.setSize(actualXSize, dim.height);
}
// Wenn es weder in der Breite noch in der Hoehe groesser als die Bildschirmaufloesung ist
if (picNeededSizeX < dim.width && picNeededSizeY < dim.height) {
fenster_main_1.setSize(picNeededSizeX, picNeededSizeY);
}
fenster_main_1.addWindowListener(new CloseAdapter());
fenster_main_1.setVisible(true);
}
else {
System.err.println("Dateiendung nicht .jpg oder .jpeg -> Waehlen Sie eine JPG-Datei aus!");
}
}
else {
System.err.println("Diese Datei existiert nicht: " + args[0]);
}
}
else {
System.err.println("Zu viele Bilder uebergeben!");
}
}
}
Zuletzt bearbeitet von einem Moderator: