0

Unser Google Cloud Dataflow-Pipeline-Programm ruft eine Bibliothek auf, die dynamisch mit * .so-Dateien verknüpft ist. Um sie auszuführen, muss ich die Linux-Umgebungsvariable LD_LIBRARY_PATH setzen. Es gibt einen Hack, um das zu tun: https://groups.google.com/forum/#!topic/comp.lang.java.programmer/LOu18-OWAVM, aber ich frage mich, gibt es eine Möglichkeit, das zu tun, mit einem Job, der Shell-Skript vor dem Ausführen der Pipeline ausführen wird?Ausführen eines Google Dataflow-Jobs beim Start

+0

Dies muss geschehen, bevor das Programm überhaupt läuft? Das heißt, wir können nicht einfach die Umgebungsvariablen im Dataflow-Java-Programm setzen. –

Antwort

0

Verwenden Sie JNI für diesen Zweck? Können Sie die Umgebungsvariable im Java-Code vor der Einrichtung Ihres JNI-Codes setzen?

Sie möchten auch nur die .so-Datei aus dem Klassenpfad laden und in einem Stream übergeben. Ist es möglich, in der .so-Datei auf diese Weise zu verknüpfen?

Hier finden Sie filesToStage für das Suchen der Datei. https://cloud.google.com/dataflow/pipelines/specifying-exec-params

Vielleicht ist die Vorschläge in diesen Links könnten auch funktionieren, und man konnte die .so-Datei in Ihrem JAR-Paket: How to bundle a native library and a JNI library inside a JAR?

https://www.adamheinrich.com/blog/2012/12/how-to-load-native-jni-library-from-jar/

Verwandte Themen