[英]What is the raw command-line to call a bazel built java program?
bazel構建了cpp / java程序,並使用非常復雜的bazel包裝器運行它們。 我希望我不要依賴這種打包程序,因為我想要一個干凈的運行時/安裝包。 這是我的“ BUILD”中的一個簡單的Java示例
java_binary(
name = "hello",
srcs = ["src/main/java/com/demo/DemoRunner.java"],
main_class = "com.demo.DemoRunner",
deps = [":HelloTest"],
)
java_library(
name = "HelloTest",
srcs = ["src/main/java/com/demo/Hello.java"],
visibility = ["//src/main/java/com/demo/child:__pkg__"],
)
我可以“ bazel build hello”和“ bazel run hello”,沒問題。 但是當我嘗試:
# java -classpath bazel-bin/hello.jar com.demo.DemoRunner
Exception in thread "main" java.lang.NoClassDefFoundError: com/demo/Hello
at com.demo.DemoRunner.main(DemoRunner.java:4)
Caused by: java.lang.ClassNotFoundException: com.demo.Hello
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 1 more
我的要求是僅使用原始命令行運行bazel內置的jar。 如何糾正我的命令,我想我必須設置一些類路徑或環境變量?
請幫助。 非常感謝。
您可能需要java -jar
隱式_deploy.jar
輸出。
$ bazel build //:hello_deploy.jar && java -jar bazel-bin/hello_deploy.jar
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.