이 질문은 Set environment variable in shell script/access in Java program의 후속 조치입니다. 나는 쉘 스크립트를 실행 한 후 자바 환경 변수를 가져 오기 위해 노력하고 있지만 수없는 너무쉘 스크립트에서 환경 변수를 설정하고 Java 프로그램에서 액세스합니다.
쉘 스크립트를 수행합니다 getDetails.sh :
#!/bin/bash
# File: getDetails.sh
export userDetails="USER123"
# echo "User Details for App :$userDetails"
자바 방법 :
String details = new String("source " + "getDetails.sh");
ProcessBuilder processBuilder = new ProcessBuilder("/bin/bash", "-c", details);
Process getPwdProc = processBuilder.start();
System.out.println("Details - " + processBuilder.environment().get("userDetails"));
자바 메소드는 환경 변수 userDetails에 대해 null을 반환하거나 인쇄합니다.
P. - UserDetails를 읽는 데 InputStream/BufferedReader를 사용하는 것은 프로그램/조직에 세부 정보가 반향되지 않으므로 여기에서는 불가능합니다.
감사합니다. @cdarke, 귀하의 의견은 실제로 도움이됩니다. 자바를 호출하는 부모 bash에서 변수를 내 보냈습니다. 내보내기 스크립트가 이제 부모이고 java가 자식 프로세스입니다. 이 변경으로 Java 코드에서 환경 변수를 사용할 수 있습니다. – user3315307