Tag: 依赖项

如何在清单文件中指定依赖项,然后将其包含到我的.jar文件中?

我通过以下命令生成.class文件: javac -cp \directoryName\external.jar myPackageDirectory\First.java myPackageDirectory\Second.java 我需要在编译期间使用-cp并使用“外部”库(external.jar)的.jar文件名来从我的代码中使用此库。 使用我的.class文件,我按以下方式生成了我的.jar文件: jar cfm app.jar manifest.txt myPackageDirectory\*.class manifest.txt只包含一行: Main-Class: myPackageName.First 我的问题是我不确定我是否可以在其他计算机上运行我的.jar文件。 我想是这样的,因为在编译期间我指定了外部库的.jar文件的位置。 因此,我的.class文件(包含在.jar文件中将尝试在特定目录中查找外部库的.jar文件,并且无法保证外部库的.jar文件将位于同一目录中就像在我的电脑上一样。 我听说上面的问题可以通过a来解决 我在自己的jar中包含的MANIFEST文件的使用,它将列出依赖项位置 但我不明白它是如何工作的。 我需要在编译阶段指定“external.jar”的位置(否则编译器会抱怨)。

平台强制版本控制机制是java最急需的function吗?

作为开发人员,我经常对可以让您的生活更轻松的新语言function感兴趣。 例如,java 5为该语言带来了generics和注释,这些function肯定可以提高您的工作效率。 然而,当我回顾近十年来在java平台上工作时,我发现与版本相关的问题是非生产性和不必要的努力的最大罪魁祸首。 寻找正确版本的jar的小时和小时,尝试协调一些版本冲突,升级依赖库等。当我开始使用java时,事情并不那么困难,你会有一些第三方库,就是这样。 今天,您可以轻松使用典型的Web应用程序:Spring Framework,Hibernate,Struts,您可以使用它。 所有这些都带有许多依赖的第三方库。 今天,我的耳档将通常包括大约40个或更多第三方库。 一个真正的jar子地狱! 使用注释,我不必管理Hibernate的配置文件。 一个很好的function,但我没有看到由于我将描述符保存在单独的文件中而产生的许多问题。 使用generics,我没有编写演员语句,但在我的整个编程载体中,我记不起一个可以通过使用类型安全容器来防止的错误。 版本问题的解决方案不是更有价值吗? 所有这些问题导致了许多工具,如Maven , Ivy , One Jar , Jar Jar Links (不开玩笑!),甚至恰当地命名为Jar Hell等。即使您使用其中一些工具,您也远远不能免受问题。 我使用Maven 2,这是一个很好的帮助。 不过,它本身就是一个世界。 新手程序员可能需要一段时间来学习它。 将您的遗留项目迁移到Maven结构也很痛苦。 似乎在.Net中他们已经学会了dll地狱的教训,并且.Net程序集的管理要简单得多。 似乎有计划为java平台和像OSGI这样的替代品解决这个问题。 我认为非常需要一些基本的和平台强制的版本控制机制

Jboss 5,类加载器和多个类实例

我的申请有问题。 要恢复这个问题,我必须将应用程序从jboss 4迁移到jboss 5。 在战争部署期间,我遇到了这个错误: java.lang.LinkageError: loader constraint violation: when resolving field “DATETIME” the class loader (instance of org/jboss/classloader/spi/base/BaseClassLoader) of the referring class, javax/xml/datatype/DatatypeConstants, and the class loader (instance of ) for the field’s resolved type, javax/xml/namespace/QName, have different Class objects for that type 经过多次搜索,我发现这个错误在这里是因为我在不同的包中有过几次相同的类。 一旦进入依赖包(来自我的pom.xml)并且一次由jboss提供。 因此,为了解决这个问题,我为我的依赖项提供了“提供”范围。 但我不明白为什么这个解决方案有效。 我认为在应用程序中有几次同一个类是有效的。 我知道这不是一件好事,但是对于jboss 4,这是有用的。 有人可以解释为什么它适用于jboss 4而不适用于jboss 5。 谢谢你的解释:)

如何获取主类的Java类依赖项列表?

有没有办法找到java主类的所有类依赖项? 我一直在手动筛选主类的导入和它的导入,但后来意识到,因为一个人不必导入同一个包中的类,所以我整理了一个不完整的列表。 我需要一些能够递归地找到依赖关系的东西(也许是定义的深度)。

创建JAR文件而不包含外部依赖项

是否可以创建需要外部依赖关系的JAR文件而不在JAR文件中包含这些依赖关系? 我的google-fu未能给我答案; 我发现的所有内容都显示了如何将它们包含在JAR文件中,但是没有在清单文件中放置什么来说“我还没有它们,请查看用户的类路径”。 我假设在用户的类路径上正确安装和配置了依赖项。 就我而言,我的依赖项是Apache Commons CLI和Math。 编辑:在我的JAR文件中,我有Main.class。 我的清单文件如下: Manifest-Version: 1.0 Created-By: 1.6.0 (Sun Microsystems Inc.) Main-Class: Main 我的CLASSPATH看起来像 .;C:\Program Files\Java\jre1.6.0_06\lib\ext\QTJava.zip;C:\java_lib\commons-cli-1.2.jar;C:\java_lib\commons-math-2.0\commons-math-2.0.jar 如果我将依赖项包含在/lib中的JAR中并将行Class-Path: lib/commons-math-2.0.jar lib/commons-cli-1.2.jar到清单中,那么它确实有效。 我已经尝试将Class-Path: commons-math-2.0.jar commons-cli-1.2.jar到清单中而不包括JAR中的文件只是为了看看它是否可行,但事实并非如此。

将jar打包到具有独立外部资源和依赖关系的dist目录中

这是我想要实现的 – 一个dist目录(或一个zip文件),如下所示: dist/ |– application-1.0.jar |– conf/ |– application.properties |– log4j.properties |– lib/ |– *.jar 基本上: 生成一个可执行jar(清单中有适当的类路径) 我想排除src/main/resources与jar自动打包,以便可以修改application.properties 我想在lib/目录中有外部依赖项 我想出了一个使用配置文件的解决方案,其中包含附加到包阶段的插件,但使用组件插件是一个更好的解决方案吗?

Java – 如何减小第三方jar的大小以减小应用程序的大小

我正在开发一个java Web应用程序 ,其中包括一个applet 。 该applet依赖于两个jar文件: JFreeChart (用于在客户端绘制图形) – 1.7 mb(jar文件的大小) MySqlJdbcConnector(用于存储在客户端捕获的数据到远程数据库) – .7 mb(jar文件的大小) 现在,问题是上面两个jar文件的大小。 我的applet jar (myApplet.jar)的总大小是2.5 MB ,其中2.4 MB是由于上面两个jar文件。 我没有使用那些jar文件中的所有类。 具体来说,对于jfreechart ,我使用的是来自该库的极少数类。 ============================== 问题 =================== =================== Q1。 为了创建myApplet.jar文件,我所做的是解压缩了两个jar文件(jfreechart和mySQLJdbcConnector),然后用我的applet代码的源代码打包解压缩版本的jar文件,以创建一个jar文件( 即myApplet.jar)。 这是用你的applet代码打包第三方jar文件的正确方法吗? 有什么方法可以优化这个吗? Q2。 我试图找到我在我的应用程序中使用的jfreechart库类的依赖关系,以便只在myApplet.jar中打包这些依赖项。 为此,我使用DependencyAnalyzer来查找所有类的依赖关系。 但后来我发现很难手动执行,因为每个类(我在我的应用程序中使用的jfreechart类)都有很多依赖项,而且我使用了15个类的jfreechart,所以对每个类执行此操作将非常困难。 那有什么建议吗? Q3。 这种情况是非常普遍的开发人员遇到或我遗失的东西,因为我必须这样做?

Hadoop 2.0 JAR文件

尝试在Map / Reduce程序中实例化Configuration对象时出现意外错误。 错误如下: java.lang.NoClassDefFoundError:org / apache / commons / logging / LogFactory 我正在使用Hadoop 2.2.0。 该程序与早期版本的Hadoop一起运行良好。 但是,现在我需要为版本2编写此作业提交者,这似乎不起作用。 作为旁注,我找不到此版本所需的所有JAR文件。 我已经阅读了类似问题的以下解决方案: hadoop 2中的hadoop jar文件在哪里? 。 但是,这对我不起作用。 它因上述运行时错误而失败。 我尝试使用较旧的JAR文件来解决这些问题,但新错误仍在继续。 有没有人有这个问题的解决方案? 我正在使用NetBeans,如果由于某种原因有任何不同。

分析Java项目中的JAR依赖项

我正在寻找一个工具,它将根据编译的字节代码的静态分析向我展示我的Java项目中的JAR依赖关系图。 具体来说,我试图弄清楚是否有可以消除的未使用的JAR,但我也想更好地了解存在的依赖关系。 我没有使用Maven。 Dependency Finder很接近,但它处理的是包而不是JAR,并且似乎没有任何方法可以查询没有依赖的JAR。 有什么建议? 免费和开源首选。 谢谢!

如何导入org.apache Java依赖项w /或没有Maven

所以快速的背景是我正在创建一个使用许多不同导入的java程序 import org.apache.hadoop.conf.*; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.*; import org.apache.hadoop.mapreduce.*; import org.apache.hadoop.util.*; import org.apache.hadoop.mapreduce.lib.input.FileInputFormat; import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat; 我知道Netbeans没有找到这些文件,因为我的计算机上没有这些文件。 但有没有办法让Netbeans自动连接org.apache并检索这些文件? 或者我只需要下载它们。 有人建议使用Maven,但我不确定这是否是正确的解决方案或如何解决这个问题? 谢谢