Tag: jar

创建包含外部文件的Runnable Jar

我想在java中构建一个可运行的jar。 我需要在jar中包含一些文件,这样当我执行jar时,文件会自动从java类中读取。 因此,我在项目中创建了一个文件夹,并从项目中引用了这些文件。 我在一些教程后创建了jar文件,但我无法将这些外部文件包含在我的jar文件中。 请告诉我有关使用外部文件创建可运行jar的信息。 我的文件结构是 Test | | ——-src | | | default package | | | | | test1.java | ——-FileFOlder | | | | | abc.txt 我正在访问test1.java类中的abc.txt 。 我的代码是, public class test1 { public static void main(String[] args) throws IOException { char [] read = new char[20]; String path = new File(“.”).getCanonicalPath(); […]

将外部jar放在JAVA_HOME / lib / ext目录中是件坏事吗?

我们有一个在JRE环境中运行的应用程序。 该应用程序使用一些外部jar,我们已将它们放在JAVA_HOME / lib / ext文件夹中。 这对我们来说已经有好几年了,但最近一位新的程序员加入了我们的团队,并且似乎强调这是一件多么糟糕的事情。 在我进一步深入了解这个开发人员之前,我无法理解为什么并且我正在尝试做一些研究。 这里有什么我想念的吗?

如何从当前运行的jar中复制文件

我有一个.jar,它有两个依赖的.dll文件。 我想知道是否有任何方法可以在运行时将.jar中的这些文件复制到用户临时文件夹中。 这是我当前的代码(编辑为只有一个.dll加载以减少问题大小): public String tempDir = System.getProperty(“java.io.tmpdir”); public String workingDir = dllInstall.class.getProtectionDomain().getCodeSource().getLocation().getPath(); public boolean installDLL() throws UnsupportedEncodingException { try { String decodedPath = URLDecoder.decode(workingDir, “UTF-8”); InputStream fileInStream = null; OutputStream fileOutStream = null; File fileIn = new File(decodedPath + “\\loadAtRuntime.dll”); File fileOut = new File(tempDir + “loadAtRuntime.dll”); fileInStream = new FileInputStream(fileIn); fileOutStream = new […]

如何在Maven项目中包含本地jar文件

我不想在Maven存储库(本地/远程)中安装几个jar。 特别是我有几个jar文件 c:\work\projects\myapp\src\main\webapp\WEB-INF\lib\test.jar c:\work\projects\myapp\src\main\webapp\WEB-INF\lib\test2.jar 使用NetBeans打开/编辑时如何将它们包含到我的项目中?

如何正确地在Jar中打包资源

我知道还有其他问题针对同一个问题,但问题是解决方案对我不起作用。 我有一个小工具应该读取我想拥有的文件并打包为资源并依赖于其他项目(我使用Eclipse Helios),我喜欢将它作为jar子而不是单个类。 作为Eclipse中的应用程序,我可以通过访问我的资源 String path = MyClass.class.getClassLoader().getResource(“resources/” + name + “.SOURCE”).getPath(); System.out.println(path); File file = new File(MyClass.class.getClassLoader().getResource(“resources/” + name + “.SOURCE”).toURI()); defaultSource = readSOURCEFile(file); 当且仅当我将resources文件夹放在输出路径(编译源)下时,如果我将它放在我的src文件夹中。 当我打包项目时,根文件夹或类文件夹中的资源根本不打包。 如果我在我的src文件夹中有资源,它将被打包在src / resources下。 我使用Export – Runnable Jar,我做错了什么? 如果我尝试使用Export – Jar,我可以正确打包我的源代码和资源,但是我在设置主类时遇到问题而无法执行jar。 清单是正确的,class级在那里:-(。 第二个问题:在打包的jar中我得到错误:URI不是分层的(在我手动移动jar中的资源后我可以执行jar) 提前致谢! 我已将源链接到工作区是一个问题?

如何获取当前正在执行的jar文件所在的目录?

我正在各个位置运行一个jar文件,我正在试图弄清楚如何获取正在运行的jar文件的位置。

我可以通过cmd运行.jar文件,但我无法双击它们

首先,我正在学习Java,但我仍然很新,所以复杂的代码将会超越我的头脑。 当我下载.jar文件说安装mod到Minecraft并双击它时,它不会运行。 装载轮持续两秒钟然后停止,没有其他任何事情发生。 我知道的.jar设置正确,因为它使用命令运行cmd cd “wherever the file is” java -jar “file name”.jar 所以我已经尝试使用java \ jdk1.7.0_25 \ jre \ bin中的默认程序设置为javaw.exe来运行它。 没有任何反应。 因此文件关联设置在正确的位置。 我在这里不知所措。 这还不错,因为我仍然可以通过cmd运行它们,但是当我到书中关于jar的部分时,我希望能够通过Windows资源管理器GUI运行它,这就像使用的一半好处我能看到的.jar文件。 是否可能是注册表错误? 我已经看到了很多关于这个问题的问题,但是大多数问题似乎都是设置.jar的问题,我没有这样做,我认为这不是这种情况。 我有Windows Vista 64位。 如果我不够具体,请随时问。

创建非反向工程的Java程序

有没有办法以不可反向工作的格式部署Java程序? 我知道如何将我的应用程序转换为可执行的JAR文件,但我想确保代码不能进行逆向工程,或者至少不容易。 源代码的混淆不计算……它使得理解代码变得更加困难,但不会隐藏它。 一个相关的问题是如何锁定已编译的Java类以防止反编译? 一旦我完成了程序,我仍然可以访问原始源代码,因此维护应用程序不会成为问题。 如果应用程序是分发的,我不希望任何用户能够反编译它。 混淆不能实现这一点,因为用户仍然可以对其进行反编译,虽然他们很难跟踪操作流程,但他们能够看到代码,并可能从中获取信息。 我关心的是代码中是否有与远程访问相关的信息。 应用程序使用用户提供的用户标识和密码连接主机。 有没有办法从用户隐藏主机的地址,如果该地址位于源代码内?

LocationAwareLogger上的SLF4J NoSuchMethodError

这个问题之前已被提出过,但不幸的是,似乎没有任何解决方案对我有用。 我正面临这个exception(使用精简堆栈跟踪): java.lang.NoSuchMethodError: org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;[Ljava/lang/Object;Ljava/lang/Throwable;)V at org.apache.commons.logging.impl.SLF4JLocationAwareLog.debug(SLF4JLocationAwareLog.java:133) at org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager$1.getConnection(ThreadSafeClientConnManager.java:221) at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:401) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820) 使用命令行Maven进行编译时以及部署到Tomcat时会发生这种情况。 它在IntelliJ IDEA中工作正常。 通常我希望这是由正在使用的SLF4J库的多个版本引起的。 但Maven依赖树在单个版本中显示所有slf4j库: ..$ mvn dependency:tree | grep slf4j [INFO] +- org.slf4j:slf4j-simple:jar:1.6.4:compile [INFO] | \- org.slf4j:slf4j-api:jar:1.6.4:compile [INFO] +- org.slf4j:slf4j-api:jar:1.6.4:compile [INFO] +- org.slf4j:jcl-over-slf4j:jar:1.6.4:compile [INFO] +- org.slf4j:slf4j-simple:jar:1.6.4:compile 我甚至确保〜/ .m2 / repository中没有其他JAR 也没有对commons-logging库的引用(我将它们全部排除在外,因为依赖树已经确认了。 我该如何解决这个问题? 我的想法已经不多了。 编辑:这里要求完全依赖,首先是父POM: org.hibernate hibernate-validator ${org.hibernate.validator.version} org.slf4j slf4j-api org.hibernate hibernate-validator-annotation-processor ${org.hibernate.validator.version} […]

NetBeans – 在一个jar中部署所有

可能重复: 把外部库放到JAR上? 我有NetBeans 6.8,我写了一个有两个库(jar文件)的类。 构建它,我得到一个带有project.jar的“dist”文件夹和一个包含两个lib jar文件的“lib”文件夹。 我怎么能在一个jar文件中得到所有这些? (我不使用Maven / Ant或类似的东西。)