Hallo!
Folgendes Problem:
Wenn ich mein Programm in Eclipse starte, funktioniert alles wunderbar.
Wenn ich es allerdings Exportiere, bekomme ich folgenden Fehler beim Start:
Hoffe mir kann wer helfen.
Folgendes Problem:
Wenn ich mein Programm in Eclipse starte, funktioniert alles wunderbar.
Wenn ich es allerdings Exportiere, bekomme ich folgenden Fehler beim Start:
Code:
Exception in thread "main" java.lang.IllegalArgumentException: URI is not hierarchical
at java.io.File.<init>(Unknown Source)
at com.ludevstudio.passwordmanager.ItemManager.load(ItemManager.java:82)
at com.ludevstudio.passwordmanager.ManagerPanel.<init>(ManagerPanel.java:35)
at com.ludevstudio.passwordmanager.MainPane.<init>(MainPane.java:26)
at com.ludevstudio.passwordmanager.MainFrame.initComponents(MainFrame.java:54)
at com.ludevstudio.passwordmanager.MainFrame.<init>(MainFrame.java:38)
at com.ludevstudio.passwordmanager.Main.main(Main.java:9)
Java:
package com.ludevstudio.passwordmanager;
import java.awt.Component;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.Writer;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.net.URI;
import java.net.URISyntaxException;
import java.nio.file.StandardOpenOption;
import java.security.InvalidKeyException;
import java.security.KeyFactory;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.util.prefs.Preferences;
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.CipherOutputStream;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.KeyGenerator;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.SecretKeySpec;
import javax.swing.JPanel;
public class ItemManager {
JPanel panel = ManagerPanel.panel;
ArrayList<String[]> data;
public void save() {
URI fileUri = null;
try {
fileUri = getClass().getClassLoader().getResource("save.txt").toURI();
} catch (URISyntaxException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
Component[] comps = ManagerPanel.panel.getComponents();
ItemPanel[] items = new ItemPanel[comps.length];
for(int i = 0; i<items.length; i++) {
items[i] = (ItemPanel) comps[i];
}
try (FileOutputStream fos = new FileOutputStream(new File(fileUri))) {
for (ItemPanel i : items) {
String saveData = i.getProvider()+ "=" + i.getAccount() + "=" + i.getPassword() + "=" + i.getIconMode() + "=" + i.getIconSrc()+ System.getProperty("line.separator");
fos.write(saveData.getBytes());
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void load() {
try {
File file = new File(getClass().getClassLoader().getResource("save.txt").toURI());
BufferedReader reader = new BufferedReader(new FileReader(file));
// Get number of saved items
int count = 0;
BufferedReader reader2 = new BufferedReader(new FileReader(file));
while (reader2.readLine()!=null) {
count++;
}
ItemPanel[] items = new ItemPanel[count];
for(ItemPanel item : items) {
String savedData = reader.readLine();
String[] args = savedData.split("=");
String provider = args[0], account = args[1], password = args[2], iconMode = args[3], iconSrc = args[4];
item = new ItemPanel(provider, account, password, iconMode, iconSrc);
ManagerPanel.panel.add(item);
}
reader.close();
reader2.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (URISyntaxException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void delete(ItemPanel element) {
ManagerPanel.panel.remove(element);
encryptFile("Deleted Element succesfully");
}
public void encryptFile(String text) {
String password = "wassermelonewassermelone";
SecretKeySpec keySpec = new SecretKeySpec(password.getBytes(), "AES");
try {
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, keySpec);
FileOutputStream fos = new FileOutputStream(new File("save2.txt"));
fos.write(cipher.doFinal(text.getBytes()));
fos.flush();
fos.close();
} catch (NoSuchAlgorithmException | NoSuchPaddingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvalidKeyException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalBlockSizeException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (BadPaddingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Hoffe mir kann wer helfen.