NetBeans will mein Java Programm nicht Kompilieren

Ich habe ein Java Programm geschrieben das per „AES“ Wörter verschlüsseln soll, beim Kompilieren wird ein Error angezeigt der etwas mit Encode64 zu tun haben scheint.
Im Quellcode selbst werden keine Fehler angezeigt. Ich habe leider nur Anfängerwissen im Programmieren aber der Quellcode scheint in Ordnung zu sein. Ich hoffen ihr könnt mir wie sonst auch aus der Patsche helfen und ich bedanke mich schon einmal im Vorraus. :smile:

Hier habe ich noch den Fehlerhaften Compilecode oder wie man das so nennt:
ant -f C:\Users\stanly\Documents\NetBeansProjects\KrowiCrypt -Dnb.internal.action.name=rebuild clean jar
init:
deps-clean:
Updating property file: C:\Users\stanly\Documents\NetBeansProjects\KrowiCrypt\build\built-clean.properties
Deleting directory C:\Users\stanly\Documents\NetBeansProjects\KrowiCrypt\build
clean:
init:
deps-jar:
Created dir: C:\Users\stanly\Documents\NetBeansProjects\KrowiCrypt\build
Updating property file: C:\Users\stanly\Documents\NetBeansProjects\KrowiCrypt\build\built-jar.properties
Created dir: C:\Users\stanly\Documents\NetBeansProjects\KrowiCrypt\build\classes
Created dir: C:\Users\stanly\Documents\NetBeansProjects\KrowiCrypt\build\empty
Created dir: C:\Users\stanly\Documents\NetBeansProjects\KrowiCrypt\build\generated-sources\ap-source-output
Compiling 4 source files to C:\Users\stanly\Documents\NetBeansProjects\KrowiCrypt\build\classes
C:\Users\stanly\Documents\NetBeansProjects\KrowiCrypt\src\krowicrypt\crypt.java:14: warning: BASE64Decoder is internal proprietary API and may be removed in a future release
import sun.misc.BASE64Decoder;
C:\Users\stanly\Documents\NetBeansProjects\KrowiCrypt\src\krowicrypt\crypt.java:15: warning: BASE64Encoder is internal proprietary API and may be removed in a future release
import sun.misc.BASE64Encoder;
C:\Users\stanly\Documents\NetBeansProjects\KrowiCrypt\src\krowicrypt\crypt.java:42: warning: BASE64Encoder is internal proprietary API and may be removed in a future release
        BASE64Encoder myEncoder = new BASE64Encoder();
C:\Users\stanly\Documents\NetBeansProjects\KrowiCrypt\src\krowicrypt\crypt.java:42: warning: BASE64Encoder is internal proprietary API and may be removed in a future release
        BASE64Encoder myEncoder = new BASE64Encoder();
C:\Users\stanly\Documents\NetBeansProjects\KrowiCrypt\src\krowicrypt\crypt.java:66: warning: BASE64Decoder is internal proprietary API and may be removed in a future release
        BASE64Decoder myDecoder2 = new BASE64Decoder();
C:\Users\stanly\Documents\NetBeansProjects\KrowiCrypt\src\krowicrypt\crypt.java:66: warning: BASE64Decoder is internal proprietary API and may be removed in a future release
        BASE64Decoder myDecoder2 = new BASE64Decoder();
C:\Users\stanly\Documents\NetBeansProjects\KrowiCrypt\src\krowicrypt\gui.java:82: error: unreported exception Exception; must be caught or declared to be thrown
                calculate.lolrofl();
1 error
6 warnings
C:\Users\stanly\Documents\NetBeansProjects\KrowiCrypt\nbproject\build-impl.xml:923: The following error occurred while executing this line:
C:\Users\stanly\Documents\NetBeansProjects\KrowiCrypt\nbproject\build-impl.xml:263: Compile failed; see the compiler error output for details.
BUILD FAILED (total time: 0 seconds)

Hallo,

C:\Users\stanly\Documents\NetBeansProjects\KrowiCrypt\src\krowi
crypt\crypt.java:14: warning: BASE64Decoder is internal
proprietary API and may be removed in a future release

import sun.misc.BASE64Decoder;
C:\Users\stanly\Documents\NetBeansProjects\KrowiCrypt\src\krowi
crypt\crypt.java:15: warning: BASE64Encoder is internal
proprietary API and may be removed in a future release

Diese Warnungen erscheinen weil du eine interne Java Klasse verwendest. Das funktioniert, es besteht aber keine Gewähr, dass diese Klasse in zukünfigen Java Versionen enthalten ist. Davon abgesehen ist die Klasse SUN (Oracle) spezifisch und das Programm dürfte in anderen JVMs nicht laufen. Deshalb sollte man nach möglichkeit diese Klassen nicht benutzen. Base64 Encoding geht z.B. auch mit Apache commons-codec: https://commons.apache.org/proper/commons-codec/apid…

C:\Users\stanly\Documents\NetBeansProjects\KrowiCrypt\src\krowi
crypt\gui.java:82: error: unreported exception Exception; must
be caught or declared to be thrown

                calculate.lolrofl();
1 error

Das ist der eigentliche Fehler, die Methode lolrofl wirft offensichtlich unter bestimmten Umständen eine Exception die nicht abgefangen wird. Minimalbeispiel:

public class Test {

 public static void main(String[] args) {
 lolrofl();
 }

 public static void lolrofl() throws Exception {
 throw new Exception("Exception!");
 }
}

Dieser Code erzeugt beim kompilieren den selben Fehler:

heavy$ javac Test.java 
Test.java:4: error: unreported exception Exception; must be caught or declared to be thrown
 lolrofl();
 ^
1 error

Abhilfe: den Fehler in einen try {…} catch {…} Block packen oder in der aufrufenden Methode weiterreichen.

Weshalb dir netbeans das aber nicht schon als Fehler markiert kann ich auch nicht sagen.

HTH
Heavy