Tag: bash

在java程序中执行bash命令

我已经有一段时间了,但我找不到解决方案。 我正在尝试在.jar文件中的Linux上执行bash命令。 为此,我尝试了很多东西,包括: Process p = new ProcessBuilder(“java”, “-jar”, “M1_MIAGE_PDL_VIZ_GROUPE3.jar”, “menu”).start(); Runtime.getRuntime().exec(“/bin/sh -c java -jar M1_MIAGE_PDL_VIZ_GROUPE3.jar menu”); Runtime.getRuntime().exec(new String[]{“/bin/sh -c”, “java -jar M1_MIAGE_PDL_VIZ_GROUPE3.jar menu”}); 所以,当我点击.jar文件时,我想程序打开一个bash,然后执行命令(java -jar …)来执行程序的另一部分。 关于如何做的任何想法?

传递参数从java程序到bash脚本,该脚本使用参数调用另一个java程序

我想在我的java程序中执行一个shell脚本,传递一个参数,如下所示: Runtime.getRuntime().exec(“./test.sh ” + “\\\”param1\\\”\\\”param2\\\”\\\”param3\\\””); 并且test.sh将调用另一个java程序传递字符串参数,如下所示: another.jar \”param1\”\”param2\”\”param3\” 最后,程序anther.jar将以这种格式解释参数 another.jar “param1″”param2″”param3” 我有点混淆这种情况因为在这种情况下我无法正确处理逃脱字符..kkk 我在第一个命令中尝试了一些字符串格式,但是我没有得到正确的格式。 一些帮助就好了! 谢谢!

如何在JGit中从一个git分支硬重置到另一个?

我有两个分支,一个是主,另一个是1。 现在level1是我需要通常在git bash中将master重置为level1的最新版本我可以通过以下命令来实现。 $ git checkout master $ git tag old-master-branch $ git reset –hard level1 $ git merge -s ours origin/master $ git push origin master 这个对我来说很好。 我的问题是如何使用JGit实现它。 我试过了。 但我无法弄清楚如何设置源和目标分支。 考虑我克隆了一个主分支的场景 Git git = Git.cloneRepository().setURI(remote).setCredentialsProvider(new UsernamePasswordCredentialsProvider(“obuli”, “xxxxxx”)).setDirectory(gitPath) .setNoCheckout(true).call(); 现在我需要将其重置为level1。 git.reset().setMode(ResetType.HARD).call(); 但在这里我没有指定level1。 我不知道如何指定它。 还请说明如何在JGit中提供git merge -s ours origin/master

Shell(bash)使用Java的runtime.exec扩展大括号

我正在尝试使用扩展命令来使用runtime.exec,但是大括号被解释为文字而不是被扩展。 这是我正在尝试做的事情: String command = “mkdir -p Foldername{1,2,3}/InnerFolder”; Runtime.getRuntime().exec( new String[] { “sh”, “-c”, command } ); 不幸的是,这给了我当前目录中名为“Foldername {1,2,3}”的单个文件夹,而不是“Foldername1”,“Foldername2”和“Foldername3”。 有没有人知道如何防止括号被解释为文字?

无法从java程序执行R脚本?

我在String变量中有一个Rscript,我想从Java程序执行它并将一些变量传递给它。 如果我独立执行该R脚本,它可以正常工作。 我已经通过使用Python程序将其转换为一行来将R脚本转换为一行,如下所示: import json jsonstr = json.dumps({“script”: “””\ #!/usr/bin/Rscript # read the data file library(‘jsonlite’) library(‘rpart’) args <- as.list(Sys.getenv(c( "path", "client_users"))) if (args[["path"]]==""){ args[["path"]] <- "." } # other stuff here # other stuff here """}) print jsonstr 我使用打印出来的字符串并将其存储在String变量中,然后我执行下面的代码,它根本不起作用。 我将path和client_users变量传递给上面的R脚本。 public static void main(String[] args) throws IOException, InterruptedException { // this is your script […]

Java执行命令行程序’find’返回错误

以下来自终端的工作没问题 find testDir -type f -exec md5sum {} \; 其中testDir是包含某些文件的目录(例如file1,file2和file3)。 但是,我在Java中使用以下内容时出错 Runtime rt = Runtime.getRuntime(); Process pr = rt.exec(“find testDir -type f -exec md5sum {} \\;”); 错误是 find: missing argument to `-exec’ 我相信我正确地逃避了角色。 我尝试了几种不同的格式,但我无法使用它。 更新 @jtahlborn完美地回答了这个问题。 但是在计算md5sum之前,命令现在已稍微改变以对dir中的每个文件进行排序,如下所示(我已经接受了原始问题的优秀答案,所以如果他们能够提出格式,我会给别人买啤酒对于这个。我已经尝试了我能想到的每一个组合,并且没有成功。) “找到testDir -type f -exec md5sum {} + | awk {print $ 1} | sort | md5sum;” 新的更新 对于管道,你需要一个shell,所以我最终得到了这个,效果很好,你仍然可以获得输出。 […]

如何在Java中保存shell脚本的echo输出

我正在研究一个Java程序,它在JUnit测试中调用几个Shell脚本(因此除了。和E之外没有输出)操作文件和SQL表,然后将所述表中的数据与它们的期望值进行比较。 一切都在理论上有效,但是我遇到了一个例子,一种类型的测试按预期工作,另一种类型在十分钟超时后失败。 我已将问题隔离为Shell脚本之一,但是我没有编写此脚本,我无法以任何方式更改它。 我可以解决此问题的最佳方法是保存相关脚本的输出,该输出来自一系列回显调用。 有没有一种直接/可靠的方法来保存回声输出? 我用谷歌搜索了一下,但没有任何结果。 我还没有尝试存储输出,所以我没有试图向您展示,但我已经编写的可能相关的代码是: //Currently using BufferedWriter, File, FileWriter, IOException, and Writer import java.io.*; //Method to write to a log file public void record(String input) throws IOException { writer = new BufferedWriter(new FileWriter(file,true)); writer.write(input + “\n”); writer.close(); } Runtime rt = Runtime.getRuntime(); //Several of these since a lot of file manipulation/script running […]

如何执行Bash命令并从Java收集输出?

如何执行Bash命令并从Java收集输出? 大家好,基本上我正在编写一个基本的控制台应用程序,并希望能够从中运行命令,例如sudo ***,halt,ifconfig等。 任何见解?

从OSX“.app”包运行Java导致“错误-10810”

这是通过虚拟盒在OSX Mavericks上测试的,在Macbook上的Yosemite上测试的。 我有一个名为“HelloWorld.jar”的简单可执行jar。 我正在尝试为这个java应用程序创建一个.app包。 (显然,我的实际程序更复杂,但我已将其削减到最棘手的问题)。 案例1 – 没有JAVA的简单捆绑 – 完全正常工作 第1步 – 在控制台测试 – 工作 在控制台我输入 echo “Hello World (no java)” > /Users/josh/Desktop/test-output.txt 我查看test-output.txt并查看预期的输出。 第2步 – 使用脚本测试 – 工作 我创建了一个名为test的简单bash脚本: #!/bin/bash echo “Hello World (no java)” > /Users/josh/Desktop/test-output.txt 我chmod +x test然后键入./test ,我查看test-output.txt并查看预期的输出。 第3步 – 创建基本应用程序包 – 工作 mkdir -p test.app/Contents/MacOS cp test test.app/Contents/MacOS open test.app […]

是否有可实施(非理论)的方式来certificate电子邮件地址是否属于真实的电子邮件帐户?

有没有办法certificate某个电子邮件地址是“真实的”,因此属于真正存在的电子邮件帐户? 我通过根据电子邮件模式定义有效的电子邮件获得大量注册,但实际上并不存在。 发送到假邮件地址需要花费很多钱,因为我们(和其他人)按邮件付费(向假邮件帐户发送100,000个邮件会使您每年花费四位数,只是为了显示一个数字)。 我想确切地检查那一刻。 我们不关心电子邮件地址是否在1分钟后离线。 理想的解决方案是使用bash one-liner(可以使用每种主要语言调用)。 到目前为止我做了什么: 检查这个类似的3yo线程 ,这对于真实案例来说是完全错误的。 我想检查是否存在电子邮件地址,在我发送邮件的那一刻(以防止费用)。 检查主机名是否可ping。 检查电子邮件地址是否可以ping通,就像这里一样。 我尝试在bash脚本中重建它,但失败了(获取地址很难!)。 我真正想要的是什么: 可靠的检查邮件帐户是否可由普通编码器以PHP或Java实现。 一个bash单行或一个php / java库就是这样做的。 免费或商业。 我会提供赏金!