当前位置: 首页 > 知识库问答 >
问题:

Java JAR-CLASSPATH问题

宰父玄天
2023-03-14

清单在一行上只包含版本,然后在一行上包含主类属性,然后是2个空行

所有依赖项都位于相对于jar的/lib文件夹中,因此清单中没有指定类路径

在zip文件程序中打开jar显示文件夹companyname,其中包含文件mainclass,因此限定名反映在jar结构中。资本化也是正确的。

罐子结构:

-META-INF
  MANIFEST.MF
-companyname
  -module
    -interfaces
      interface1.class
    -commands
      baseCommand.class
      register.class
      specialCommand.class
    moduleSpec.class
    moduleProcessor.class
  mainclass.class
log4j.xml
springconfig1.xml
springconfig2.xml

清单文件:

Manifest-Version: 1.0
Main-Class: companyname.mainclass
(newline char here)
(newline char here)

共有1个答案

司空坚
2023-03-14

首先,确保正确创建了可执行jar。有关使用Gradle创建可执行jar的信息,请参见此答案。

如果您正确地创建和打包jar,它可能无法加载主类,因为它有无法找到的依赖项。你说:

所有依赖项都位于相对于jar的/lib文件夹中,因此清单中没有指定类路径

java -cp "MyJar.jar;lib/*" com.mycompany.MyMainClass
 类似资料:
  • 什么是ClassPath 简单说来ClassPath就是查找class文件的路径,在Tomcat等容器下,ClassPath一般是WEB-INF/classes,在普通java程序中,我们可以通过定义-cp或者-classpath参数来定义查找class文件的路径,这些路径就是ClassPath。 为了项目方便,我们定义的配置文件肯定不能使用绝对路径,所以需要使用相对路径,这时候最好的办法就是把配

  • 我写了一个程序,但当我的朋友尝试执行它时,它抛出filenotfound异常,但文件存在,这是我的代码,在文件夹中有lib文件夹、jar文件和“csv fajlok”,在csv fajlok文件夹中有2个csv文件

  • 问题内容: CLASSPATH的路径之一是“ / Users / smcho / Desktop / clojure”,并且此目录中有文件hello.clj。 运行clojure和运行(要求’hello)会给出此错误消息。 当我将目录更改为“ /Users/…/clojure”并运行相同文件(要求“ hello”)时,没有问题。的。在CLASSPATH上。 跑步 也可以。 为什么Clojure在C

  • GNU Classpath(Java 的基本类库)是为了建立自由核心类库使用虚拟机和编译器的Java编程语言。它包括所有本地方法和核心课程是完全必要的功能Java运行。

  • 问题内容: 可以将option与with一起使用,添加还是替换env变量的内容? 问题答案: 使用classpath变量,它会覆盖环境变量的CLASSPATH,但仅适用于该会话。如果重新启动应用程序,则需要再次设置classpath变量。

  • 问题内容: 我正在Windows PC上工作,并且有cygwin!我将我所有的jars组织在几个目录中的一个目录下!我正在编写一个脚本,以通过遍历作为参数传递的目录来设置,如下所示: 每当在目录中有空格传递并且我运行时,都会抛出错误,指出未找到该类,因为CLASSPATH变量在之后被拆分。 有人可以帮我解决这个问题吗? 问题答案: 看到这篇文章。 您可以将完整的类路径包含在双qoutes中 或类路