グレイティングス、
皆さんが私の問題を解決するのを手伝ってくれることを願っています。私はJcursesライブラリをセットアップしようとしましたが、その結果、ワークスペースのパスしかないコンテンツなしでcmd.exeを開始するだけでした。
多くのハウツーを読みましたが、どれもうまくいきませんでした。Jcurses の元のチュートリアルも試しました。
================================================== ======
JCurses アプリケーションの実行方法
上記の問題を回避するには、まず、プログラムの起動に使用されているコマンドを特定する必要があります。
指示:
ステップ 1) Java アプリを通常どおり実行し (失敗しても問題ありません)、デバッグ ビューに切り替えます。
ステップ 2) プロセスを右クリックし、[プロパティ] を選択してプロパティ ウィンドウを開きます。
手順 3) プログラムの起動に使用するコマンドライン パラメータを選択してコピーします。
ステップ 4) [外部ツール] (小さな赤いツールボックスのある再生アイコン) の横にある矢印ボタンを押して、[外部ツールの構成] をクリックします。
ステップ 5) 次のデータを使用して、新しい構成を作成します。 場所: Windows OS の cmd.exe へのパス。例: C:\WINXP\system32\cmd.exe 作業ディレクトリ: 任意の作業ディレクトリ。引数: "/c start C:\WINXP\system32\cmd.exe /k " の後に、以前にコピーしたコマンドが続きます。例: /c start C:\WINXP\system32\cmd.exe /k C:\Programme\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 内からアプリケーションを楽しむことができます。
私の external-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\Desktop\Android\jcurses\lib\jcurses.jar" テストウィン
このコードを使用してコンソールを実行しました
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();
}
}
}
さらに情報が必要な場合はお知らせください。すぐにお答えします