通过将jar复制到项目中并编辑pom.xml文件,我设法添加了库,如下所示:
<dependency>
<groupId>Bbg</groupId>
<artifactId>BbgAPI</artifactId>
<scope>system</scope>
<version>1.0</version>
<!-- <systemPath>C:\blp\BPipe\APIv3\JavaAPI\v3.7.1.1\bin\blpapi3.jar</systemPath> -->
<systemPath>${basedir}\lib\blpapi3.jar</systemPath>
</dependency>
代码编译文件,但我在运行时得到一个错误:
java.lang.NoClassDeffounderRror:com/bloomberglp/blpapi/sessionoptions
我的猜测是JVM在类路径中找不到类定义。通常,在NetBeans中向标准java项目添加外部库时(通过项目属性中的libraries部分),类路径会自动更新,但在本例中(通过手动编辑pom.xml)似乎没有发生这种情况。
你知道我如何修补类路径以使类在运行时可见吗?通常情况下,您知道为什么这个项目模板不允许以标准的方式添加外部库吗?
谢谢
因此,在检查之后,按照本文中的说明,要将依赖项添加到项目中,您还需要一些东西。如果您只是这样构建项目,如果您在“Files”窗口中查看项目,您会注意到一件事,那就是您的jar不在那里。
要将JAR复制到某个位置,您应该使用maven-dependency-plugin。类似于
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.8</version>
<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>
这样,您应该可以在target
目录中看到lib
中的依赖项
然后使用maven-jar-plugin设置类路径
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.5</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>test.app.main.TestClass</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
如果您查看manifest
,则应该会看到lib/yourdependency.jar
添加到class-path
属性中。您应该能够运行jar
项目的“文件”视图。test-app-main
是主要的Maven项目。我主要是一个简单的java项目test-app
,在这个项目中,我创建了一个jar。
如果您想在主发行版jar中包含其他jar中的类,您将需要一个类似于maven-assembly-plugin或maven-shade-plugin的插件
只需执行以下操作并构建项目,就可以使jar“可用”于webapp
在NetBeans 8.2中,我如何正确地向库中添加外部.jar? 我正在做一个使用.jsp文件制作的web应用程序,运行在Tomcat服务器上(到目前为止是本地的)。我使用的是Maven,我想我对所有的第三方JAR都有问题,因为我也尝试添加JSON库,但也不起作用。我还尝试通过工具->Libraries->Add jar/folder等添加这些库,NetBeans显示它们已添加,但在我的Java
我的场景如下: 我有一个部署到servlet容器的webapp.war。此webapp.war在web-inf/lib中包含以下库: lib_a.jar lib_b.jar 我还有一个库,比如lib_vendor.jar,由于许可问题,我无法在webapp/web-inf/lib中部署,所以我让客户在应用程序安装后在tomcat/lib中复制这个库。但是由于lib_vendor.jar需要在web
清单合并失败:来自AndroidManifest.xml:31:9-42的属性application@icon value=(@drawable/app_icon)也存在于[com.microsoft.azure:Azure-notifications-handler:1.0.1]AndroidManifest.xml:13:9-45 value=(@drawable/ic_launcher)中。
当我右键单击Maven项目并选择AddDependency选项,然后在查询中键入外部jar的名称时,找不到它。如何将外部jar添加到Maven项目中?
我有一个java应用程序,需要部署在weblogic服务器中。我目前正在为该应用程序制作ear文件。我的ear文件中有一个ejb jar。我想将log4j2 jar添加到此应用程序中。所以我的文件夹结构是 目前,我已经将JAR放在APP-INF文件夹/lib和META-INF/application中。xml我把JAR放在了模块中。这是我的申请表。xml 但它不接受log4j罐子。有什么解决方案吗