当前位置: 首页 > 面试题库 >

在Windows命令行中将Jar文件添加到Buildpath

傅宏恺
2023-03-14
问题内容

我不得不问这个问题而感到非常恼火,但我无法解决它。目前,我有一个项目:

src /文件夹中的5个类

2个JARS在根文件夹中分别名为profiles.jar和classifier.jar

我想创建一个“ makefile”吗?或“批处理文件?” 从WINDOWS COMMAND LINE
编译并运行这些类,但首先将jar添加到buildpath?我不确定我该怎么做

当我尝试执行此操作时,它表示未找到该类,这很可能是由于我未正确将jar添加到构建路径中。在命令提示符下运行此命令需要使用哪些命令?

谢谢菲利普

编辑

感谢您的帮助,我在使它正常工作方面遇到很多麻烦,目前我在src文件夹中有5个类,在jar文件夹中有2个jars

这是我正在运行的命令:

设置CLASSPATH = C:\ wamp \ www \ news \ UserProfiling \ jars \ classifier.jar;
C:\ wamp \ www \ news \ UserProfiling \ jars \ profiles.jar

然后从根文件夹,Im运行:

javac src / *。java

然后:

java -cp ./src:./jars/* src / Interaction

交互是主要的类,我遇到各种各样的noclassfound错误,我做错什么了吗?非常感谢菲利普

错误

java -cp
./src:./jars/*线程“主”中的交互异常java.lang.NoClassDefFoundError:交互原因:java.lang.ClassNotFoundException:java.net.URLClassLoader
$
1.run(未知源)处的交互java.net.URLClassLoader.findClass(未知源)处的java.security.AccessController.doPrivileged(本地方法)java.lang.ClassLoader.loadClass(未知源)处的sun.misc.Launcher
$
AppClassLoader.loadClass(未知源)处java.lang.ClassLoader.loadClassInternal(Unknown
Source)处的java.lang.ClassLoader.loadClass(未知源)找不到主类:交互。程序将会退出。


问题答案:

在低于或等于Java版本5的版本中,您必须在类路径上分别指定每个jar以及源的根目录,例如

java -cp a.jar:b.jar:c.jar:./src MainClass

在版本6中,您可以对jar使用通配符,例如

java -cp ./src:* MainClass

但是将jars放在子目录中可能会更清洁

java -cp ./src:./jars/* MainClass

因此,基本上,您的makefile或启动脚本需要构造类似于上述命令之一的命令。

更多信息 -
孙文档(V6)

更新 -为了响应您的第二次编辑,您需要指定完整的主类名称,因此,如果该类位于名为“
com.mypackage.MainClass”的包中,则需要执行以下操作:

java -cp ./src:./jars/* com.mypackage.MainClass

我还建议先让该命令作为独立命令运行,然后再运行整个脚本。通过移除活动部件,调试起来会更快,更容易了解发生了什么。



 类似资料:
  • 问题内容: 我正在运行Ubuntu,并希望通过包含多个jar文件从终端执行Java文件。 我的所有罐子都放在tha jar文件夹中。 我试过了 我得到以下错误。 谁能指导如何在classpath中使用多个jar? 问题答案: 从类路径中删除空格并添加当前路径 从Java 6开始,您可以使用类路径通配符

  • 问题内容: 我正在做一个Maven项目。当在一个想法中编译和运行我的项目时,一切都很好,但是每当我创建jar文件时,都无法将web / lib /中的外部jar文件复制到jar文件中。为什么会发生这种情况?我可以将所有文件插入jar文件吗? 问题答案: 是的,我找到了解决方案。

  • 问题内容: 好的,我知道这个问题以前已经被问过很多次了,但是我已经搜索了一下,查看了示例,并查看了过去一个月中关于SO的问题,我真的无法解决这个问题。我认为问题是我希望能够从Eclipse和命令行运行该程序。我也在使用OSX,我认为我正在阅读的许多示例都是针对Windows / Linux的。 如果我有一个要在命令行中运行的,在Eclipse中编译的简单程序,请执行以下操作: 我有另一个程序在Ec

  • 问题内容: 我想将先前从其他文件(已经完成)中提取的一系列文件添加到jar中。这些文件将覆盖JAR中的文件。最有效的方法是什么?我需要它快。谢谢! 问题答案: 请记住,JAR文件是ZIP文件。 只需使用一些ZIP库。

  • 我还在使用一些.jar文件(POI-3.15.jar...),这些文件对于Row、HSSFSheet等类(用于从excel获取信息)是必需的。如果我将这些.jar文件加载到Eclipse中,就没有问题使其正常工作。 但是,使用命令提示符,找不到我的.jar文件。我已经将我的.java文件放在/src文件夹中,并将.jar文件放在我的.classpath所在的地方。编译不起作用。 是否可以将.jav

  • 问题内容: 我的Linux机器上有一个名为images的文件夹。此文件夹已连接到网站,该网站的管理员可以向该网站添加图片。但是,添加图片后,我希望命令运行所有图片的目录大小。 简而言之,我想知道在将新文件添加到特定位置时如何使服务器运行特定命令。 问题答案: 我不知道人们是如何将内容上传到此文件夹的,但是您可能想要使用比通过inotify监视目录更低的技术。 如果协议是FTP,并且您可以访问FTP