簡體   English   中英

來自Java命令行的Maven依賴插件的classpath文件

[英]classpath file from maven dependency plugin for java command line

我想獲得一個項目的maven dependency ,並將其用作我的命令行項目(Windows批處理)的classpath

這是我按照batch文件中的maven依賴插件所做的。

call mvn dependency:build-classpath -Dmdep.outputFile=test.txt
java -cp `cat test.txt` com.hqly.main.Hqly

但是cat命令沒有得到執行,並且classpath沒有得到正確設置。 它沒有看到我的main班級。 嘗試execute時收到以下錯誤

[INFO] --- maven-dependency-plugin:2.1:build-classpath (default-cli) @ hqly ---
[INFO] Skipped writing classpath file 'C:\Users\chandrans1\Desktop\GitHub\hqly\test.txt'.  No changes found.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.926s
[INFO] Finished at: Mon Jun 16 15:44:39 BST 2014
[INFO] Final Memory: 8M/109M
[INFO] ------------------------------------------------------------------------
Exception in thread "main" java.lang.NoClassDefFoundError: test/txt`
Caused by: java.lang.ClassNotFoundException: test.txt`
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: test.txt`.  Program will exit.

與Linux不同,Windows不使用反引號作為將命令結果作為程序參數傳遞的方式。

您可以檢查該問題,以獲取有關如何在Windows中解決此限制的一些想法: 與Bash backticks等效的批處理 這樣的事情應該起作用:

for /f %%i in (test.txt) do set HSQLY_CLASSPATH=%%i
echo Classpath is "%HSQLY_CLASSPATH%" 
java -cp %HSQLY_CLASSPATH% com.hqly.main.Hqly

暫無
暫無

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

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