[英]Add Jar File to Buildpath in Windows Command Line
我很不高興不得不問這個,但我不能讓它工作。 目前我有一個項目:
5個src /文件夾中的類
2 JARS在根文件夾中命名為profiles.jar和classifier.jar
我想創建一個“makefile?” 還是“批處理文件?” 從WINDOWS命令行編譯和運行這些類,但首先將jar添加到buildpath? 我不知道我是怎么回事
當我嘗試這樣做時,它表示找不到類,很可能是因為我沒有正確地將jar添加到構建路徑中。 在命令提示符下運行此命令需要使用哪些命令?
謝謝Philip
編輯
感謝您的幫助,我有很多麻煩讓它工作當前我有一個項目在src文件夾中有5個類,在jar文件夾中有2個jar
以下是我正在運行的命令:
設置CLASSPATH = C:\\ wamp \\ www \\ news \\ UserProfiling \\ jars \\ classifier.jar; C:\\ wamp \\ www \\ news \\ UserProfiling \\ jars \\ profiles.jar
然后從根文件夾,我運行:
javac src / * .java
然后:
java -cp ./src:./jars/* src / Interaction
交互是主要的類,我得到各種noclassfound錯誤,我做錯了什么? 非常感謝菲利普
錯誤
java -cp ./src:./jars/*交互線程“main”中的異常java.lang.NoClassDefFoundError:交互引起的:java.lang.ClassNotFoundException:java.net.URLClassLoader上的交互$ 1.run(未知來源)at java.security.AccessController.doPrivileged(本機方法),位於java.lang.ClassLoader.findClass(未知來源),位於sun.misc.Launcher的$ java.lang.ClassLoader.loadClass(未知來源)$ AppClassLoader.loadClass(未知來源)at java.lang.ClassLoader.loadClassInternal(Unknown Source)中的java.lang.ClassLoader.loadClass(Unknown Source)無法找到主類:Interaction。 程序將會退出。
在早於或等於Java版本5的版本中,您必須在類路徑上單獨指定每個jar和源的根目錄,例如
java -cp a.jar:b.jar:c.jar:./src MainClass
在版本6中,您可以使用通配符作為jar
java -cp ./src:* MainClass
但將你的罐放入子目錄可能更清潔,例如
java -cp ./src:./jars/* MainClass
所以基本上,你的makefile或者啟動腳本需要構建一個像上面那樣的命令。
更多信息 - Sun docs(v6)
更新 - 為了響應您的第二次編輯,您需要指定完整的主類名,因此如果該類位於名為“com.mypackage.MainClass”的包中,那么您需要執行以下操作:
java -cp ./src:./jars/* com.mypackage.MainClass
我還建議在使整個腳本運行之前,先將命令作為獨立命令運行。 通過移除移動部件,調試速度更快,更容易看到發生了什么。
關於你的第二個問題:如果你使用
java -cp ./src:./jars/* src/Interaction
它將嘗試啟動不存在的類src / Interaction。 src已經在你的類路徑中,所以你必須這樣做
java -cp ./src:./jars/* Interaction
我想,找到了你的問題。
javac src / * .java
java -cp ./src:./jars/* src / Interaction
這個問題困擾了許多初學者:您需要從源樹開始的目錄運行javac和java。 在您的情況下,該目錄是src
。 由於src
沒有出現在您的包名中,因此它也不應出現在您的編譯/執行路徑中。
所以你應該
cd UserProfiling/src
並運行
javac *.java
和
java -cp .:../jars Interaction
從那里。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.