Tag: jar

如何将直接访问的资源打包到jar文件中

我最近在Slick2D开发了一款游戏,我直接访问了我的所有图像,例如 Image i = new Image(“address.png”); 而不是使用将加载资源或使用输入流的类。 我想知道是否仍然可以将所有资源加载到jar中,我将/res文件夹添加到我的buildpath并使用jarsplice添加我的库和本机但是jar将无法运行,因为它无法找到图像。

如何将H2数据库嵌入到传递给客户端的jar文件中?

我在嵌入模式下使用H2数据库作为桌面应用程序。 当我将应用程序压缩到jar文件时,省略了数据库文件。 所以,当我运行MyApplication.jar时,没有任何作用。 使用MyApplication.jar嵌入/包含/连接h2.jar文件的正确方法是什么? 或者可能还有另一种方法可以在捆绑中提供数据库和应用程序?

如何在运行时从外部jar访问方法?

这是发布在以下问题的延续: 如何在运行时加载jar文件 我不确定如何继续方法调用级别。 根据我的理解,从clazz对象,我将使用getMethod或getDeclaredMethod来获取一个Method对象,我将从中调用invoke。 当然,调用需要一个实例。 那么那就是示例代码中所谓的doRun吗? 我是否需要执行doRun.run()方法调用,即使我想执行一个不同于main的方法(假设它是在运行调用调用的doRun对象上的主要方法)? 为了更好地澄清原始post,我问:doRun.run()是否启动了一个新线程来执行clazz类型的类对象的实例? 感谢您帮我解决这个问题。 我确实看过“how-should-i-load-jars-dynamic-at-runtime”(抱歉,只允许一个超链接),但这看起来违反了我引用的第一篇文章中的Class.newInstance邪恶警告。

Jar文件ADD DIRECTORY ENTRIES导出jar时的Eclipse选项

我不知道我是否在问正确的问题,但我想澄清我的怀疑。 实际上我遇到了从jar文件中引用类文件的场景。 我的意思是说我有一个后端java项目说ABC带有application-context.xml文件。 现在我创建了ABC项目的jar文件,并在一个基于Web的应用程序中使用。 在这里,我面临的问题是bean没有获得Autowired并且开始知道问题是,当我使用Eclipse导出ABC项目的jar文件时,我没有选择“ADD DIRECTORY ENTRIES”复选框,后来我做了所有工作。 只是通过在jar文件中选中此框来查看所做的更改,以便全部工作, 所以我创建了2个jar文件,其中一个选中了“ADD DIRECTORY ENTRIES”,另一个未经检查,然后我使用超比较比较了两个jar,发现没有任何区别。 有人可以解释一下“ADD DIRECTORY ENTRIES”究竟是什么吗? 我所知道的是它应该添加完整的结构而不是像com / company / project / MyJavaFile.class这样的单一路径 COM /公司/ COM /公司/项目/ COM /公司/项目/ MyJavaFile.class 如果我错了,请纠正我。

平台强制版本控制机制是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这样的替代品解决这个问题。 我认为非常需要一些基本的和平台强制的版本控制机制

(JAVA)使用命令提示符从多个.class文件创建.jar文件

我编写了一个名为Main.java的.java文件,并使用Windows命令提示符中的javac编译它。 编译器正在创建多个.class文件(称为Main.class,Main $ 1.class,&Main $ 2.class – 可能是因为我在Main.java文件中有匿名内部类)。 我正在尝试创建一个可运行的.jar文件,这样我就可以双击快捷方式来运行这个应用程序(它是一个Java Swing应用程序),但是当我导航到三个类文件的目录并输入时,我不成功: jar cfv file.jar Main.class Main$1.class Main$2.class 命令提示符然后输出此文本: added manifest adding: Main.class(in 4871) (out = 2848)(deflated 41%) adding: Main$1.class(in 1409) (out = 833)(deflated 40%) adding: Main$2.class(in 1239) (out = 767)(deflated 38%) 尽管如此,当我在Windows资源管理器中双击file.jar文件时,简单地说,没有任何反应。 没有摆动应用程序打开 希望有人可以帮助我解决这个问题。 谢谢 最佳… SL

Maven:JAR将为空 – 没有内容标记为包含

我和maven有一个小问题。 当我运行命令mvn包时,我收到以下警告: [警告] JAR将为空 – 没有内容标记为包含! 构建成功但生成的jar文件为空,如警告所示。 为什么这样,我做错了什么? 这是我的pom.xml 4.0.0 framework framework 1.0 jar framework http://maven.apache.org UTF-8 My dependencies target target/classes ${project.artifactId}-${project.version} target/test-classes src src src test maven-compiler-plugin 2.3.2 src org.apache.maven.plugins maven-jar-plugin 2.4 lib

修改执行Jar文件

Hello Stack Overflow朋友。 我有一个简单的问题,我担心没有一个简单的解决方案,我需要建议如何继续。 我正在开发一个打包为可执行JAR的Java应用程序,但它需要在执行期间修改其一些JAR文件内容。 在这个阶段,我遇到了一个问题,因为某些操作系统会锁定文件以防止写入文件。 在应用程序退出时,用户必须看到jar文件的更新版本,尽管我可以非常灵活地了解如何实现这一点。 清洁高效的解决方案显然是可取的,但便携性是唯一的硬性要求。 以下是我可以看到解决问题的三种方法,随意评论或建议其他方法。 告诉Java解锁JAR文件进行编写(这似乎不太可能,但它将是最简单的解决方案) 在应用程序启动时将可执行类文件复制到临时文件,使用类加载器加载这些文件并从初始JAR文件中卸载这些文件。(对类加载器没有太多经验,但希望JVM能够足够聪明地实现原来的JAR不再使用,所以解锁它) 将第二个可执行JAR文件放入First中,在启动时将内部jar提取到e临时文件,使用复制的内部JAR调用新的java进程并将其传递给外部JAR的位置,第一个进程退出,第二个进程修改外部jar uninumbered。(这将工作,但我不确定有一个平台独立的方式,一个Java应用程序调用另一个) 我知道这是一个奇怪的问题,但任何帮助将不胜感激。

麻烦整合BouncyCastle Jar

好的,我现在要说我对Java知之甚少。 我得到了Bouncy Castle Jar,并告诉我将包含我需要做的任务。 Jar文件是bcprov-jdk15on-147.jar 。 我也是在我学校维护的Unix机器上做这个,所以我不能进去玩所有的Java文件。 当我使用Javac编译我的类(特别是我使用命令javac -classpath bcprov-jdk15on-147.jar encrypt.java )时,它编译时没有错误,但是当我以后使用命令java encrypt运行程序时,我得到了此错误消息: Exception in thread “main” java.lang.NoClassDefFoundError: org/bouncycastle/jce/provider/BouncyCastleProvider Caused by: java.lang.ClassNotFoundException: org.bouncycastle.jce.provider.BouncyCastleProvider at java.net.URLClassLoader$1.run(URLClassLoader.java:200) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) 我的Jar文件位于我的主文件夹中,包含我的所有其他文件,以防万一它必须去特别的地方,这就是我没有做的事情。 当我做java -classpath bcprov-jdk15on-147.jar encrypt这是我得到的错误: Exception in thread “main” java.lang.NoClassDefFoundError: encrypt Caused by: java.lang.ClassNotFoundException: encrypt at java.net.URLClassLoader$1.run(URLClassLoader.java:200) […]

如何在jar文件中使用SQLite数据库?

我无法弄清楚如何在 Java .jar文件中包含SQLite数据库以进行部署(通过Java WebStart)。 数据库不需要在运行时更新……它本质上是一个美化的配置文件。 顺便说一句,使用Eclipse。