Java系统命令从文件加载sqlite3 db失败

2023-12-21

我正在尝试使用 java 运行系统命令来从 sql 文件加载 sqlite3 数据库。 sql 文件中没有错误,它可以使用命令行中的常规方法加载正常:

sqlite3 dbname < file.sql

我的方法:

    public void loadSqlFile(String file, boolean tearDown) {

    String s = null;

    try {
      Process p = Runtime.getRuntime().exec(
        "/usr/bin/sqlite3 " +
          database +
          " < " +
          file
      );
      p.waitFor();

      BufferedReader stdInput = new BufferedReader(new
        InputStreamReader(p.getInputStream()));

      BufferedReader stdError = new BufferedReader(new
        InputStreamReader(p.getErrorStream()));

      // read the output from the command
      System.out.println("Here is the standard output of the command:\n");
      while ((s = stdInput.readLine()) != null) {
        System.out.println(s);
      }

      // read any errors from the attempted command
      System.out.println("Here is the standard error of the command (if any):\n");
      while ((s = stdError.readLine()) != null) {
        System.out.println(s);
      }

      System.exit(0);

    } catch (IOException e) {
      LOGGER.error("Failed to load sql file (" + file + ")");
    } catch (InterruptedException e) {
      LOGGER.error("Failed to load sql file (" + file + ")");
    }

  }

正在运行的命令翻译为:

/usr/bin/sqlite3 /tmp/infinite_state_machine_root/1535223603610/control/database/ism.db < /tmp/ISMCoreActionPack_sqlite3.sql

我在标准输出上看到的错误是:

Error: near "<": syntax error

我搜索了很多运行系统命令的示例,但找不到任何可以解释此错误的内容,至少对我来说是这样!

我在那里尝试了其他命令,如 ps 等,它们似乎运行正常。

有什么建议吗?

如果这很重要的话,我会在 MAC 上运行它。


您好,您需要使用 ProcessBuilder 对输入运行重定向。应该是围绕这些线的东西。

ProcessBuilder builder = new ProcessBuilder("sqlite3", database);
builder.redirectInput(file);
Process p = builder.start(); 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java系统命令从文件加载sqlite3 db失败 的相关文章

  • 设置 SWT Shell 的默认字体

    有没有办法为整个 Shell 设置默认字体 以便任何新控件都将使用相同的字体 看来现在我必须为我创建的每个控件设置字体 这导致了太多的冗余 默认使用的字体由平台选择 请参阅中的其他信息 类字体 SWT 标准小部件工具包 http book
  • 使用 AbstractTableModel 获取 JTable 中选定的行

    我有一个JTable using AbstractTableModel我在哪里有一个JCheckBox在第一列中用于选择行 现在 我需要从已检查的表中获取选定的行 现在 我按顺序从第一行遍历到最后一行并获取所有选择的行 如下所示 List
  • 实现与扩展:何时使用?有什么不同?

    请用易于理解的语言进行解释或提供某些文章的链接 extends is for 延伸一类 implements is for 实施一个接口 接口和常规类之间的区别在于 在接口中您不能实现任何声明的方法 只有 实现 接口的类才能实现方法 C 中
  • 静态方法的 Java 内存模型

    我来自操作系统和 C 语言背景 在代码编译时 世界很简单 需要处理和理解堆栈 堆文本部分等 当我开始学习 Java 时 我确实了解 JVM 和垃圾收集器 我对静态方法感到很有趣 根据我的理解 类的所有实例都会在堆中创建 然后被清理 但是 对
  • 无法实例化接收器 com.parse.GcmBroadcastReceiver

    我正在编写一个使用 GCM 通知和解析推送的离子应用程序 这个应用程序正在使用这些插件 com ionic keyboard 1 0 3 Keyboard com phonegap plugins PushPlugin 2 4 0 Push
  • 如何识别 Java 中的不可变对象

    在我的代码中 我正在创建一个对象集合 这些对象将由各种线程以只有在对象不可变的情况下才安全的方式访问 当尝试将新对象插入到我的集合中时 我想测试它是否是不可变的 如果不是 我将抛出异常 我能做的一件事是检查一些众所周知的不可变类型 priv
  • RSA SignatureException:签名长度不正确

    我在签署 rsa 签名时遇到问题 我有一个用私钥加密的签名 然而 当我尝试使用公钥验证它时遇到问题 我得到以下异常 java security SignatureException Signature length not correct
  • Java Spring 应用程序存在内存泄漏。系统非堆内存不断增加

    我已使用 yourkit 分析器监视我的 Web 应用程序 保留最大大小的主要对象是 SessionFactoryImpl webappclassloader 和 CGlib 对象显示 spring crone调度程序会导致内存泄漏吗 我尝
  • Java 唤醒休眠线程

    我阅读了其他帖子 但没有找到我正在寻找的确切答案 所以我希望有人能给出一些澄清 我有一个将运行一段时间的程序 我有一些在后台运行的线程来执行各种任务 为了简单起见 让我们考虑 3 个线程 ThreadA每 10 秒执行一次任务 其中Thre
  • Java元数据读写

    是否可以以通用方式 对于所有图像类型 在 Java 中读取和写入元数据 我找到了一些示例 但它们总是特定的 例如 JPEG 或 PNG 我需要一些足够通用的东西 而不是到处都有 if else 语句 我不想重写源代码 但这是一个很好的例子
  • 不要模拟值对象:过于通用的规则,没有解释

    以下是 Mockito 单元测试框架的引用 不要模拟值对象 为什么有人会想要这样做呢 因为实例化对象太痛苦了 gt 无效 原因 如果创造新的装置太困难 那就是一个迹象 代码可能需要一些认真的重构 另一种方法是创建 价值对象的构建者 有一些工
  • Java:使用 Java.util.concurrent 线程访问读取线程串行端口

    我正在尝试编写一个 Java 串行设备驱动程序并想使用 对我来说是新的 java util concurrent包裹 我有一种发送数据包然后等待 ACK 的方法 我打算有炭 接收在不同的线程中运行 如果接收线程收到 ACK 它应该使用发送数
  • 使用Java开发跨平台,不同平台字体缩放不同

    我正在为我的大学制作一些软件 需要一个 GUI 在它的第一个版本中 我让它使用系统外观 因此它看起来像 Linux Mac Windows 中的本机应用程序 我发现这很麻烦 因为我必须根据操作系统使所有 JLabel 具有不同的大小 无论分
  • HTTP PUT 在 Java 中上传文件

    Edit 我想我已经弄清楚如何执行二进制数据部分 仔细检查代码 但我很确定我做对了 现在 当我尝试按照中所述完成上传时遇到新错误Vimeo API 文档 http vimeo com api docs upload streaming Ed
  • 在服务器内部调用 Web 服务

    我有一个网络服务 getEmployee 当传递 id 时 它会获取单个员工的员工详细信息 同一服务器上的另一个 Web 服务 getEmployeeList 当传递一个部门时 它会获取整个员工列表 这将获取部门的 ID 然后调用 getE
  • 我们可以有虚假中断吗?

    我正在创建一个任务轮询器 每分钟都会查找任务 它看起来像这样 public class Poller private final ExecutorService e Executors newSingleThreadExecutor pub
  • 从命令行运行 Maven 插件的语法是什么。

    我看到这里已经有人问过这个问题 如何从命令行执行maven插件 https stackoverflow com questions 12930656 how to execute maven plugin from command line
  • Google Cloud Messaging - 立即收到或长时间延迟收到的消息

    我在大学最后一年的项目中使用谷歌云消息传递 一切正常 但我在使用 GCM 时遇到了一些麻烦 通常 消息要么几乎立即传递 要么有很大的延迟 我读过这篇文章 但我真的认为它不适用于这种情况 GCM 通常会在消息发送后立即传送消息 然而 这并不总
  • 如果抛出RuntimeException,是否可以将其作为异常捕获?

    如果我有一个try抛出一个块RuntimException子类 可以是后续的catch块将其捕获为Exception 具体来说 public class MyAppException extends RuntimeException In
  • java.io.EOFException:没有更多可用数据 - 预期结束标记 关闭开始标记

    我正在使用 xmpp 开发一个聊天应用程序 根据我们的要求 我们有三台服务器 Apache Tomcat 7 ejabbered 2 1 11 和 mysql 5 5 to run xmppbot on tomcat used below

随机推荐

  • 调用 setValue 时,Extjs ComboBox 未选择正确的值

    我有以下代码 Part of a larger form xtype combo id enroller valueNotFoundText not found triggerAction all mode local fieldLabel
  • 为什么虚拟继承即使不涉及虚函数也需要一个vtable?

    我读过这个问题 C 虚拟类继承对象大小问题 https stackoverflow com questions 57481249 c virtual class inheritance object size issue 并且想知道为什么虚
  • 如何在Vue中重置CSS动画

    我有一个这样的列表 var v new Vue el app data list 1 2 3 4 5 6 7 8 9 10 methods activateClass event event target classList remove
  • Android 应用程序操作不适用于语音命令

    我正在尝试在我的 Android 应用程序中实现应用程序操作和切片 用于实现 我正在使用 应用程序操作测试工具 测试该功能 当我在工具中点击 运行 时 切片会立即加载 但切片无法与语音命令一起使用 是否可以使用语音命令启动切片 我已经在 P
  • 使用属性名称动态访问 Objective-C 属性

    我知道对象属性的字符串名称 我将如何使用字符串获取和设置该属性 虽然 weichsel 是正确的 但还有更好的方法 Use anObject valueForKey propertyName and anObject setValue va
  • webrtc-conferencing-1v3-connectionFactory.dispose()-崩溃

    我正在尝试创建一个 1v3 或 4v4 会议 无论你怎么称呼它 Android 应用程序 我已经使用 webrtc 和 socket io 成功将 4 个人连接在一起 但是当我断开其中一个用户的连接时 我遇到了 webrtc 本机崩溃 Fa
  • 如何优化 mach_msg_trap

    我知道这个问题以前曾被问过 但没有人就如何解决它给出任何有用的答案 我有一个使用 box2d 物理引擎的 cocos2d ios 应用程序 我对其进行了性能测试 CPU 将 5 6 的时间花在 mach msg trap 上 从我从其他问题
  • 在 SQL 中将行转换为列

    Table A ID COLA A value1 B value1 C value1 表B ID DETAIL ID COL X COL Y A 0 foo foo A 1 bar bar B 0 foo foo 我的预期结果是这样的 ID
  • 如何在充气布局内充气具有相同 id 的布局的多个实例

    我有一个带有许多嵌套 LinearLayout 和 TextViews 的 LinearLayout 我的主要活动是主 LinearLayout 的膨胀 然后 我从服务器加载数据 并根据收到的数据 在占位符中添加多个布局 LinearLay
  • 提交后如何保留表单中的字段值?

    提交表单后 字段值似乎被设置回空 我正在做一些表单验证 如果表单无效 我将让它显示错误列表中的错误消息 但我希望保留字段值 有没有办法做到这一点 这是我验证表单的观点 app route booking methods GET POST d
  • 通过提供 sys 路径来使用包

    我发现了这个链接 Python 在本地使用库而不是安装它 https stackoverflow com questions 9059699 python use a library locally instead of installin
  • const_cast VS 可变?有什么区别吗?

    据我了解 mutable取消constness一个变量的 Class A void foo const m a 5 mutable int m a 但是也const cast void print char str cout lt lt s
  • .Net Framework 4.0 安装程序是否包含 .Net Framework 3.5?

    针对 Net Framework 3 5 编译的 Net 组件是否可以在仅安装 Net Framework 4 0 的系统上运行 或者换句话说 Net Framework 4 0 安装程序是否包含 Net Framework 3 5 NET
  • 如何让游戏忽略Unity3D中UI按钮的点击?

    我有一个用户界面Button using UnityEngine UI 然而 点击Button似乎是点击浏览到场景中 在我的例子中单击导航网格 如何解决这个问题呢 我一直在使用典型的 Unity3D 代码来让用户投入游戏 例如 if Inp
  • 将神经网络应用于可变长度语音片段的 MFCC

    我目前正在尝试创建和训练一个神经网络 以使用 MFCC 执行简单的语音分类 目前 我为每个样本使用 26 个系数 总共 5 个不同的类别 这些是具有不同音节数的五个不同单词 虽然每个样本都有 2 秒长 但我不确定如何处理用户可以非常慢或非常
  • Android 自定义 SQLite 构建 - 无法打开数据库

    我的目标是构建一个自定义版本的 SQLite 特别是启用了 R Tree 以包含在我的 Android 项目中 动机源于 Android SQLite R Tree 如何安装模块 https stackoverflow com questi
  • 使用 uwp 应用程序打开任何类型的文件(无需文件关联)

    我正在制作一个简单的 uwp 文本编辑器应用程序 我希望应用程序打开任何类型的文件 即使没有声明文件关联 因为有许多文本文件在操作系统中没有已知的扩展名 有什么方法可以修改注册表 让我的应用程序在 打开方式 列表中可用 例如记事本 以便用户
  • Python 中的快速字符串到整数转换

    实际上 这是一个简单的问题 您有 10 亿 1e 9 个无符号 32 位整数作为十进制 ASCII 字符串存储在 TSV 制表符分隔值 文件中 转换使用int 与处理相同数据集的其他工具相比 速度非常慢 为什么 更重要的是 如何让它更快 因
  • 使用 WIX 并行安装同一 IIS 站点的版本

    是否可以使用 WIX 并行安装同一 IIS 网站的多个版本 包括单独升级它们的能力吗 我到处搜索 但在互联网上找不到任何相关内容 另外 为什么在每次构建时使用热量自动收集文件是不可以的 如果您在开发过程中大量添加视图 模型 控制器 那么当文
  • Java系统命令从文件加载sqlite3 db失败

    我正在尝试使用 java 运行系统命令来从 sql 文件加载 sqlite3 数据库 sql 文件中没有错误 它可以使用命令行中的常规方法加载正常 sqlite3 dbname lt file sql 我的方法 public void lo