在JAR中使用lib文件夹的正确方法

时间:2017-08-03 12:32:04

标签: java windows jar compilation executable

我面临一个可能很小的问题,但我相信最容易使用社区的帮助:

我的jar中有以下项目:

$.ajax({
    url:"map.php",
    type:"POST",
    success:function(data){
        $("#inlineEditForm").html(data);

        $('#inlineEditPopUp').dialog('open');
        google.maps.event.trigger(map, 'resize', function () {
            // your callback content
        });
    }
});

以下MANIFEST.MF的内容:

com (output of my compiled code)
lib/a.jar
    b.jar
    ... (about 30 more)
META-INF/MANIFEST.MF

我一直收到java.lang.NoClassDefFoundError -s。

显然,缺少的类是lib文件夹中一个jar的一部分。

值得指出的是,在我提取引用的jar的内容之前,我一直在正确执行这个jar。所以一切正常。我只是想使用罐子而不是提取它们的内容。

目标是只需调用:

即可运行应用程序

java -jar myjar.jar

同样,当我使用引用jar的提取内容时,我能够执行此操作。

Manifest-Version: 1.0
Class-Path: lib/*
Main-Class: com.irrelevant.MyMainclass

有没有一种简单的方法可以达到这个目的?

提前致谢, 彼得

1 个答案:

答案 0 :(得分:0)

您可以使用maven shade plugin创建一个public class HomeController : Controller { [HttpGet] [HttpPost] public JsonResult _sendConfirmation'(string subject,string mail) { Some Code--Some Code---Some Code return Json(new { Success = true, id = newCreatedMailId }); } } ,其中包含所有相关类。

Here就是这样做的例子。

如果您想尝试自己的解决方案,那么请尝试在清单文件的Class-Path中添加明确的jar名称。