标签: executable-jar

双击即可在Vista上执行Jar

这几乎让我失败了.

在XP和早期版本的Windows上,您可以自定义Open With filetypes以包含java-jar"myjar.jar",但在Vista上,此功能似乎已被删除.我当然可以创建一个.bat文件来启动我的应用程序,但是可以根据需要让Vista执行.jar吗?

java executable-jar windows-vista

8
推荐指数
1
解决办法
3万
查看次数

修改执行Jar文件

Hello Stack Overflow朋友.我有一个简单的问题,我担心没有一个简单的解决方案,我需要建议如何继续.我正在开发一个打包为可执行JAR的Java应用程序,但它需要在执行期间修改其一些JAR文件内容.在这个阶段我遇到了一个问题,因为一些操作系统锁定文件阻止写入它.

在应用程序退出时,用户必须看到jar文件的更新版本,尽管我可以非常灵活地了解如何实现这一点.清洁高效的解决方案显然是优先考虑的,但便携性是唯一的硬性要求.

以下是我可以看到解决问题的三种方法,可以随意评论或建议其他方法.

  1. 告诉Java解锁JAR文件进行写入(这似乎不太可能,但它将是最简单的解决方案)
  2. 在应用程序启动时将可执行类文件复制到临时文件,使用类加载器加载这些文件并从初始JAR文件中卸载这些文件.(对类加载器没有太多经验,但希望JVM能够足够聪明地实现原来的JAR不再使用,所以解锁它)
  3. 将第二个可执行JAR文件放入First中,在启动时将内部jar提取到e临时文件,使用复制的内部JAR调用新的java进程并将其传递给外部JAR的位置,第一个进程退出,第二个进程修改外部jar uninumbered.(这将工作,但我不确定有一个平台独立的方式一个java应用程序调用另一个)

我知道这是一个奇怪的问题,但任何帮助将不胜感激.

java file-io jar executable-jar classloader

8
推荐指数
1
解决办法
3246
查看次数

如何使用命令行参数执行jar

可能重复:将
参数传递给Java Interpreter所需的JAR

如何提供命令行输入到jar中的文件我有一个jar文件hello.jar,有一些说execute.java文件,我想从命令行执行两个参数;我怎么能得到这个我提到了一个executable.java作为清单文件中的主类并使用ant我必须使用命令行参数从ant run运行此文件

谢谢和问候samarth

java ant command-line jar executable-jar

8
推荐指数
1
解决办法
8万
查看次数

如何将文件作为参数传递给使用JAR Bundler创建的Java应用程序?

我想一个特定的文件类型与我的应用程序相关联,所以当我双击此特定类型的文件之一,我的应用程序打开.这很好用,但是我双击的文件不会作为参数传递给我的程序.

如果我对我的情况与应用程序相关联txt的文件,我双击todo.txt,我的应用程序打开,但我不知道该txt文件我双击.

从我可以读,这是它是如何应该在OS X工作,而不是依靠默认行为(它是如何工作的如Windows),我应该使用ApplicationListener.handleOpenFile();com.apple.eawt.然而,当我尝试这个时,我被告知我不允许这样做:

访问限制:由于对所需库的限制而无法访问ApplicationListener类型/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/ui.jar

另一个问题中,一个人说他在一些中文网站上找到了解决方案,另一个人说根据Java的许可协议条款它是不合法的.

我在Mac OS X开发人员库中找不到它,在这个网站上关于JAR Bundler的任何链接似乎都很有用,只是将我发送到Apple开发者网站上的一个死页.

我错过了什么?是否应该几乎不可能做到这一点,即使它在其他操作系统上微不足道?

它可能值得一提......因为JAR文件不能与OS X上的程序相关联,所以我使用JAR Bundler创建了一个OS X应用程序包 ; Apple工具专门用于将Java应用程序视为本机OS X应用程序的目的.使用它可以让我首先将文件类型与我的应用程序相关联.

java macos executable-jar jarbundler file-association

8
推荐指数
1
解决办法
1322
查看次数

IzPack - Windows上的桌面快捷方式 - 无法正常工作

我正在尝试使用IzPack来安装我的程序,我想向安装程序添加桌面快捷方式,这里是来自IzPack网站的文档/说明.

http://izpack.org/documentation/desktop-shortcuts.html

但是,下面的XML文件在编译时,只会在安装程序中创建一个空白屏幕,当您尝试单击"下一步"以通过它时,该屏幕会挂起.这是在Windows 7 - 64位上运行时屏幕的样子.

在此输入图像描述

这是我的install.xml和shortcutSpec.xml文件.

INSTALL.XML

<?xml version="1.0" encoding="iso-8859-1" standalone="yes" ?>

<installation version="1.0">

<!-- The info section. -->

<info>
    <appname>Application Name</appname>
    <appversion>1.0</appversion>
    <url>http://www.example.com/</url>
    <javaversion>1.6</javaversion>
    <run-privileged condition="izpack.macinstall|izpack.windowsinstall.vista|izpack.windowsinstall.7"/>
</info>

<!-- The gui preferences indication. -->

<guiprefs width="640" height="480" resizable="yes"/>

<!-- The locale section. -->

<locale>
    <langpack iso3="eng"/>
</locale>

 <!-- The resources section. -->

<resources>
    <res id="LicencePanel.licence" src="licence.txt"/>
    <res id="InfoPanel.info" src="readme.txt"/>
    <res id="shortcutSpec.xml" src="shortcutSpec.xml"/>
</resources>
<native type="izpack" name="ShellLink.dll"/>

<!-- The panels section. -->

<panels>
    <panel classname="HelloPanel"/>
    <panel classname="InfoPanel"/>
    <panel classname="LicencePanel"/>
    <panel …
Run Code Online (Sandbox Code Playgroud)

izpack batch-file executable-jar desktop-shortcut

8
推荐指数
1
解决办法
3573
查看次数

为JAR文件启动嵌入式jetty服务器

我想要做的是构建一个JAR包含我的项目的可执行文件.我已经将它的依赖项包含在它旁边,也包含在JAR文件中,所以我的目录列表看起来像这样:

〜/项目/ Java的/ web应用程序输入/输出:

网络app.jar

dependency1.jar

dependency2.jar

dependency3.jar

我知道并确信我的问题不是来自依赖关系,因为我的应用程序正常运行,直到我启动Jetty嵌入式的那一刻.

我用来启动Jetty的代码是这样的:

public class ServerExecutionGoal implements ExecutionGoal {    

    private final static Logger logger = Logger.getLogger(ServerExecutionGoal.class);    

    private WebAppContext getWebAppContext() throws IOException {    
        WebAppContext context = new WebAppContext();    
        System.out.println("context = " + context);    
        context.setResourceBase(new PathMatchingResourcePatternResolver().getResource("classpath:/webapp").getURL().toExternalForm());    
        context.setContextPath("/");    
        context.setLogger(new StdErrLog());    
        return context;    
    }    

    @Override    
    public void execute(Map<String, Object> stringObjectMap) throws ExecutionTargetFailureException {    
        logger.info("Instantiating target server ...");    
        final Server server = new Server(8089);    
        final ContextHandlerCollection handlerCollection = new ContextHandlerCollection();    
        try {    
            handlerCollection.setHandlers(new Handler[]{new …
Run Code Online (Sandbox Code Playgroud)

java web-applications jetty executable-jar embedded-jetty

8
推荐指数
1
解决办法
2956
查看次数

java程序启动时会发生什么?

最近已经触及Java类加载器并突然认识到,当有人调用时,不能完全理解一步一步发生的事情

java -jar App.jar
Run Code Online (Sandbox Code Playgroud)

好吧,我想

  1. 创建了一个新的JVM实例
  2. 它使用ClassLoader加载主类和其他类
  3. 字节码开始从main()方法执行

但我仍然认为有很多事情我需要了解更多.

  • 谁和如何决定在启动时应该加载哪些类以及哪些类曾经需要?

我找到了两个相关的问题,但没有解释如何将其应用于Java现实.

计算机程序运行时会发生什么?

运行程序会发生什么?

java jvm jar executable-jar classloader

8
推荐指数
1
解决办法
4448
查看次数

双击命令提示符中运行.jar文件

我将开始在Windows 7上说我.

我创建了一个.jar文件,它使用-java -jar myJar.jar方法从命令行执行

但我所追求的是能够双击jar文件并打开命令提示符窗口并在命令提示符下运行,就像我刚刚键入java -jar myJar.jar行一样.

当我双击jar文件时,我认为它正在运行,因为java的可视部分正在出现,但是没有显示我的控制台输出的命令提示符窗口.

环顾四周之后,我发现有人说javaw与jar文件相关联的东西没有控制台,我需要将jar文件与java.exe而不是javaw.exe相关联.我试过这个,似乎没有用.

有人可以帮忙吗?一步一步会很好.

java command-prompt executable-jar

8
推荐指数
2
解决办法
1万
查看次数

如何在jar中打包opencv + java

我一直在使用Opencv 2.4.5和Java构建一个应用程序,现在想分发应用程序.使用以下内容加载库:

static{ 
        System.loadLibrary("opencv_java245"); 
    }
Run Code Online (Sandbox Code Playgroud)

哪个工作正常.但是,在导出时,从jar运行时它不起作用:

java -jar build1.jar 
Run Code Online (Sandbox Code Playgroud)

opencv_java245.jar文件作为用户库包含在内,并连接了一个本机文件(libopencv_java245.dylib).当运行从Eclipse生成的可执行jar时,我得到下面的UnsatisfiedLinkError,尽管在eclipse中编译/运行正常.

Exception in thread "main" java.lang.UnsatisfiedLinkError: no opencv_java245 in java.library.path
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1860)
    at java.lang.Runtime.loadLibrary0(Runtime.java:845)
    at java.lang.System.loadLibrary(System.java:1084)
    at com.drawbridge.Main.<clinit>(Main.java:12)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:266)
    at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:56)
Run Code Online (Sandbox Code Playgroud)

有人知道在罐子里打包OpenCV的简单方法吗?

更新:我现在已经筋疲力尽了.我可以将库添加到我的构建路径(而不是使用System.loadLibrary),这可以在eclipse中使用,但不能在jar中打包.我已经尝试了一切.我还检查了我正在尝试加载的动态库的类型 - 它是

Mach-O 64-bit x86_64 dynamically linked shared library
Run Code Online (Sandbox Code Playgroud)

这似乎应该工作正常.我用-D64和-D32来测试并得到两者相同的结果.

java opencv packaging executable-jar

8
推荐指数
1
解决办法
7205
查看次数

如何更改maven打包的jar权限?我正在使用maven程序集插件

我正在使用maven程序集插件来打包一个包含所有依赖项的jar.但是jar文件不可执行.如何更改jar的权限?

-rw-r--r--  1 e17490  ADPROD\Domain Users  12072889 Nov 12 14:16 com-foo-bar.jar
Run Code Online (Sandbox Code Playgroud)

的pom.xml

<plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        <configuration>
          <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
          </descriptorRefs>
          <archive>
            <manifest>
              <mainClass>foo.Main</mainClass>
            </manifest>
          </archive>
        </configuration>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>single</goal>
            </goals>
          </execution>
        </executions>        
      </plugin>
Run Code Online (Sandbox Code Playgroud)

java executable-jar maven-3 maven maven-assembly-plugin

8
推荐指数
2
解决办法
7292
查看次数