【发布时间】:2010-12-27 05:38:42
【问题描述】:
我对不得不问这个问题感到非常恼火,但我无法让它发挥作用。目前我有一个项目:
src/ 文件夹中的 5 个类
2 个名为 profiles.jar 的 JARS 和 根目录下的classifier.jar
我想创建一个“makefile”?或“批处理文件”? 从 WINDOWS 命令行编译和运行这些类,但首先将 jar 添加到构建路径?我不知道我该怎么做
当我尝试这样做时,它说找不到该类,很可能是因为我没有正确地将 jar 添加到构建路径中。在命令提示符下运行它需要使用哪些命令?
谢谢 菲利普
编辑
感谢您的帮助,我在让它工作时遇到了很多麻烦 目前我有一个项目,在 src 文件夹中有 5 个类,在 jar 文件夹中有 2 个 jars
这里是命令 我正在运行:
设置 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/交互
交互是主要课程,我得到各种 noclassfound 错误,我做错了什么吗? 非常感谢菲利普
错误
java -cp ./src:./jars/* 交互 线程“主”中的异常 java.lang.NoClassDefFoundError: 互动原因: java.lang.ClassNotFoundException: 相互作用 在 java.net.URLClassLoader$1.run(未知 资源) 在 java.security.AccessController.doPrivileged(本机 方法) 在 java.net.URLClassLoader.findClass(未知 资源) 在 java.lang.ClassLoader.loadClass(未知 资源) 在 sun.misc.Launcher$AppClassLoader.loadClass(未知 资源) 在 java.lang.ClassLoader.loadClass(未知 资源) 在 java.lang.ClassLoader.loadClassInternal(未知 来源)找不到主类: 相互作用。程序将退出。
【问题讨论】:
-
Interaction 在什么包中? (我希望像 com.bla.Interation 这样的东西)
-
你得到的错误是由于没有使用完整的主类名,它必须包含包。因此,您需要像 'com.x.y.Interation' 这样的东西,而不是 'Interation'
-
原来它是在默认包中,因为它是一个非常小的程序,但后来我尝试将它放在一个名为 test 的包中并运行:java -cp ./src:./jars/* UserProfiling.Test.Interaction (UserProfiling 是我项目的名称对吗?)但我仍然遇到同样的错误
-
我注意到您一直提到“src”,这显然是您的 Java 源代码所在的位置。但是 CP 需要指出编译后的 .class 文件在哪里!他们也在src吗?此外,在您之前的评论中,“test”的大小写不同。
标签: java command-line makefile compilation