1

システムの日付と時刻を変更する機能を持つ GWT アプリケーションに取り組んでいます。Linux の date コマンド (例: date 052810242012) を実行するには、次の行を実行しますが、その後 tomcat がフリーズします。

Runtime.getRuntime().exec(this.command);  // where this.command is the date command 

アプリケーションが稼働していて、端末でシステムの日付と時刻を変更しても、とにかくアプリケーションがフリーズすることに気付きました。

誰かが理由を説明できますか?

4

1 に答える 1

1

まず、あなたが実行したいコマンドは root のみのコマンドだと思います。そのため、アプリケーションの所有者が sudoer であり、そのコマンドを実行する権限があることを確認する必要があります。

2 つ目Runtime.getRuntime().exec()は、JAVA のシステム コマンドを実行するためのインターフェイスを提供しますが、テミナで直接実行する場合とは違いがあります。これは、入力と出力自体を処理し、ターミナルのように画面に出力しないため、結果を処理する必要があるためです。コマンドを JVM で実行するか、コマンドを出力なしで実行可能なシェル スクリプトに書き込み、呼び出します。 Runtime.getRuntime().exec(sudo","./a.sh"};

最後に、ターミナルで日付と時刻を変更するときに言及した問題により、アプリケーションがフリーズします。これは今まで見たことがありません。その詳細を説明していただけますか?</p>

于 2012-09-23T15:40:39.707 に答える