Библиотека Java Eclipse JCurses не работает после нескольких часов ее исправления

ПОЗДРАВЛЕНИЯ,

Я надеюсь, что вы, ребята, можете помочь мне решить мою проблему. Я пытался настроить библиотеку Jcurses, но в результате он просто запустил cmd.exe без какого-либо содержимого, там был только путь к рабочей области.

Я прочитал много инструкций, но ни один из них не сработал. Я также попробовал с оригинальным учебником Jcurses:

================================================== ======

Как запустить приложение JCurses

Чтобы обойти вышеупомянутую проблему, сначала нужно определить команду, используемую для запуска вашей программы.

Инструкции:

Шаг 1) Запустите приложение Java как обычно (не имеет значения, если оно выйдет из строя) и переключитесь в режим отладки.

Шаг 2) Щелкните правой кнопкой мыши по процессу и откройте окно свойств, выбрав "Свойства".

Шаг 3) Выберите и скопируйте параметр командной строки, используемый для запуска программы.

Шаг 4) Нажмите кнопку со стрелкой рядом с "Внешние инструменты" (значок воспроизведения с небольшой красной панелью инструментов) и нажмите "Настройка внешних инструментов"

Шаг 5) Создайте новую конфигурацию со следующими данными: Расположение: путь к cmd.exe вашей ОС Windows. Например: C:\WINXP\system32\cmd.exe Рабочий каталог: любой рабочий каталог, который вы хотите. Аргументы: "/c start C:\WINXP\system32\cmd.exe /k ", за которым следует ранее скопированная команда. Например: /c запустить C:\WINXP\system32\cmd.exe /k C:\Program \Java\jre6\bin\java.exe -Dfile.encoding=Cp1252 -classpath "C:\Dokumente und Einstellungen\mccae\Eigene Dateien\javawork\TWCC+\bin" at.co.lipski.twcc2.console.TWCCDaemon

Обратите внимание, что вам необходимо заключить в кавычки (") пути, содержащие пробельные символы. Приведенная выше команда запустит ваше приложение в новом отдельном окне консоли, которое будет оставаться открытым, пока вы не закроете его вручную. Теперь вы можете запустить вновь созданную конфигурацию и наслаждаться приложением из Eclipse.

Мой внешний-tools-config выглядит так

Позиция: C:\Windows\System32\cmd.exe

Рабочая область: ${workspace_loc:/Azubi Storys}

Аргументы: "/c start C:\Windows\System32\cmd.exe /k" "C:\Program Files\Java\jre1.8.0_25\bin\javaw.exe" -Dfile.encoding=Cp1252 -classpath "C:\Users\YAlSabiry\Desktop\Android\Eclipse Projekte\Azubi Storys\bin;C:\Users\YAlSabiry\ Рабочий стол \Android\jcurses\lib\jcurses.jar" Testwin

и я использовал этот код для запуска консоли

import jcurses.event.ActionEvent;
import jcurses.event.ActionListener;
import jcurses.event.ItemEvent;
import jcurses.event.ItemListener;
import jcurses.event.ValueChangedEvent;
import jcurses.event.ValueChangedListener;
import jcurses.event.WindowEvent;
import jcurses.event.WindowListener;
import jcurses.system.CharColor;
import jcurses.system.Toolkit;
import jcurses.util.Message;
import jcurses.util.Protocol;
import jcurses.widgets.BorderPanel;
import jcurses.widgets.Button;
import jcurses.widgets.CheckBox;
import jcurses.widgets.FileDialog;
import jcurses.widgets.GridLayoutManager;
import jcurses.widgets.Label;
import jcurses.widgets.List;
import jcurses.widgets.PasswordField;
import jcurses.widgets.PopUpMenu;
import jcurses.widgets.TextArea;
import jcurses.widgets.Widget;
import jcurses.widgets.WidgetsConstants;
import jcurses.widgets.Window;

public class Testwin extends Window implements ItemListener, ActionListener,
        ValueChangedListener, WindowListener, WidgetsConstants {

    public static void main(String[] args) throws Exception {
        // Protocol initialisieren
        System.setProperty("jcurses.protocol.filename", "jcurses.log");
        Protocol.activateChannel(Protocol.DEBUG);
        Protocol.debug("Programm beginnt");
        Toolkit.beep();
        Window test = new Testwin(28, 20);
        test.addListener((WindowListener) test);
        test.show();
    }

    private Button _b1 = null;
    private Button _b2 = null;
    private List _list = null;
    private TextArea _textArea = new TextArea(-1, -1,
            "1111\n2222\n3333\n4444\n\n66666\n77777\n888888\n99999999999999999\n1010100101");
    private PasswordField _pass = new PasswordField();
    public Testwin(int width, int height) {
        super(width, height, true, "Test");
        BorderPanel bp = new BorderPanel();
        new CheckBox();
        new CheckBox(true);
        new Label("textfeld");
        new Label("checkbox2");
        _b1 = new Button("OK");
        _b1.setShortCut('o');
        _b1.addListener(this);
        _b2 = new Button("Cancel");
        _b2.setShortCut('p');
        _b2.addListener(this);
        _list = new List();
        _list.add("item1");
        _list.add("item201234567890123456789");
        _list.add("item3");
        _list.add("item4");
        _list.add("item5");
        _list.addListener(this);
        _list.getSelectedItemColors().setColorAttribute(CharColor.BOLD);
        GridLayoutManager manager1 = new GridLayoutManager(1, 1);
        getRootPanel().setLayoutManager(manager1);
        manager1.addWidget(bp, 0, 0, 1, 1, ALIGNMENT_CENTER, ALIGNMENT_CENTER);
        GridLayoutManager manager = new GridLayoutManager(2, 5);
        bp.setLayoutManager(manager);
        manager.addWidget(_list, 0, 0, 1, 4, ALIGNMENT_TOP, ALIGNMENT_CENTER);
        manager.addWidget(_textArea, 1, 0, 1, 2, ALIGNMENT_CENTER,
                ALIGNMENT_CENTER);
        manager.addWidget(_pass, 1, 2, 1, 2, ALIGNMENT_CENTER, ALIGNMENT_CENTER);
        manager.addWidget(_b1, 0, 4, 1, 1, ALIGNMENT_CENTER, ALIGNMENT_CENTER);
        manager.addWidget(_b2, 1, 4, 1, 1, ALIGNMENT_CENTER, ALIGNMENT_CENTER);
    }

    public void actionPerformed(ActionEvent event) {
        Widget w = event.getSource();
        if (w == _b1) {
            Protocol.debug("point1");
            FileDialog dial = new FileDialog("File wählen");
            Protocol.debug("point2");
            dial.show();
            Protocol.debug("point3");
            if (dial.getChoosedFile() != null) {
                new Message("Meldung!", dial.getChoosedFile().getAbsolutePath(), "OK").show();
            }
            Protocol.debug("point4");
            _pass.setVisible(!_pass.isVisible());
            pack();
            paint();
        } else {
            new Message("Meldung!", "01234567890\nassssssss\naaaaaaa\naaaaaa",
                    "CANCEL").show();
            PopUpMenu menu = new PopUpMenu(53, 5, "test");
            for (int i = 1; i < 100; i++) {
                if ((i == 35) || (i == 4)) {
                    menu.addSeparator();
                } else {
                    menu.add("item" + i);
                }
            }
            menu.show();
            new Message("meldung", menu.getSelectedItem() + ":"
                    + menu.getSelectedIndex(), "OK").show();
        }

        // close();

    }

    public void stateChanged(ItemEvent e) {
        Protocol.debug("-----------------");
        new Message("meldung", e.getItem() + ":" + e.getType(), "OK").show();
    }

    public void valueChanged(ValueChangedEvent e) {
        new Message("Alarm", "Geändert in ", "" + _list.getSelectedIndex())
                .show();
    }

    public void windowChanged(WindowEvent event) {
        Protocol.debug("window event: " + event.getType());
        if (event.getType() == WindowEvent.CLOSING) {
            event.getSourceWindow().close();
        }
    }
}

Если вам нужна дополнительная информация, пожалуйста, дайте мне знать, я отвечу быстро

1 ответ

Удалось запустить это со следующими аргументами:

"/ c Запустить C:\Windows\System32\cmd.exe /k""C:\Program Files\Java\jdk1.7.0_25\bin\java" -Dfile.encoding=Cp1251 -classpath "C:\Users\username\workspace\JCurses_Example\bin;C:\Users\username.m2\repository\jcurses\lib\jcurses.jar" Testwin

Обратите внимание, что между кавычками нет пробелов.../k""C:\Progr... и мой исполняемый файл java - это java.exe, а не...\bin\javaw.exe, как указано в ваших аргументах.

Другие вопросы по тегам