Tag: 可执行jar

包括一个jar文件

我编写了一个java程序,它实际上是作为现有命令行程序的gui。 所以基本上我的所有程序都是Runtime.getRuntime().exec(“myprogram parameter”); 。 所以我已经使用Eclipse IDE将我的java源代码导出为可执行jar文件并且它运行良好,但是我确实需要将此myprogram.exe包含在生成的jar文件的目录中以便工作。 现在我正在寻找一种方法将myprogram.exe包含在jar文件中,这样我就可以将它作为单个文件捆绑在一起,使用Eclipse的方法将是首选。

使用JarBundler将Java转换为MacOSX的.app文件

我所要做的就是将一个简单的java程序转换为macOSX .app文件,这样我就可以将它作为一个简单的可执行文件分发。 我到处都读过,每个人都说同样的话: 使用Xcode – 据我所知,Xcode不再支持Java Build 使用Jar Bundler – 所有教程似乎都已过时,但它不起作用。 当我运行:java -jar jarbundler-2.0.0.jar 控制台返回“jarbundler-2.0.0.jar中没有主要清单属性” 如果我是对的,那么打包jar文件的人会失败吗? 但我试过从其他网站和其他版本下载它,但我得到同样的事情。 他们说你可以自己创建目录和文件,然后将你的文件夹重命名为.app,然后对它运行一个命令,但这很复杂,因为我不确切知道如何创建一个info.plist文件……如果你想这样做,我到目前为止找到的最好的网站就是这个: OSX的Java部署选项 我已将我的代码编译成.jar文件,我有一个图标和所有内容,我需要做的就是以某种方式将其打包到.app文件中。 我在这里先向您的帮助表示感谢! 解 编辑:我明白了! 经过7或8个小时的搜索和阅读后,它可以正常工作。 因为我刚接触到这个,所以我将发布我学到的所有东西来拯救遇到同样问题的其他人经历痛苦。 我放弃了自己做的方法,然后回到了JarBundler。 如果其他人正在读这个并且他们对ANT一无所知,那就是我做的:下载JarBundler,我从这里得到了我的: Mac OS X JarBundler ANT任务并按照其中的说明进行操作。 下载时,请将jarbundler-2.2.0.jar文件放在此处: 的/ usr /共享/ant/ lib中 您可能必须运行命令来移动它,例如: sudo mv jarbundler-2.2.0.jar~ /../../ usr / share / ant / lib / jarbundler-2.2.0.jar 就像我说的那样,我还在学习,但这对我有用。 确保你移动了正确的jarbundler,这是我遇到问题的地方,我移动了整个文件夹,而不是内部的.jar文件,所以请确保你移动你下载的文件夹zip里面的.jar,而不是整个东西,否则当你去构建它时,你会得到一个错误,如错误:taskdef class net.sourceforge.jarbundler.JarBundler找不到。 […]

在运行时选择可运行jar中的主类

我在应用程序中有两个主要类。 当我将它打包到一个可运行的jar(使用Eclipse导出函数)时,我必须选择一个默认的主类。 有没有办法在运行时从jar访问非默认主类?

设置可执行Jar文件的图标

我有一个简单的可执行Jar文件。 我该如何为这个文件设置图标? 在我的情况下,我使用标准的Jar图标,我想改变。

在Eclipse中生成Jar包括外部库

我有一个我用eclipse编写的java应用程序。 它在那里工作正常。 它可以从我将其导出到的目录中的命令行运行良好。 在该目录中是另一个目录,其中包含应用程序所需的两个jar文件,清单文件具有指定它们的Class-path选项。 我想要一种方法来使用eclipse生成必要的文件来打包这个应用程序以在另一台机器上运行。 那可能吗? 如果我选择“创建可执行jar文件”,它会创建这个巨大的文件; 它解压缩并重新打包两个库,我知道这是获取其function的一种方法。 如果他们以某种方式留下自己的jar子,我会更喜欢它,但我不确定eclipse能做到这一点。 令人讨厌的是,可执行jar文件选项将我的eclipse项目中的大量文件放入该jar文件中。 我没有看到选择包含在那里的内容的选项,但我确实看到了在项目属性中输入包含和排除“规则”的地方。这些适用于此吗?我还有其他地方选择做什么和做什么没有被包含在“可执行jar”中? 如果我选择“创建jar”(“创建可执行jar”的内容),我看不到哪里可以选择将这两个jar文件包含在任何地方。 也许没有地方可以将它们包含在可以使用的地方。 如果可能的话,我不想使用Ant,我不想使用Maven,我不想下载其他工具。 在我看来,Eclipse已经掌握了所有这些信息,我怀疑它已经可以做到这一点,而无需去学习另一个“漂亮”的工具。

如何在jar中使用javax.net.ssl.keystore中的文件?

我正在尝试做类似的事情 URL clientks = com.messaging.SubscriptionManager.class.getResource( “client.ks” ); String path = clientks.toURI().getPath(); System.setProperty( “javax.net.ssl.keyStore”, path); 其中client.ks是存储在我正在运行的jar文件中的com / messaging中的文件。 读取javax.net.ssl.keyStore的东西需要一个到jar中的client.ks文件的路径。 如果可能的话,我宁愿不提取文件并放入客户端的机器上。 那么可以在jar中引用文件吗? 这不起作用,因为getPath()返回null。 还有另一种方法吗?

如何从当前运行的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 […]

双击JAR文件不会打开命令提示符

我想通过双击运行Jar文件。 以下是其中唯一存在的Java类文件。 import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; public class Sysout{ public static void main(String[] args) throws IOException{ System.out.println(“Hello World!”); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String msg = br.readLine(); System.out.println(msg); br.read(); } } 并且Manifest文件已定义Main-Class。 使用此链接,我通过双击批处理文件成功运行了Jar文件。 这将打开命令提示符并运行定义的主类。 但是,如果我直接双击Jar文件,则没有任何反应。 我还检查了这个链接并将我的.jar与javaw.exe相关联。 此链接也提示相同。 还尝试将.jar与java.exe相关联 发生的事情是命令提示符打开几分之一秒并消失。 即使我希望用户输入一些数据,双击操作也不会等待用户输入任何内容。 哪里有问题?

运行Eclipse导出的jar时“找不到主类”错误

我有一个java项目,从Eclipse中运行它时可以正常工作。 当我尝试将其导出到”JAR file”或”Runnable JAR file” ,会创建.jar文件,但是当我双击它以尝试运行该程序时,它会给我一个错误 “Could not find the main class: package.MainClassName. Program will exit.” 正如我所提到的,我尝试导出到两个JAR选项,我指定了main方法所在的正确类,当我查看.jar文件中的实际文件时,一切似乎都是有序的 – 清单看起来像: Manifest-Version: 1.0 Main-Class: package.MainClassName (blank line) 并且位于META-INF文件夹中。 我的包名有一个文件夹,其中包含所有.class文件,包括包含main方法的类。 我使用的一些图像和文本文件也出现在jar文件中。 实际的程序并不是太复杂 – 它是一个使用Swing的简单“蛇”游戏(加上代码在Eclipse内部运行时都有效)。 是什么原因造成了这个错误以及我如何解决它? 如果我应该提供任何其他信息,请告诉我。