So I have a programm that is supposed to write text, which uses unicode, to a file. Everythhing works when I do it through Eclipse, but not when exxported. Here is what it looks like when I do it through Eclipse:
Все товары: Ted По цене: 100руб Дерп По цене: 10руб Дерп По цене: 10руб Дерп По цене: 10руб Дерп По цене: 10руб Дерп
По цене: 10руб Дерп По цене: 10руб Дерп По цене: 10руб Дерп По цене: 10руб Дерп По цене: 10руб Дерп По цене: 10рубПроданные товары: Ted По цене: 100руб Дерп По цене: 10руб Дерп По цене: 10руб Дерп По цене: 10руб Дерп По цене:
10руб Дерп По цене: 10руб Дерп По цене: 10руб Дерп По цене: 10руб Дерп По цене: 10руб Дерп По цене: 10руб Дерп По цене: 10рубНе проданные товары:
Всего пренесенно: 11 Кол-во проданно: 11 Кол-во не проданно: 0 Выручка: 200руб
And this is what it looks like when I do it from a built jar:
??? ??????:
????????? ??????: Ted ?? ????: 100??? ???? ?? ????: 10??? ???? ?? ????: 10??? ???? ?? ????: 10??? ???? ?? ????:
10??? ???? ?? ????: 10??? ???? ?? ????: 10??? ???? ?? ????: 10??? ???? ?? ????: 10??? ???? ?? ????: 10??? ???? ?? ????: 10????? ????????? ??????:
????? ??????????: 11 ???-?? ????????: 11 ???-?? ?? ????????: 0 ???????: 200???
Here is my code:
public void writeToFile(Purchase purchase, String dir) throws Exception {
        file = new File(dir);
        if (!file.exists()) {
            file.createNewFile();
        }
        printer.println(purchase.getName() + "   По цене:   "
                + purchase.getPrice() + "руб");
        Timer timer = new Timer();
    }
    public void writeFooter(List<Purchase> list) throws Exception {
        int amountSold = 0;
        int amountNotSold = 0;
        int moneyRecieved = 0;
        if (file == null) {
            file = new File(dir);
        }
        if (!file.exists()) {
            file.createNewFile();
        }
        openStreams();
        printer.println("Все товары: ");
        for(int i = 0; i < list.size();i++){
            writeToFile(list.get(i), dir);
        }
        printer.println();
        printer.println("Проданные товары: ");
        for (int i = 0; i <= list.size() - 1; i++) {
            if (list.get(i).isSold()) {
                writeToFile(list.get(i), dir);
                amountSold++;
                moneyRecieved += list.get(i).getPrice();
            }
        }
        printer.println();
        printer.println("Не проданные товары: ");
        for (int i = 0; i <= list.size() - 1; i++) {
            if (!list.get(i).isSold()) {
                writeToFile(list.get(i), dir);
                amountNotSold++;
            }
        }
        printer.println();
        printer.println("Всего пренесенно: " + list.size());
        printer.println("Кол-во проданно: " + amountSold);
        printer.println("Кол-во не проданно: " + amountNotSold);
        printer.println("Выручка: " + moneyRecieved + "руб");
        closeStreams();
}