Tôi đang thực hiện một công cụ Ghi/Phát lại Java và tôi cần khởi chạy các ứng dụng Java từ ứng dụng Java chính của mình. Tôi cần truy cập vào EventDispatchThread để đánh chặn các sự kiện và ghi lại chúng, vì vậy tôi tung ra các ứng dụng thông qua phản ánh với (đoạn mã đơn giản):Khởi chạy ứng dụng java từ một ứng dụng java khác
Class<?> app = Class.forName(mainClass);
Method m = app.getMethod("main", new Class[] { String[].class });
m.invoke(null, new Object[] { new String[] {} });
tôi trước động tải tất cả các lọ vào classpath và ứng dụng đang khởi chạy gần như hoàn hảo.
Sự cố xảy ra khi ứng dụng cần truy cập bất kỳ tệp nào và thực hiện với đường dẫn tương đối. Vì ứng dụng được khởi chạy thông qua ứng dụng của tôi nên đường dẫn không giống như được khởi chạy từ đường dẫn bình thường của nó và các tệp không được tìm thấy.
Tôi có thể làm gì để giải quyết vấn đề này? tự động thay đổi môi trường thực thi? bất kỳ ý tưởng?
tôi sẽ kiểm tra làm thế nào để chạy các mã như là một "Java Agent" và những gì mà chính xác có nghĩa. Tôi đã không hiểu được dấu ngoặc đơn của bạn, mặc dù ... – jpsstavares