可能重复:
System属性和环境变量之间的区别是什么
System.getenv()和System.getProperty()有什么区别?
当我们使用Processbuilder运行任何命令时,我们可以设置环境变量,即:
String[] vCmd = { System.getenv("ANT_HOME") + "/bin/ant", "-f",
ANT_BUILD_FILE, TARGET };
ProcessBuilder pb = new ProcessBuilder(vCmd);
Map<String, String> env = pb.environment();
env.put("CLASSPATH",
antHome+"/lib/ant.jar:"
+ antHome+"/lib/ant-launcher.jar:"
+ antHome+"/lib/ant-nodeps.jar:"
);
try{
Process process = pb.start();
InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
pb.wait();
}
catch(Exception e)
System.out.println(e.getMessage());
}
Run Code Online (Sandbox Code Playgroud)
如果我在此方法之前使用System.setProperties()设置了一些属性,那么ProcessBuilder启动此进程是否可用?
if [ -z "${ABC}" ]
then
LOGDIR=`${JAVA_HOME}/bin/java -cp ${a}/aim.jar my.app.util.GetLogDir "${rsp}"`
Run Code Online (Sandbox Code Playgroud)
有人可以帮我弄这个吗.这究竟是做什么的.它是否检查abc是否存在以及调用GetLogDir的主要参数?
我试图使用Runtime.getrunTime().exec从另一个java程序运行java程序
代码:
String java_home = System.getenv("JAVA_HOME");
String[] command = {""+java_home+"/bin/java -cp -cp /sc/sug/p-lib/* Tdesigner -cd /pr -in ing.rsp -out /scratch/sug/ng.pla -ad -stopO "};
try {
proc = Runtime.getRuntime().exec(command);
proc.waitFor();
int exitCode = proc.exitValue();
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
它给了我以下错误:
java.io.IOException: Cannot run program "/net/sl/sc/jdk6/bin/java -cp /sc/sug/p-lib/* Tdesigner -cd /pr -in ing.rsp -out /scratch/sug/ng.pla -ad -stopOnError ": java.io.IOException: error=2, No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:460)
at java.lang.Runtime.exec(Runtime.java:593)
at java.lang.Runtime.exec(Runtime.java:466)
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮我解决这个问题.是我需要使用-cp添加单个jar文件而不是设置目录.
我必须从java类调用一个ant目标,目前它是从sh脚本调用的,它设置-logger logger.class
我写了这样的java代码......
Project p = new Project();
p.setUserProperty("ant.file", buildFile.getAbsolutePath());
p.init();
ProjectHelper helper = ProjectHelper.getProjectHelper();
p.addReference("ant.projectHelper", helper);
helper.parse(p, buildFile);
p.executeTarget(TARGET);
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我如何使用相同的代码序列设置记录器.
错误:
Class not found:util.logger.CustomLogger
java.lang.RuntimeException
at org.apache.tools.ant.Main.createLogger(Main.java:850)
at org.apache.tools.ant.Main.addBuildListeners(Main.java:795)
Run Code Online (Sandbox Code Playgroud) 要将任何输入流读取到缓冲区,有两种方法。有人可以帮助我了解哪种方法更好以及为什么?每种方法应该在什么情况下使用?
例如:
public String fileToBuffer(InputStream is, StringBuffer strBuffer) throws IOException{
StringBuffer buffer = strBuffer;
InputStreamReader isr = null;
try {
isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line = null;
while ((line = br.readLine()) != null) {
buffer.append(line + "\n");
}
} finally {
if (is != null) {
is.close();
}
if (isr != null) {
isr.close();
}
}
return buffer.toString();
}
Run Code Online (Sandbox Code Playgroud)
例如:
InputStreamReader isr = new InputStreamReader(is);
final int bufferSize …Run Code Online (Sandbox Code Playgroud) 我使用md5算法在python和linux中散列相同的字符串,但我得到不同的值可以有人指出什么是错的
在linux中:
echo "logdir" | md5sum - | awk '{print $1}'
gives: aba76197efa97e6bd4e542846471b391
Run Code Online (Sandbox Code Playgroud)
在python中:
md5.new("logdir".encode('utf-8')).hexdigest()
gives: ee6da4c228cfaebfda7f14e4371a097d
Run Code Online (Sandbox Code Playgroud) 我需要查找某个位置是否是目录,以及它是否是ShellScript中的装载
我试过这个:
new_dir="/home/fruits/apple"
if [ -d "$new_dir" ]
then
if [ mountpoint -q "$new_dir" ]
then
echo "directory is mounted"
else
echo "directory is not mounted"
fi
fi
Run Code Online (Sandbox Code Playgroud)
但它没有用.给出错误
test_dir.sh: line 13: [: -q: binary operator expected
directory is not mounted
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙......我需要这个工作......