问题标签 [jar]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
33724 浏览

classpath - 当我调用 Jython *而不*将它们添加到 $CLASSPATH 时,如何将 jars 添加到类路径中?

我想做类似的事情jython -cp FOO:BAR:BAZ argle.py

如果我添加FOO, ,BAR和这个作品。我试图在运行时将它们添加到,但这似乎不适用于罐子。如果我在运行时添加扩展 jar 的路径,它确实有效。有没有一个简单的替代方法来爆炸 jar 文件?对每个运行此脚本的用户进行增强不是可接受的替代方案。BAZ$CLASSPATHsys.pathsys.path$CLASSPATH

谢谢。

0 投票
4 回答
1644 浏览

java - 更有效地从 Jar 中提取文件

我正在扩展一个实用程序类,它捆绑了一组图像和 .xml 描述文件。目前我将所有文件保存在一个目录中并从那里加载它们。该目录如下所示:



这是我当前的构造函数。它快如闪电,可以完成我需要它做的事情。(我已经删除了一些错误检查以使其更易于阅读):

为了 webstart 和清洁,我一直在尝试从 Jar 加载这些资源。我已经让它工作了,但是加载时间从瞬间变成了几秒钟,这是不可接受的。这是我尝试过的代码(再次,错误检查被剥离):

(这不是做我想做的事情的最好方法,它是一个模型,看看这个想法是否有效。它没有。两个 for 循环绝不是问题的根源;它是创建所有那些减慢它的 InputStreams 的过程)


除了我在这里尝试过的方式之外,任何人都知道使用 .jar 文件的更好方法吗?这是AngelCodeFont API。如果绝对有必要,我可以为此提交一个补丁,但我宁愿不必这样做。在我看来,可能有一种方法可以做我想做的事,我只是不熟悉它。

我并不是非常反对快速将 jar 转储到临时目录然后从那里读取文件,但是如果有办法直接从 jar 中快速读取,我宁愿这样做。

另外:压缩根本不是问题。我使用罐​​子的唯一原因是包装问题。

0 投票
3 回答
4472 浏览

java - 在核心库中包含 3rd 方 jar 的最佳实践?

我们有一个核心库,我们将其作为 JAR 包含在我们所有的 Web 应用程序中,以最大限度地重用代码。现在我们想通过第 3 方库 (iText) 通过这个核心库包含一些功能。

将 iText JAR 添加到核心库不起作用,因为类加载器找不到嵌套的 JAR。我们不想将 iText JAR 添加到每个 Web 应用程序,因为 Web 应用程序不使用 iText,它们使用的是使用 iText 的库。语义?也许吧,但是将第三方 JAR 添加到 Web 应用程序以便它使用的库可以访问 JAR 中的类似乎很麻烦。

我是否错过了解决此问题的简单实践,或者 jar 合并和自定义类加载器是最佳方法?

0 投票
3 回答
1867 浏览

java - 与 jar 文件相比,诊断和改进 java jnlp 的性能

客户 X 要求改进他使用的 Java 进程的启动时间。问题是,它不是通过 jar 文件运行,而是通过“jnlp”(我假设它是一个 java webstart 应用程序)

有没有办法将其转换为 JAR 文件,然后让用户在本地调用应用程序,并在 JRE 中包含一个启动标志来为进程分配更多内存?

用户有点沮丧,因为同一办公室的其他工作人员在几乎相同的机器上使用相同的应用程序,但他的过程似乎总是需要更长的时间来加载(几分钟而不是几秒钟)。

0 投票
5 回答
651 浏览

java - 平台强制版本控制机制是 Java 最需要的特性吗?

作为开发人员,我经常对可以使您的生活更轻松的新语言功能感兴趣。例如,Java 5 为该语言带来了泛型和注释,这些特性绝对可以提高您的工作效率。

然而,当我回顾近十年在 java 平台上的工作时,我发现版本控制相关的问题是导致效率低下和不必要的努力的最大罪魁祸首。寻找正确版本的 jar,尝试调和一些版本冲突,升级依赖库等数小时和数小时。当我开始使用 java 时,事情并没有那么困难,你会有一些 3rd 方库,仅此而已. 今天,您的典型 Web 应用程序可能很容易使用:Spring Framework、Hibernate、Struts,应有尽有。所有这些都带有许多相关的第 3 方库。今天,我的耳朵档案通常包括大约 40 个或更多的 3rd 方库。一个真正的罐子地狱!

例如,使用注释,我不必管理 Hibernate 的配置文件。一个不错的功能,但我没有看到由于我将描述符保存在单独的文件中而引起的许多问题。使用泛型,我不必编写强制转换语句,但在我的整个编程载体中,我不记得使用类型安全容器可以防止的单个错误。版本控制问题的解决方案不是更有价值吗?

所有这些问题都导致了许多工具,如MavenivyOne JarJar Jar Links(不是在开玩笑!),甚至恰当地命名为Jar Hell等。即使您使用其中一些工具,您也远不能对问题。我使用 Maven 2,它帮助很大。尽管如此,它本身就是一个世界。新手程序员可能需要一段时间来学习它。将遗留项目迁移到 Maven 结构也很痛苦。

似乎在 .Net 中,他们已经吸取了 dll 地狱的教训,并且 .Net 程序集的管理要简单得多。

似乎有计划为 java 平台和 OSGI 等替代品解决这个问题。我认为急需一些基本的和平台强制的版本控制机制

0 投票
2 回答
2916 浏览

java - 无法正确设置类路径

我正在尝试编译这个slick2d 示例(第一个),但我无法让它工作。这是代码:

我已按照指示将 lwjgl.jar、slick.jar 和 ibxm.jar 放入目录中。然后我尝试了:

javac -classpath .; 完整路径\slick.jar.; 完整路径\lwjgl.jar; 完整路径\ibxm.jar

然后

java精灵游戏

但是我收到未定义 jar 类的错误,这意味着当我设置类路径时一定有问题。我不确定我做错了什么。

我也试过

javac -classpath .;.\slick.jar.;.\lwjgl.jar;.\ibxm.jar

无论哪种方式,如果 .jar 文件与源代码位于同一目录中,jvm 不应该自行查找它们吗?就我而言,我已经在 WizardGame.java 的同一目录中设置了 3 个 jar。如果我尝试在没有 -classpath 参数的情况下进行编译,则它不起作用。

编辑:我按照指示做了,但现在它告诉我“java.library.path 中没有 lwjgl”

我用winrar检查了我的lwjgl.jar,发现它包含两个文件夹:meta-inf和org,然后在org里面有lwjgl。应该是这样吗?因为如果是的话,我不知道出了什么问题。

编辑2:用你所说的创建清单,然后使用:

jar cfm test.jar manifest.txt

这创建了一个 jar 文件,然后我使用

java -jar test.jar

然后它告诉我它没有找到 WizardGame 类的定义。

0 投票
3 回答
60577 浏览

java - 加载包含在 jar 中的资源

在我的应用程序中,我以这种方式加载资源:

这给了我:

当我从 IDE 运行我的应用程序时,这工作正常,但是当我运行我的应用程序的 jar 时:

路径变为:

有没有办法解决这个问题?

我将使用“存储库”目录名称来创建它:

以同样的方式,我会得到一个文件名(而不是一个目录),我会这样使用它:

0 投票
3 回答
7472 浏览

eclipse - 在eclipse或命令行中创建可执行jar时如何排除外部jar?

我在 Eclipse IDE 中编写了一个程序,它使用 BouncyCastle.jar 的 BouncyProvider 类。所以为了编译我的类,我在我的项目类路径中添加了 BouncyCastle.jar,它编译得很好。

现在我想将我的项目导出为 Runnable JAR,所以当我从 Eclipse 执行此操作时,默认情况下它也会在该可运行 jar 中添加 BouncyCastle.jar 的类。

但我想让我的应用程序 jar 和 BouncyCastle.jar 彼此不同。

我怎样才能做到这一点?有人可以帮忙吗?

0 投票
2 回答
4048 浏览

java - 部署 .jar 文件:为什么我无法加载图标文件?

我正在导出一个包含两个目录的简单 java 项目;src 和图标。Icons 是一个包含三个 .png 文件的目录。

我正在使用 File -> Export 导出到可执行的 .jar 文件。导出工作正常,.jar 文件包含 Icon 目录。但是在部署项目时,我无法获得 .png 文件的正确路径。在开发过程中,我使用以下路径:

图标/图片.png

只要我在 Eclipse IDE 中运行,它就可以工作。如何获得图标的正确路径?

0 投票
3 回答
4562 浏览

java - 可执行的罐子运行非常缓慢

我已经完成了几个项目并将它们打包成 jar 文件,但我注意到我的 jar 文件运行速度比在我的 IDE 中慢得多。

我使用 Eclipse 来编译和运行我的程序。在 Eclipse 中,我一切正常。当我将我的项目打包为一个可运行的 Jar 并通过双击执行它时,一切仍然有效。但是当我有动画时,程序运行得非常慢。在 Eclipse 中,我现在获得了大约 2 帧,而不是 Eclipse 中的每秒 30 帧。动画非常拖沓。

有趣的是,当我从命令提示符 ( java -jar MyCode.jar) 运行同一个 Jar 时,延迟消失了,我的程序正常运行。

我目前不知道是什么导致了这个问题。我的电脑运行的是 Windows Vista。我正在使用最新版本的 JRE 和 JDK。我的程序包含一个动画,没什么特别的。

谢谢

解决方案: 我的计算机上有几个不同版本的 Java,并且使用了不正确的版本。