特定のファイルを開き、すぐにファイルを c:\temp フォルダーに保存する JEdit (BeanShell) マクロがあります (実際のファイルを誤って更新しないようにするため)。
Bean シェル コードは次のとおりです。
logFilePath = "c:\\temp\\aj.txt";
jEdit.openFile( view , logFilePath );
_buffer = jEdit.getBuffer(logFilePath);
_buffer.save(view,"c:\\temp\\backup.txt",true);
これにより、次のエラーが表示されます。
I/O Error
Each buffer can only execute one input/output operation at a time.
Please wait until the current operation finishes
(or abort it in the I/O progress monitor) before starting another one.
true になるまで待機する while ループを追加しようとしました buffer.isLoaded()
が、それは無限ループに入ります。
機能しているように見えるのは、メッセージ ボックス ( ) のポップアップです Macros.message
。しかし、私はこの不必要な対話を本当にしたくありません。
私はJavaをあまり知らないので、初歩的な間違いを犯している場合は教えてください。
アップデート:
Serhiiの回答から指摘されたコードを表示するために、私自身の回答を追加しました。