我想从 java 创建 sqlite 数据库的转储文件,但无法从 Linux 运行以下命令。我得到了 Windows 的帮助,并尝试使用 Linux,但似乎只有一个终端。那么谁能帮我在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 数据库的完整转储文件。