cuốn sách gpt4 ai đã làm

Làm cách nào để biên dịch và chạy tệp .java trong Java?

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 06:11:39 26 4
mua khóa gpt4 Nike

Tôi đã thử nó nhưng nó không hoạt động. Cách tôi khởi chạy lệnh nhắc lệnh:

public static void execCommand(Lệnh chuỗi, Đường dẫn chuỗi){
Thư mục tệp = Tệp mới (đường dẫn);
ProcessBuilder pb = new ProcessBuilder(lệnh);
pb.directory(folder.getAbsoluteFile());
pb.redirectErrorStream(true);
try{
pb.start();
}bắt (IOException e){
e.printStackTrace();
}
}

`

Và mã để gọi phương thức:

execuCommand("javac "+str+".java", đường dẫn);
execuCommand("java "+str, path);

Nhưng nó ném IOException. Tôi muốn biết liệu đây có phải là cách tiếp cận sai hay không và cách khắc phục. "str" ​​​​là tệp .java. Đường dẫn là đường dẫn đến thư mục nơi nó được chạy.

câu trả lời hay nhất

Trên thực tế, có một cách tiêu chuẩn để thực hiện việc này trong Java - sử dụng Trình biên dịch Javalớp học. Bạnyêu cầu điều đó công cụ.jarTuy nhiên, nó có sẵn trên đường dẫn lớp của bạn.

Tài liệu trên trang nàySẽ giúp bạn bắt đầu, nhưng để hoàn thiện, đây là một ví dụ.

Trình biên dịch JavaCompiler = ToolProvider.getSystemJavaCompiler();
StandardJavaFileManager fileManager = trình biên dịch.getStandardFileManager(null, Locale.US, Charset.defaultCharset());
File[] files = new File[]{new File("/path/to/java/source/file/you/want/to/compile")};
DiagnosticCollector chẩn đoán = new DiagnosticCollector<>();

Có thể lặp lại trình biên dịchUnits1 =
fileManager.getJavaFileObjectsFromFiles(Arrays.asList(files));
Cuộc gọi Boolean = trình biên dịch.getTask(null, fileManager, chẩn đoán, null, null, biên dịchUnits1).call();
for (Chẩn đoán chẩn đoán : Diagnostics.getDiagnostics()) {
System.out.println(chẩn đoán);

}

System.out.println("biên dịch thành công: " + call);

Nếu bạn muốn biên dịch nội dung của toàn bộ thư mục thì bạn cần thay đổi mảng một chút:

Thư mục tệp = Tệp mới("/path/to/directory");
Tệp [] tệp = thư mục.listFiles();

Giới thiệu về java - Làm cách nào để biên dịch và chạy tệp .java trong Java? , chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/28654548/

26 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress