簡體   English   中英

bazel運行* _deploy.jar失敗,並顯示“無法執行二進制文件”

[英]bazel run *_deploy.jar fails with “cannot execute binary file”

給定以下BUILD文件

java_library(
  name='target_lib',
  srcs=['target.java',],
)

java_binary(
  name='target',
  runtime_deps=[':target_lib',],
  main_class='com.example.target',
)

我可以執行bazel run //path:targetjava_binary ,它成功地執行我的應用程序; 但是,當嘗試執行bazel run //path:target_deploy.jar它失敗並顯示“無法執行二進制文件”

我正在MacOS上嘗試這樣做(如果那很重要)

另外,如果我手動嘗試執行java -jar bazel-bin/path/target_deploy.jar我會發現清單未指定main_class 不確定是否相關。

Bazel版本信息:

$ bazel version
Build label: 0.26.1-homebrew
Build target: bazel-out/darwin-opt/bin/src/main/java/com/google/devtools/build/lib/bazel/BazelServer_deploy.jar
Build time: Thu Jun 6 18:36:29 2019 (1559846189)
Build timestamp: 1559846189
Build timestamp as int: 1559846189

這按預期工作。 bazel run實際上並不執行部署jar,而是一個存根腳本,該腳本為目標的依賴關系圖確定的jar設置運行時環境。 如果您將文件標簽(例如//x/y:deploy.jar )傳遞給bazel run ,則Bazel將嘗試將其作為獨立的二進制文件執行,而無需java -jar

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM