如何检查远程存储库是否已更改,我需要拉?
现在我使用这个简单的脚本:
git pull --dry-run | grep -q -v 'Already up-to-date.' && changed=1
Run Code Online (Sandbox Code Playgroud)
但它相当沉重.
有没有更好的办法?理想的解决方案是检查所有远程分支,并返回已更改分支的名称和每个分支的新提交数.
是否可以打开命令提示符(我猜其他系统的任何其他终端),并在新打开的窗口中执行命令?
目前我拥有的是:
Runtime rt = Runtime.getRuntime();
rt.exec(new String[]{"cmd.exe","/c","start"});
Run Code Online (Sandbox Code Playgroud)
我尝试在"开始"之后添加下一个命令,我尝试运行另一个包含我的命令的rt.exec,但我找不到让它工作的方法.
如果重要,我正在尝试运行类似于此的命令:
java -flag -flag -cp terminal-based-program.jar
Run Code Online (Sandbox Code Playgroud)
编辑不幸的是我有一些奇怪的发现.我已经能够成功启动命令提示符并使用以下命令传递命令:
rt.exec("cmd.exe /c start command");
Run Code Online (Sandbox Code Playgroud)
但是,它似乎只能使用一个命令.因为,如果我尝试使用这样的命令分隔符"cmd.exe/c start command&command2",则第二个命令将通过后台传递(如果我刚使用rt.exec("command2")的话;) .现在问题是,我意识到我需要更改运行命令提示符的目录,因为如果我只使用jar文件的完整路径,则jar文件会错误地从命令提示符的活动目录中读取数据,而不是jar的目录,包含其资源.
我正在用java编写一个程序,它将执行winrar并解压缩放入h:\myjar.jar文件夹中的jar文件h:\new.我的java代码就是这样的
import java.io.File;
import java.io.IOException;
public class MainClass {
public static void main(String[] args) {
Runtime r = Runtime.getRuntime();
Process p = null;
try {
File dir = new File("C:/Program Files/WinRAR");
p = r.exec("winrar x h:\\myjar.jar *.* h:\\new", null, dir);
} catch (IOException e) {
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我执行此操作时,我收到此错误
java.io.IOException: Cannot run program "winrar" (in directory "C:\Program Files\WinRAR"): CreateProcess error=2, The system cannot find the file specified
at java.lang.ProcessBuilder.start(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown …Run Code Online (Sandbox Code Playgroud) 我需要通过一些Java程序生成或构建一个APK文件,我选择Android源项目.假设我在网页上有一个按钮.单击时,它会生成一个.apk文件.
我已经看到我们可以通过Ant和Gradle构建APK文件.但这贯穿命令shell.我不想在命令shell中这样做.我想写一个Java程序.或者也许我可以通过Java程序运行shell命令.
有人可以指导我吗?谢谢
感谢您提供的答案.对于那些答案,我需要通过Gradle或Ant.如果必须,我会这样做.但是,我正在寻找其他选择.
启动测试用例的一种方法是,
adb shell am instrument
-w com.google.vishal.test/android.test.InstrumentationTestRunner
Run Code Online (Sandbox Code Playgroud)
我想用Android代码启动它(有意图)
例如,
adb shell am start -n com.google.android.contacts/.ContactsActivity
Run Code Online (Sandbox Code Playgroud)
我们可以通过以下方法使用Android intent运行: -
Intent intent = new Intent(com.google.android.contacts, ContactsActivity.class);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
但是,如何运行
adb shell am instrument
-w com.google.vishal.test/android.test.InstrumentationTestRunner
Run Code Online (Sandbox Code Playgroud)
通过Android意图?
感谢您提前的帮助:-)
instrumentation android android-intent robotium android-activity
我正在使用 ProcessBuilder 运行 Windows 可执行文件...我需要运行的确切命令是:
"C:\Program Files\CCBU\CCBU.exe" -d"C:\My Data\projects\ccbu\ciccb-report.xls" -tf"C:\Program Files\CCBU\loss-billing-filters.txt"
Run Code Online (Sandbox Code Playgroud)
如果我从命令提示符运行上述命令,它工作正常。
如果我随后将命令和参数发出为 String [] 数组,如以下 StackOverflow 帖子(ProcessBuilder 在命令行中添加额外的引号)所示,则会失败,因为目录路径中的空格以某种方式破坏了 CCBU.exe 可执行文件的参数:
[log-snippet]
2015-08-31 10:39:08,937 [main] INFO rpd.primary - C:\Program Files\CCBU\CCBU.exe
logging to the given report's directory
Configuration file is: ./CCBUConfigFile.txt
Running with the following settings:
Report Filepath: C:\My
Search Terms FilePath: C:\Program
2015-08-31 10:39:08,948 [main] INFO rpd.primary - STDERR:--------------------
2015-08-31 10:39:08,961 [main] INFO rpd.primary -
Warning: parameter Data\projects\ccbu\ciccb-report.xls not recognized. Ignoring
Warning: parameter Files\CCBU\loss-billing-filters.txt not recognized. Ignoring
Error: …Run Code Online (Sandbox Code Playgroud) 我是Java的新手,我需要在Java中运行CMD或Powershell,因为我想了解当前的RAM利用率和当前的磁盘分配。StackOverflow上有很多类似的问题,但我不明白。
这是我的代码,我从这里得到的:
package test;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) {
}
public static class CmdTest {
public static void main(String[] args) throws Exception {
ProcessBuilder builder = new ProcessBuilder(
"cmd.exe", "/c", "cd \"C:\\Program Files\\Microsoft SQL Server\" && dir");
builder.redirectErrorStream(true);
Process p = builder.start();
BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while (true) {
line = r.readLine();
if (line == null) {
break;
}
System.out.println(line);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我只有一个空控制台,不知道为什么。