Java 프로그래밍 클래스 용 자동 학습 프로그램을 만들려고합니다. 이번 학기를 가르칩니다. Autograder의 기본 아이디어는 내 테스터의 .class 파일 사본을 학생들의 회전판과 동일한 위치 (각자의 폴더에 있음)에 배치한다는 것입니다. 결과를 텍스트 파일로보고하고 데이터를 다시 제공합니다.ProcessBuilder를 사용하여 여러 프로그램 실행
내가 붙어있는 문제는 내 테스터 클래스를 실행하기 위해 ProcessBuilder를 가져올 수 없다는 것이고, 명령을 입력하는 다양한 방법을 시도했지만 올바른 명령이 무엇인지 잘 모르겠습니다. . 여기에 코드입니다 :
public...main(String[] args){
///Code not relevant ommitted
Runtime runtime = Runtime.getRuntime();
for (String person : uniqueIds) {
File currentLoc = new File(HW_ID + "/" + person);
ProcessBuilder g = new ProcessBuilder("bash", "-c",
"java", " -cp ", currentLoc.getAbsolutePath(),
" Grader");
Process process = g.start();
process.waitFor();
}
}
"uniqueIds는"숙제가에있는 걸까요 폴더의 이름입니다 각 학생의 UNIQUEID가 포함 된 문자열 배열입니다. "HW_ID"는 모든 학생에 대해 설정 한 폴더의 이름 인 상수입니다. 파일 구조는 다음과 같습니다. HW_ID/uniqueID/
"등급"은 내 프로그램의 이름입니다. turnins를 갈아 치울 것입니다. ProcessBuilder를 사용하여 지정된 파일 위치에있는 그레이더 프로그램을 시작하려면 어떻게해야합니까?
EDIT : 저는 Mac을 사용하고 있지만 Windows 용 코드가 다르면 둘 다 기재하십시오. 감사!
어떤 오류를 겪었습니까? – A4L
다섯 번째 줄은 필요없고 중복되지 않습니다. currentLoc = 새로운 파일 (currentLoc.getAbsolutePath()); ProcessBuilder를 사용하여 자바 프로그램을 실행하려면 ProcessBuilder ("java.exe", "- cp", currentLoc.getAbsolutePath())와 같은 것을 시도해보십시오. – Alan
@ A4L 오류가보고되지 않았습니다. 코드는 실행되지만 Grader를 실행하여 만들어야하는 텍스트 파일이 없으므로 Grader에 대한 호출이 올바르게 수행되지 않았 음을 나타냅니다. – db4soundman