通过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应用程序是用来操作db的。它是一个文档管理数据库。因此,一旦一个新文档被插入到数据库中,我就需要通知用户。同一网络上有另一台机器可以发送短信息。我需要的是创建一个文件,其中包含一条短信的文本,并命名为一个电话号码,短信机上的执事将拿起它并处理。我知道有些libs可以让我通过ssh在远程计算机上执行shell命令,但如果可能的话,我希望使用jdbc。
2条答案
按热度按时间yrwegjxp1#
不,jdbc用于在数据库中执行sql语句。
java可以运行os级命令,但它们仅限于jvm运行的框。
听起来(我可能错了)你想在服务器上运行它们,而不是在本地机器上运行。如果是这种情况,那么您需要打开到服务器的远程连接,可能需要使用ssh或类似的方法来远程运行您的命令。
pgccezyw2#
在jdbc中,我们有一个数据库连接,我们必须给出一个有效的sql语句来执行。所以你得到了以上的错误。
但是,使用java可以执行shell命令。这篇文章对你有帮助。