Javaでsqliteデータベースのダンプファイルを生成したいのですが、Linuxでは次のコマンドを実行できません。 Windowsの助けを借りてLinuxを試してみましたが、端末が1つしかないようです。それでは、Linuxでこのコマンドを書く方法を誰が助けることができますか?
Process p = Runtime.getRuntime().exec("cmd /c start /b sqlite3 db.sqlite .dump > dump.txt");
Linuxでの実装は次のとおりです。
String command= "/usr/bin/xterm";
Runtime rt = Runtime.getRuntime();
Process p = rt.exec(new String[]{command , "/home/ubuntu/test.sqlite .dump > /home/ubuntu/newsql111.sql"});
誰でも私のエラーがどこにあるのか教えてもらえますか?
答え1
xtermは必要ありませんが、sqlite3は必要です。それがあなたが走っているのです。
/usr/bin/xterm /home/ubuntu/test.sqlite .dump > …
本当に走らなければならないとき
/bin/sh -c "sqlite3 /home/ubuntu/test.sqlite .dump > …"
データベースが.../test.sqliteであるとします。 Javaの詳細はあなたに任せます。
答え2
解決策が見つかりました。
Process p = rt.exec(new String[]{"/bin/sh", "-c", "sqlite3 /home/ubuntu/testingdb.sqlite .dump > /home/ubuntu/success11.sql"});
sqliteデータベースの完全ダンプファイルを提供します。