Maven打包的jar文件在运行时找不到主类

2016-10-12  本文已影响0人  嫌疑人ZY

之前搞定了ip aggregation的shell script版本,所以就着手在flink上用java实现对pcap文件的处理。然而java好写,遇到的其他问题倒是不少。

  1. 首先就是pcap4j这个库在mac上的使用,这里是它的Github,貌似是一个日本程序猿写的,README当中并没有写明在macOS中如何使用,只是给出一个链接,是另一位程序猿在macOS上做的测试,也是几年前的事情了。
    鼓捣了很久,过程很繁琐,也依然没有安好,这个时候我发现这个Github主页上有一个作者写的关于该项目的网址https://www.pcap4j.org/,点进去发现在mac上使用Maven就可以极其简单的使用这个库。
pom.xml
  1. 环境已经搭好,准备找个sample先测试下,这个项目的作者很贴心的提供了一些samples,随便copy了一个,用Maven打包了一个jar文件,java -jar sample.jar之后提示无法找到主类错误。我第一反应就是看下MANIFEST.MF文件,果然文件中并没有Main-Class,添上就是咯。信心满满再次打包,结果运行仍然提示找不到主类。研究了一会发现Maven的一个插件可以解决这个问题——maven-assembly-plugin
    只需要在pom.xml文件中加入:
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>2.5.5</version>
        <configuration>
          <archive>
            <manifest>
              <mainClass>MainClassName</mainClass>
            </manifest>
          </archive>
          <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
          </descriptorRefs>
        </configuration>
      </plugin>
    </plugins>
  </build>

这样就可以正常使用java -jar ***.jar来运行啦!

  1. Tips

Cheers!####

上一篇下一篇

猜你喜欢

热点阅读