<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>${jdk.version}</source>
<target>${jdk.version}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.1</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathLayoutType>custom</classpathLayoutType>
<customClasspathLayout>lib/${artifact.artifactId}${artifact.dashClassifier?}-${artifact.version}.${artifact.extension}</customClasspathLayout>
<mainClass>mypkg.Main</mainClass>
</manifest>
<manifestEntries>
<Class-Path>. ${project.build.directory}\resources ${project.build.directory}\lib</Class-Path>
</manifestEntries>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}\lib</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}\resources</outputDirectory>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
package mypkg;
import java.io.IOException;
public class Main {
public static void main(String[] args)
throws InstantiationException, IllegalAccessException, ClassNotFoundException, IOException {
.......
.......
}
}
jar是用“meta-inf”文件夹中的清单文件创建的。清单文件(为了查看目的删除了类路径中的一些jar条目):
Manifest-Version: 1.0
Built-By: userName
Class-Path: . D:/project2/mypkg/target/ D:/project2/mypkg/target/resources D:/project2/mypkg/target/lib lib/hive-jdbc.jar lib/hive-common.jar lib/commons-lang.jar
Created-By: Apache Maven 3.3.9
Build-Jdk: 1.8.0_101
Main-Class: mypkg.Main
文件夹结构:
folder-
-lib
-(all the jar files)
-resources
-(properties file)
-application.jar
我正在命令提示符下使用'java-jar application.jar mypkg.main'。
有人能告诉我是什么造成的错误和如何解决它吗?
终于找到了解决办法。只需要在清单文件中做一些修改。罐子的版本不见了。
最终清单文件(为了查看目的,删除了类路径中的一些jar条目)::
Manifest-Version: 1.0
Built-By: userName
Class-Path: lib/hive-jdbc-1.1.0.jar lib/hive-common-1.1.0.jar
Created-By: Apache Maven 3.3.9
Build-Jdk: 1.8.0_101
Main-Class: mypkg.Main
请注意:通配符(例如“lib/*”)在清单文件(Java6及以上版本)中的'class-path'头中不起作用。
我已经使用netbeans制作了jar文件,使用Build和Clean项目选项。我得到了.jar文件,现在当我执行它一小段时间后,cmd窗口出现,并给出一个错误:“Could not find or load main class while executing jar file” 但是,如果我使用命令提示符Java-jar执行jar,它可以正常工作 Netbeans的输出为: 而在jar文件中,
我知道这是一个常见的问题,但我已经尝试了很多事情来使这起作用。 主类名:Test 我包含了带有属性的,如下所示: null 在我的部署简介中,我包括: lib目录 文件的组贡献者(,我正在使用的一个外部)的所有合并内容 注意:我使用的是JDeveloper12c IDE 无法运行jar文件:无法找到或加载主类Hello
首先,我知道这个问题经常被问到。但我的问题不同,所以请耐心看完整的描述。 而且布景似乎还不错。以前对我有用。但我运行了构建的jar,它表明“无法运行或加载主类”。 我发现如果我删除这些文件除了Manifest.mf。它可以很好地工作。我不知道设置有什么不同。 重建项目或重建工件jar。 但不是所有的方法都能奏效。并且我尝试在intellij中用相同的设置在MAC OS和windows OS中构建j
在完成spring-boot服务器之后,我想将它变成一个jar,以便可以将它部署在远程服务器上。我选择使用maven完成此操作 在.jar-with-dependecies.jar创建之后,我将其上载到服务器上并尝试运行 和其他人一样 链接2 链接3 链接4 mvn命令: 这也不起作用:
我有独立的应用程序,它绑定在可执行的中。在可执行的清单文件中,有一个class-path条目,其中列出了所有依赖的(包括所有的日志实现jar)。这个可执行jar还包含文件。 使用这种结构,当我使用简单的命令运行应用程序时,应用程序在正确的日志记录下运行良好。但这里的主要问题是,要更改日志级别,需要打开jar文件,而我不能要求客户端这样做。所以我将放在了jar外部,但现在所有日志记录都发生在控制台上
你好,我有一个奇怪的问题。我正在用eclipse打包一个应用程序,以生成一个可执行的jar文件,当我运行它时,会出现错误“error cant find main class[…]”。 当我从命令行示例运行同一个包时 java-jarapp.jar 程序启动。 奇怪的是,只有在Java 7环境中编译的应用程序才会出现错误。 如果我将项目设置为java 6,一切都正常。 我应该做什么来运行Java