我有一个通过aeron-rs crate使用Aeron的 Rust 程序。
每次我想运行我的程序时,我都需要先手动启动驱动程序。事实上,板条箱明确声明它只是作为正在运行的驱动程序的包装器工作。
我希望驱动程序在启动我的程序时启动。
我知道 Aeron 提供了一个嵌入式驱动程序,但我对如何集成它一无所知。
到目前为止,我已将嵌入式驱动程序 JAR 放在我的 src 文件夹中
my-project/
src/
aeron-all-1.32.0-SNAPSHOT.jar
我使用include_bytes!
宏尝试在构建中包含 JAR
fn main() {
include_bytes!("aeron-all-1.32.0-SNAPSHOT.jar");
}
我在构建文件夹中看不到 jar。
然后,以下代码应在启动时运行驱动程序:
if cfg!(target_os = "windows") {
Command::new("cmd")
.args(&[
"/C",
"%JAVA_HOME%\\bin\\java \
-cp aeron-all-1.32.0-SNAPSHOT.jar \
%JVM_OPTS% io.aeron.driver.MediaDriver %*",
])
.output()
.expect("Failed to execute external process.")
} else {
Command::new("sh")
.arg("-c")
.arg(
"${JAVA_HOME}/bin/java \
-cp aeron-all-1.32.0-SNAPSHOT.jar \
${JVM_OPTS} io.aeron.driver.MediaDriver \"$@\"",
)
.output()
.expect("Failed to execute external process.")
};
这是运行 jar 文件的正确方法吗?