Tag: jar

运行.jar文件 – 双击命令行执行

我有一个java桌面应用程序,其中包含以下代码: JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); System.out.println(“check1”); int intResult = compiler.run(System.in, System.out, foutErrorFile, strvalidatePath); System.out.println(“check2”); 当我通过执行“java -jar name.jar”运行此应用程序的相应.jar文件时,check1和check2都被打印,app工作正常。 但是当我尝试通过双击.jar文件来运行jar时,我发现ToolProvider.getSystemJavaCompiler()返回null。 “check2”没有打印出来。 我没有从compiler.run()得到正确的结果。 我确实将注册表项“\ HKEY_CLASSES_ROOT \ jarfile \ shell \ open \ command”从“C:\ Program Files \ Java \ jre1.6.0 \ bin \ javaw.exe”-jar“%1”%*修改为“C: \ Program Files \ Java \ jre1.6.0 \ bin \ java.exe“-jar”%1“%*。 通过这种方式,我可以在应用程序运行时看到控制台。 那么,当我通过双击运行.jar文件时,为什么我的程序(使用java -jar命令运行时运行正常)出现故障?

我怎么能创建.jar文件?

在本教程中,我发现可以通过以下方式创建jar文件: jar cf jar-file input-file(s) 但是,目前还不清楚输入文件是什么。 是.java文件还是.class文件? 从同一页面上的示例我可以假设应该是.class文件。 但现在还不清楚我应该放哪些.class文件。 编译.java文件后,我有很多.class文件。 其中一个原因是我有很多这样的文件:GameWindow $ 2 $ 10class,GameWindow $ 2 $ 7.class等等。 我是否应该将所有这些内容都包含在命令行中以创建.jar文件? 要运行我的应用程序,我使用java Game 。 那么,当我创建一个.jar文件时,我只需要使用Game.class文件吗? 另一方面,其他类文件对应于应用程序使用的类。 我的软件使用外部库(在编译期间我指定了这些库的.jar文件)。 我的应用程序的.jar文件是否能够在不包含已使用库的.jar文件的计算机上运行?

如何在没有安全警告的情况下发布Java Web Start jnlp应用程序?

我有一个从网站的jnlp文件启动的Java应用程序。 我试图让它运行而不会在它运行之前闪烁一堆安全警告。 该程序分为大约10个不同的jar文件,30个左右的jar库,以及jar文件中还包含的几个本机库。 我已经使用官方代码签名证书(来自Verisign)签署了所有jar文件,包含了保存主类的jar文件中的jnlp文件,并将权限和代码库属性添加到我正在使用的主要10个jar子中编译。 当我启动程序时,我收到消息说明: 此应用程序将在未来的Java安全更新中被阻止,因为JAR文件清单不包含Permissions属性。 请联系发布者以获取更多信息。 我可以单击“运行”以通过此消息,但随后我得到: 阻止可能不安全的组件运行? 该应用程序包含签名和未签名的代码。 我已将permissions属性添加到我正在编译的所有jar文件中。 我是否必须更新我正在使用的第三方库的jar清单? 如果是这样,有没有一种简单的方法可以做到这一点? 我正在使用Apache Ant来构建应用程序。

在eclipse luna中使用JGit时获取NoClassDefFoundError

我最近下载了eclipse luna并通过Eclipse安装了EGit插件。 我可以在eclipse / plugins文件夹中看到下载jar文件。 然后我将JGit jar文件添加到我的构建路径中,我可以在Referenced Libraries文件夹中看到类文件。 但是,当我运行该项目时,我收到以下错误 Exception in thread “main” java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory at org.eclipse.jgit.util.FS.(FS.java:112) at org.eclipse.jgit.lib.BaseRepositoryBuilder.setupWorkTree(BaseRepositoryBuilder.java:620) at org.eclipse.jgit.lib.BaseRepositoryBuilder.setup(BaseRepositoryBuilder.java:556) at org.eclipse.jgit.storage.file.FileRepositoryBuilder.build(FileRepositoryBuilder.java:92) at org.eclipse.jgit.storage.file.FileRepositoryBuilder.create(FileRepositoryBuilder.java:110) at upload_gen.Launcher.main(Launcher.java:16) Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory at java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) … 6 more […]

如何从模块的子模块创建Jar?

我有这个java maven项目结构 – parentModule – firstChildModule – firstChildModule – firstChildModule – secondChildModule -> **jar** – thirdChildModule – thirdChildModule – thirdChildModule 我想将secondChildModule模块打包为包含其子模块的jar。 我试图将包装类型设置为pom,但抛出一个例外,说明值为’jar’的’打包’无效。 所以我的问题是如何以正确的方式做到这一点? 我提到只有thirdChildModule模块类型将包含源代码。 这里是firstChildModule,secondChildModule和的源代码 firstChildModule parentModule com.company 1.0.0-SNAPSHOT 4.0.0 com.company firstChildModule pom secondChildModule secondChildModule com.company firstChildModule 1.0.0-SNAPSHOT ../pom.xml 4.0.0 com.company secondChildModule pom Second Child Module thirdChildModule01 thirdChildModule02 thirdChildModule0 thirdChildModule secondChildModule com.company 1.0.0-SNAPSHOT 4.0.0 com.company […]

使用ProcessBuilder在Jar中运行可执行文件

我有一个我构建的应用程序,它使用通过ProcessBuilder调用的非Java可执行文件: ProcessBuilder pb = new ProcessBuilder(invocation); pb.redirectErrorStream(true); Process proc = pb.start(); InputStream is = proc.getInputStream(); InputStreamReader isr = new InputStreamReader(is); BufferedReader br = new BufferedReader(isr); 但是,我想将该应用程序整齐地捆绑到jar文件本身,而不是要求将它放在同一目录之外。 有没有办法运行这个应用程序而不提取它? 如果我需要删除ProcessBuilder,那就没关系,只要它有效。 🙂

使用runnable jar嵌入MS Access数据库

所以我的目标是制作一个可运行的jar子。 我使用swings创建了一个程序,使用MS Access数据库来获取记录。 所以,我使用绝对路径来引用数据库进行连接。 现在,我打算将这个可运行的jar分发给其他人。 所以我想最好的选择是在MS文件中嵌入MS Access数据库。 但我不知道该怎么做。 我应该在哪里将数据库保存在Project Explorer中? 我应该使用相对路径等。任何forms的帮助都会很明显。 我发现了很多使用Derby数据库的教程,这些教程实现了相同但没有任何与Ms Access数据库有关的教程。 欢迎提出建议! 这是我的代码: – import java.awt.*; import java.awt.event.*; import java.sql.*; import java.util.Vector; import javax.swing.*; import javax.swing.table.DefaultTableModel; public class r_search extends JFrame implements ActionListener { JFrame frame1; JLabel l0, l1, l2; JComboBox c1; JButton b1; Connection con; ResultSet rs, rs1; Statement st, st1; PreparedStatement […]

Java包装/构建通用技术Jar文件专门

我查看了所有常见post的网站,但我的问题略有不同: 打包一个包含许多其他jar文件作为依赖项的简单Java应用程序的最佳实践是什么? 例如:我有一个带有main的foo.java,以及从foo.java访问的foo1.java,foo2.java。 我在我的eclipse构建路径上使用log4j.jar,mysql.jar。 现在我正在使用ant,它可以很好地构建它。 我所做的是编写一个引用所有classpath和log4j信息的简单.sh脚本。 但这意味着我必须给他们所有这些jar子,他们必须在正确的位置。 我想能够说“java -jar foo.jar”并让它在任何机器上运行而无需传输任何其他文件。 也许.jar不是最好的方式。 我只是希望能够将一个文件提供给不知道如何设置类路径和所有内容的人,并让它能够运行。 我也很好奇最佳做法是什么。 你通常只是给某人一个jar子并给他们一个所有依赖jar的拉链并告诉他们把它放在类路径上吗? 你以某种方式制作.rpm吗? 我不熟悉MAVEN,但如果这是最好的方法,我会做一个教程。 现在我用ant。

如何使用Ant为具有外部jar依赖性的java项目构建可分发jar

我在Eclipse中有一个Java项目,类MainClass在包中有main方法: com.nik.mypackage. 该项目还引用了两个外部库,我将其复制到Eclipse中的lib文件夹中,然后使用ADD JAR函数添加到构建路径中。 这些库是one.jar和two.jar 该库位于eclipse的lib文件夹中,并添加到构建路径中。 我想使用ant脚本创建应用程序的可执行JAR 。 这样用户就可以使用命令访问我的应用程序: c:>java -jar MyProject-20111126.jar 我知道Eclipse插件直接将java应用程序导出为runnable JAR 。 但是我想学习ant和构建过程,所以手动想要创建build.xm。

如何将.so文件添加到jar中并在jar中使用它(设置java.library.path)?

所有。 我正在尝试制作一个包含Sigar库的bundle jar ,它使用.so作为本机支持。 我已经将Sigar压缩到my.jar中,当我从cmd运行它时,我必须这样输入: java -jar -Djava.library.path=~/path/to/lib/contains/so my.jar 是的,这是有效的,但我想建立一个捆绑jar ,也就是说,包含.so到jar并在jar中使用它。 所以我的问题是: 如何在该jar中设置指向.so文件的java.library.path 。 最后,我想让它变得像 java -jar my.jar (*)// hope to run it in this way 我的build.xml看起来像: 27 28 29 30 31 32 33 34 35 36 37 到现在为止,当我以(*)方式运行它时,我得到了UnsatisfiedLink Exception。 另一个相关的问题是:如何将文件添加到jar中的特定位置。 在上面的例子中, 将* .so放在jar的根目录中,如果我想更改它怎么办? 提前致谢!