从Java在终端中执行Linux命令
我目前正在Ubuntu的终端上使用一个名为“curl”的命令,将我的.RDF文件上传到Virtuoso RDF商店从Java在终端中执行Linux命令,java,eclipse,ubuntu,terminal,virtuoso,Java,Eclipse,Ubuntu,Terminal,Virtuoso,我目前正在Ubuntu的终端上使用一个名为“curl”的命令,将我的.RDF文件上传到Virtuoso RDF商店 curl -T FILE URL -u USER:PASSWORD 我想自动化这些过程,以便在eclipse中创建一个Java函数。此代码不起作用 String[] command = {"curl -T", FILENAME, URL, "-u", credentials.USERNAME+":"+credentials.PASSWORD}; Runtime.getRuntim
curl -T FILE URL -u USER:PASSWORD
我想自动化这些过程,以便在eclipse中创建一个Java函数。此代码不起作用
String[] command = {"curl -T", FILENAME, URL, "-u", credentials.USERNAME+":"+credentials.PASSWORD};
Runtime.getRuntime().exec(command)
我也试过这个。出现xterm,但显示此错误(即使文件位于函数路径中):
在这件事上,如果有任何帮助,我将不胜感激
提前感谢使用Runtime.exec通常是个坏主意,为什么不使用Java HTTP API上载文件呢 使用Runtime.exec通常是个坏主意,为什么不使用Java HTTP API上载文件呢 使用Runtime.exec通常是个坏主意,为什么不使用Java HTTP API上载文件呢 使用Runtime.exec通常是个坏主意,为什么不使用Java HTTP API上载文件呢 过去,我很难使用
Runtime.exec()
运行命令。无论如何,我已经转向使用ProcessBuilder
,如下所示:
ProcessBuilder pbuilder = new ProcessBuilder("bash", "-c", <<your command as string>>);
File err = new File("err.txt");
try {
pbuilder.redirectError(err);
Process p = pbuilder.start();
p.waitFor();
} catch (Exception e)
{
//handle exceptions if any.
}
ProcessBuilder-pbuilder=newprocessbuilder(“bash”和“-c”);
File err=新文件(“err.txt”);
试一试{
pbuilder.redirectError(err);
进程p=pbuilder.start();
p、 waitFor();
}捕获(例外e)
{
//处理异常(如果有)。
}
出于调试目的,stderr行是可选的。我确信它可以直接打印到控制台,但还没有检查过。一旦我找到更多,将更新我的答案
您可以查看文档页面
PS:还要检查您是否具有执行所需任务所需的权限。过去,我一直很难使用
Runtime.exec()运行命令。无论如何,我已经转向使用ProcessBuilder
,如下所示:
ProcessBuilder pbuilder = new ProcessBuilder("bash", "-c", <<your command as string>>);
File err = new File("err.txt");
try {
pbuilder.redirectError(err);
Process p = pbuilder.start();
p.waitFor();
} catch (Exception e)
{
//handle exceptions if any.
}
ProcessBuilder-pbuilder=newprocessbuilder(“bash”和“-c”);
File err=新文件(“err.txt”);
试一试{
pbuilder.redirectError(err);
进程p=pbuilder.start();
p、 waitFor();
}捕获(例外e)
{
//处理异常(如果有)。
}
出于调试目的,stderr行是可选的。我确信它可以直接打印到控制台,但还没有检查过。一旦我找到更多,将更新我的答案
您可以查看文档页面
PS:还要检查您是否具有执行所需任务所需的权限。过去,我一直很难使用Runtime.exec()运行命令。无论如何,我已经转向使用ProcessBuilder
,如下所示:
ProcessBuilder pbuilder = new ProcessBuilder("bash", "-c", <<your command as string>>);
File err = new File("err.txt");
try {
pbuilder.redirectError(err);
Process p = pbuilder.start();
p.waitFor();
} catch (Exception e)
{
//handle exceptions if any.
}
ProcessBuilder-pbuilder=newprocessbuilder(“bash”和“-c”);
File err=新文件(“err.txt”);
试一试{
pbuilder.redirectError(err);
进程p=pbuilder.start();
p、 waitFor();
}捕获(例外e)
{
//处理异常(如果有)。
}
出于调试目的,stderr行是可选的。我确信它可以直接打印到控制台,但还没有检查过。一旦我找到更多,将更新我的答案
您可以查看文档页面
PS:还要检查您是否具有执行所需任务所需的权限。过去,我一直很难使用Runtime.exec()运行命令。无论如何,我已经转向使用ProcessBuilder
,如下所示:
ProcessBuilder pbuilder = new ProcessBuilder("bash", "-c", <<your command as string>>);
File err = new File("err.txt");
try {
pbuilder.redirectError(err);
Process p = pbuilder.start();
p.waitFor();
} catch (Exception e)
{
//handle exceptions if any.
}
ProcessBuilder-pbuilder=newprocessbuilder(“bash”和“-c”);
File err=新文件(“err.txt”);
试一试{
pbuilder.redirectError(err);
进程p=pbuilder.start();
p、 waitFor();
}捕获(例外e)
{
//处理异常(如果有)。
}
出于调试目的,stderr行是可选的。我确信它可以直接打印到控制台,但还没有检查过。一旦我找到更多,将更新我的答案
您可以查看文档页面
PS:还要检查您是否拥有执行所需任务所需的权限。您是否以自己的身份运行它?若不在路径变量中,则环境变量可能不同,若不在路径变量中,则旋度将不可见。。。。您可能需要调试类似于printenv PATH
的东西,并检查是否只需在Eclipse中的某些文件上执行程序,然后使用“外部工具”,它们位于调试和Java工具栏图标旁边。这些启动配置应该更方便。您自己运行吗?若不在路径变量中,则环境变量可能不同,若不在路径变量中,则旋度将不可见。。。。您可能需要调试类似于printenv PATH
的东西,并检查是否只需在Eclipse中的某些文件上执行程序,然后使用“外部工具”,它们位于调试和Java工具栏图标旁边。这些启动配置应该更方便。您自己运行吗?若不在路径变量中,则环境变量可能不同,若不在路径变量中,则旋度将不可见。。。。您可能需要调试类似于printenv PATH
的东西,并检查是否只需在Eclipse中的某些文件上执行程序,然后使用“外部工具”,它们位于调试和Java工具栏图标旁边。这些启动配置应该更方便。您自己运行吗?若不在路径变量中,则环境变量可能不同,若不在路径变量中,则旋度将不可见。。。。您可能需要调试类似于printenv PATH
的东西,并检查是否只需在Eclipse中的某些文件上执行程序,然后使用“外部工具”,它们位于调试和Java工具栏图标旁边。这些启动配置应该更方便。我真的非常感谢@blumonkey。我什么都不知道