11

IntelliJ で CLI Spring シェル コードに取り組んでいます。私はそれを実行し、いくつかのパラメータを与えます。しかし、insert と入力して Enter キーを押すと、コンソールはそれを受け入れず、何も起こらなかったように見えます!

私のコード:

@Component
public class HelloWorldCommands implements CommandMarker {

    @CliCommand(value = "insert", help = "insert data to ParsEMS DB")
    public void insert() {
        try {
            Class.forName("org.postgresql.Driver");
            Connection con = DriverManager.getConnection("jdbc:postgresql://localhost:5432/ParsEMS", "xxxxxx", "xxxxxxx");
            Statement st = con.createStatement();
            st.executeUpdate("INSERT INTO node (name, destination) VALUES ('b', 200)");
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println("insert to ParsEMS DB");
    }
}



public class Main {
    public static void main(String[] args) throws Exception {
        Bootstrap.main(args);
    }
}   

実行すると、以下の結果が表示されます。

1.1.0.リリース

スプリングシェルへようこそ。ヘルプが必要な場合は、「hint」を押すか入力してから ENTER を押してください。

スプリングシェル>

4

1 に答える 1

22

Spring Shell は Jline を使用します。Intellij 内の実行構成を編集し、次のように vm オプション引数を追加する必要があります。

Unix マシン:

-Djline.terminal=org.springframework.shell.core.IdeTerminal

Windows マシンの場合:

-Djline.WindowsTerminal.directConsole=false -Djline.terminal=jline.UnsupportedTerminal
于 2015-05-30T09:32:25.093 に答える