如何从使用netbeans编写的java代码中访问shell脚本文件中的变量值
我使用java和netbeans IDE创建了一个GUI,在该java代码中,我设置了一个变量如何从使用netbeans编写的java代码中访问shell脚本文件中的变量值,java,bash,ubuntu-12.04,netbeans-8,Java,Bash,Ubuntu 12.04,Netbeans 8,我使用java和netbeans IDE创建了一个GUI,在该java代码中,我设置了一个变量path的值,该变量由目录路径组成,例如path=/home/usr/jai/newfolder,我有一个扩展名为.sh的shell脚本文件,其中提到了一个命令,该命令访问newfolder中提到的许多文件 我的问题是如何在shell脚本文件中使用path变量,这样我就可以访问newfolder中提到的所有文件,并使用java代码执行该文件,我知道如何使用java代码执行脚本文件,但我无法访问shell
path
的值,该变量由目录路径组成,例如path=/home/usr/jai/newfolder
,我有一个扩展名为.sh
的shell脚本文件,其中提到了一个命令,该命令访问newfolder中提到的许多文件
我的问题是如何在shell脚本文件中使用
path
变量,这样我就可以访问newfolder中提到的所有文件,并使用java代码执行该文件,我知道如何使用java代码执行脚本文件,但我无法访问shell脚本文件中的变量值。您可以获得environment的值类似Java的变量:
import java.util.Map;
公共类环境映射{
公共静态void main(字符串[]args){
Map env=System.getenv();
for(字符串envName:env.keySet()){
System.out.format(“%s=%s%n”,
我的名字,
env.get(envName));
}
}
}
然后将该变量值作为命令行参数传递给该shell脚本。调用该脚本时,将该值作为参数传递给该shell脚本……并使用
$
在脚本中访问它,其中n
是该变量在脚本参数中的位置。字符串cmnd1=path+“/test\u script\u gui.sh”; 系统输出打印LN(cmnd1);字符串cmnd2[]={cmnd1,path};尝试{Runtime.getRuntime().exec(cmnd2);}catch(IOException ex){Logger.getLogger(filedata.class.getName()).log(Level.SEVERE,null,ex);}下面给出的命令中,我必须使用变量路径来代替表示当前目录HVite-t1-D-A-H./work\u all\u 3\u train\u read\u test\u aprl\u 20145/hmm$I/macros-H./work\u all\u 3\u train\u read\u test\u aprl\u 20145/hmm$I/hmmdefs-S./test\u gui.list-C./analysis\u train.conf-I./test.mlf-I./work\u all\u 3\u train\u read\u test\u aprl\u 20145/hmm$i/recont\u test\u gui.mlf-o SWT-w path/wdnet.txt-p-10.0-s 0 path/dict.txt./hmmlist.txt。如何执行此操作??此命令在要使用变量路径的脚本文件中使用。将参数路径传递到脚本文件是否正确?如何在脚本文件中使用此参数
import java.util.Map;
public class EnvMap {
public static void main (String[] args) {
Map<String, String> env = System.getenv();
for (String envName : env.keySet()) {
System.out.format("%s=%s%n",
envName,
env.get(envName));
}
}
}