是否可以通过java代码中的jdbc运行linux shell命令?如何运行? 我一直在尝试:
Class.forName("com.mysql.jdbc.Driver");
connect = DriverManager.getConnection("jdbc:mysql://" + this.host + "/" + this.db + "?", properties);
statement = connect.createStatement();
String sql = "\\! touch /home/dbsms/testfile";
statement.execute(sql);
但是我得到“您的SQL语法有错误;”错误。我尝试这样做的原因: MySQL服务器正在受保护(无Internet)网络上的计算机上运行。我的Java应用程序旨在处理数据库。它是一个文档管理数据库。因此,将新文档插入数据库后,我需要通知用户。同一网络上还有另一台能够发送SMS的计算机。我需要创建一个包含SMS文本的文件,并将其命名为电话号码,然后SMS机器上的守护进程将对其进行处理。我知道有些库可以让我通过ssh在远程计算机上执行shell命令,但如果可能的话,我想使用jdbc。
答案 0 :(得分:0)
使用jdbc,我们正在建立数据库连接,这必须给出有效的sql语句才能执行。因此,您遇到了错误。
但是,使用Java可以执行shell命令。 This article将为您提供帮助。
答案 1 :(得分:0)
不是,JDBC用于在数据库中执行SQL语句。
Java可以运行OS级别的命令,但仅限于运行JVM的框中。
在我看来(我可能错了),您想在服务器而不是本地计算机中运行它们。如果是这种情况,则可能需要使用SSH或类似方法打开与服务器的远程连接,以便远程运行命令。