【发布时间】:2020-09-24 04:14:47
【问题描述】:
我在将 bazel-remote-worker 打包到可部署的 jar 中时遇到问题。
我运行了以下命令:
bazel build //src/tools/remote_worker:remote_worker_deploy.jar
但是当我尝试运行 jar 时,我得到了这个错误:
➜ bazel git:(master) ✗ java -jar remote_worker_deploy.jar --work_path=/tmp/test --listen_port=3030
*** Initializing in-memory cache server.
*** Not using remote cache. This should be used for testing only!
Exception in thread "main" java.lang.UnsatisfiedLinkError: no unix in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
at java.lang.Runtime.loadLibrary0(Runtime.java:870)
at java.lang.System.loadLibrary(System.java:1122)
at com.google.devtools.build.lib.UnixJniLoader.loadJni(UnixJniLoader.java:28)
at com.google.devtools.build.lib.unix.NativePosixFiles.<clinit>(NativePosixFiles.java:136)
at com.google.devtools.build.lib.unix.UnixFileSystem.createDirectory(UnixFileSystem.java:309)
at com.google.devtools.build.lib.vfs.Path.createDirectory(Path.java:829)
at com.google.devtools.build.lib.vfs.FileSystemUtils.createDirectoryAndParentsWithCache(FileSystemUtils.java:692)
at com.google.devtools.build.lib.vfs.FileSystemUtils.createDirectoryAndParents(FileSystemUtils.java:652)
at com.google.devtools.build.remote.RemoteWorker.<init>(RemoteWorker.java:114)
at com.google.devtools.build.remote.RemoteWorker.main(RemoteWorker.java:621)
我可以启动它的唯一方法是从bazel-bin 运行可执行文件:
bazel-bin/src/tools/remote_worker/remote_worker --work_path=/tmp/test --listen_port=3030
我正在 mac osx sierra 上运行最新的 bazel(当前为 a3e26835890a543ff84cce90c879f9196ae06348)。
我用oracle-jdk-1.8.131 或openjdk-1.8.91 尝试了它,它的行为相同。
最终目标是创建一个运行此 jar 的 docker 映像,但即使在 openjdk:8 内部,此 jar 的行为也一样...
【问题讨论】: