Làm cách nào để bắt đầu chương trình Java của tôi với nhiều hơn một tác nhân java?


81

Tôi biết cách bắt đầu một chương trình java với một tác nhân java:

java -javaagent:myAgent.jar MyJavaProgram

Nhưng nếu tôi muốn thêm 2 hoặc nhiều tác nhân java vào công cụ chương trình của mình thì sao? Tôi không muốn gọi lại java -javaagent: ... cho mọi tác nhân mà tôi phải tải trong JVM.

Tôi đã thử một cái gì đó như thế này:

java -javaagent:agentA.jar, agentB.jar MyJavaProgram

hoặc thứ gì đó giống thế này:

java -javaagent:agentA.jar agentB.jar MyJavaProgram

Nhưng không có thành công.

Có một câu trả lời để giải quyết vấn đề của tôi?

Cảm ơn bạn.

Câu trả lời:


142

Làm thế nào về hai javaagenttham số?

java -javaagent:agentA.jar -javaagent:agentB.jar MyJavaProgram

56

Có vẻ như bạn có thể làm điều này bằng cách sử dụng nhiều đối số. Từ tài liệu :

Trên các triển khai có giao diện dòng lệnh, một tác nhân được khởi động bằng cách thêm tùy chọn này vào dòng lệnh:

-javaagent:jarpath[=options] 

jarpath là đường dẫn đến tệp JAR của tác nhân. các tùy chọn là các tùy chọn đại lý. Công tắc này có thể được sử dụng nhiều lần trên cùng một dòng lệnh, do đó tạo ra nhiều tác nhân . Nhiều tác nhân có thể sử dụng cùng một đường dẫn đặc ngữ. Tệp JAR tác nhân phải tuân theo đặc tả tệp JAR.

(nhấn mạnh của tôi)


2

Thêm vào các câu trả lời ở trên, nếu bạn đang sử dụng ant và muốn bao gồm <jvmargs />nhiều hơn một jar -javaagentđể khởi động máy chủ, đây là cách tôi đã làm điều đó,

build.xml

<target name="blah">
...
    <jvmarg value="-javaagent:${jar1.path}" />
    <jvmarg value="-javaagent:${jar2.path}" />
...
</target>

1

Có một dự án mới với mục tiêu hỗ trợ nhiều tác nhân Java. Hiện tại nó được giới hạn cho những cái cụ thể.

Đặc vụ Bond là một siêu đặc vụ, có nhiệm vụ kết thúc và điều động một số đặc vụ khác. Bằng cách đó, bạn chỉ phải cài đặt một tác nhân duy nhất trong JVM của mình với một tập dữ liệu cấu hình (chứa nhiều phần riêng biệt).

Xem https://github.com/fainst8io/agent-bond/blob/master/README.md để biết chi tiết

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.