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

Java-为常用包创建一个Jar文件

殷永嘉
2023-03-14

我有个问题希望有人能帮我解决。

我有两个java项目,其中一个我们将称之为CORE,它包含一组通用功能的类,并向我们的DB提供hibernate接口/DAO等。

其他项目需要CORE以便与我们的DB交互并使用公共的CORE功能。

现在,我已经使用Gradle创建了一个Jar文件,并通过IDE将该Jar文件导入到其他项目中,所有内容都可以正确编译。

现在我明白了,当创建一个Jar文件时,您需要提供一个详细说明入口点的清单文件...然而,核心项目没有任何可运行的主方法...那么,我如何创建我的Jar,使所有其他项目都可以使用核心呢?

谢谢

好的,所以我想我需要更多的帮助在这里,伙计们(感谢所有的信息到目前为止)

dependencies {
compile files('lib/CORE-all-1.0.jar')
runtime files('lib/CORE-all-1.0.jar')
compile 'org.testng:testng:6.9.6'
compile 'org.hamcrest:hamcrest-all:1.3'
compile 'com.fasterxml.jackson.core:jackson-annotations:2.6.1'
compile 'com.fasterxml.jackson.core:jackson-core:2.6.1'
compile 'com.fasterxml.jackson.core:jackson-databind:2.6.1'
compile 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.6.1'
compile 'org.codehaus.jackson:jackson-mapper-asl:1.9.13'
compile 'org.apache.httpcomponents:httpclient:4.5'
compile 'joda-time:joda-time:2.8.2'
compile 'org.slf4j:jcl-over-slf4j:1.7.12'
compile 'ch.qos.logback:logback-classic:1.1.3'
compile 'net.sf.ehcache:ehcache:2.10.1'

我仍然看到错误:(

共有1个答案

陈茂
2023-03-14

如果您的JAR文件是一个库,那么在它的manifest.mf中没有一个Main-Class条目。库支持其他程序,它们不运行。

如果您的JAR文件是一个程序,它需要在它的manifest.mf中包含Main-Class条目,并且manifest可能应该在manifest.mf中使用Class-Path条目来提到所需的JAR文件。

如果您的JAR文件是一个嵌入到其他程序中的程序(它不应该是,但它发生了),其他程序将控制启动行为。没有所谓的“库提供的程序启动器”。

有一些Java框架,它们是缺少关键功能部分的程序。在这种情况下,您的代码基本上是框架加载和运行的一个库,向JAR文件中添加一个Main-Class不会影响框架的Main-Class行为,因为框架是启动程序。

考虑到这一点,IDE通常维护一个单独的运行配置,它并不总是遵循您可能在命令行上使用的约定。您应该检查您的IDE运行配置,如果可能的话,将它们对齐到所需的命令行调用的任何一个链,或者采取措施确保它们不会偏离。在您的例子中,您的IDE很可能在同一个CLASS_PATH上缺少两个JAR文件,但是如何修复这些文件的细节是您的IDE和您创建的类型或项目特有的。

 类似资料:
  • 我有两个jar(比如A.jar和B.jar),其中包含一些文件。我想创建第三个jar(比如c.jar),它只包含B.jar中的文件,而不包含A.jar中的文件。是否有用于执行此操作的java API。 谢谢

  • 问题内容: 我想创建一个包含其他JAR库的可执行JAR文件。但是当我执行JAR时,它给出了类路径问题的错误。 我该如何解决类路径问题? 问题答案: 我想您可以这样尝试; 这是一个简单的示例供您提问。首先,假设我们有一个项目目录,例如。然后,在此工作目录中创建一个主类 HelloWorld.java ,其中包含其他JAR文件,例如。现在,我们必须将主类HelloWorld和commons-lang.

  • 问题内容: 我正在学习Java,但遇到了问题。我创建了6个不同的类,每个类都有自己的方法。我想为每个类创建可执行文件,即6个可执行文件。 到目前为止,我尝试了 我得到“无法访问jarfile cf”。我做错了,但我不知道怎么办。如果这意味着某种意义,我还将使用Eclipse IDE。 问题答案: 为了创建一个.jar文件,你需要使用jar而不是java: 另外,如果要使其可执行,则需要为应用程序指

  • 我试图使用一个jar生成一个包含clojure jar文件和java类文件的jar文件:创建一个jar文件,用于从java/clojure执行 按照指令,我可以使用生成目录。按照指示,我替换了java源代码,并添加了ThingOne-1.0.0-SNAPSHOT-standalone.jar 运行,它构建jar文件时没有出现错误,但是当我尝试执行jar文件时,收到了错误消息。 什么可能是错的?

  • 我还看到,我不必使用导入,只需使用整个路径调用类。这似乎是一个很多的工作,但可能的解决方案。我只想知道有没有更快更容易的解决办法。

  • 我有一个文件夹。java文件,我需要编译它们以获得。jar文件。主要的问题是,这些文件太多了,它们被分成了许多文件夹。有没有办法把它们都编译好让我。类文件并创建一个jar文件夹?我的文件夹由Weka工具修改的脚本组成,我需要编译它们来运行程序。 非常感谢你的帮助。