我在从 jar 运行主类时遇到问题。
Ant 脚本生成了以下文件夹:
MyProject(Somewhere in C:)
|
|
|____configuration(this contains properties/XML file)
|
|____dist(contains MyProject.jar)
|
|____lib(contains all other jars)
|
|____run(contains batch file to run MyProject.jar)
在运行文件夹中,我有一个批处理文件,内容如下:
java -jar ../dist/MyProject.jar;../lib/*.jar com.my.test.MainTest
有人可以指导我吗? 我只想转到运行文件夹并双击 .bat 文件并运行应用程序。
我得到了
Exception in thread "main" java.lang.NoClassDefFoundError: MyProject/jar
更新
新的错误是:
The java class is not found: com.microsoft.sqlserver.jdbc.SQLServerException
谢谢...
最佳答案
您似乎正在将多个 JAR 文件传递给 java application launcher .它不是这样工作的。
您需要传入一个单独的 jar 文件(在本例中为 MyProject.jar),它用作入口点。所有相关的 JAR 都应该在 manifest MANIFEST.MF 的 ClassPath 条目中指定。 , 主 jar 。 list 还应指定 Main 类 - 具有 main() 方法的类。
如果您想避免上述情况,并在命令行中指定完整的类路径,请使用 -cp
或 -classpath
标志。但是,您需要 specify wildcards在类路径上,以与问题中列出的方式不同的方式。以下可能有效;在 Windows 上,如果需要,将类路径条目用引号引起来:
REM notice the quotes in the cp argument. Those are to be omitted in *nix
java -cp "../dist/MyProject.jar;../lib/*" com.my.test.MainTest
更新
根据现在报告的新错误消息,似乎 Microsoft SQL Server JDBC Driver类路径中不存在。这需要下载并放置必要的 JAR(在 lib 目录中)。如果驱动程序存在于其他地方,则上述用于启动应用程序的命令应更新为 JAR 的位置。
关于java - 在java中从批处理文件运行jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6258642/