这几乎让我失败了.
在XP和早期版本的Windows上,您可以自定义Open With filetypes以包含java-jar"myjar.jar",但在Vista上,此功能似乎已被删除.我当然可以创建一个.bat文件来启动我的应用程序,但是可以根据需要让Vista执行.jar吗?
Hello Stack Overflow朋友.我有一个简单的问题,我担心没有一个简单的解决方案,我需要建议如何继续.我正在开发一个打包为可执行JAR的Java应用程序,但它需要在执行期间修改其一些JAR文件内容.在这个阶段我遇到了一个问题,因为一些操作系统锁定文件阻止写入它.
在应用程序退出时,用户必须看到jar文件的更新版本,尽管我可以非常灵活地了解如何实现这一点.清洁高效的解决方案显然是优先考虑的,但便携性是唯一的硬性要求.
以下是我可以看到解决问题的三种方法,可以随意评论或建议其他方法.
我知道这是一个奇怪的问题,但任何帮助将不胜感激.
可能重复:将
参数传递给Java Interpreter所需的JAR
如何提供命令行输入到jar中的文件我有一个jar文件hello.jar,有一些说execute.java文件,我想从命令行执行两个参数;我怎么能得到这个我提到了一个executable.java作为清单文件中的主类并使用ant我必须使用命令行参数从ant run运行此文件
谢谢和问候samarth
我想一个特定的文件类型与我的应用程序相关联,所以当我双击此特定类型的文件之一,我的应用程序打开.这很好用,但是我双击的文件不会作为参数传递给我的程序.
如果我对我的情况与应用程序相关联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应用程序的目的.使用它可以让我首先将文件类型与我的应用程序相关联.
我正在尝试使用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) 我想要做的是构建一个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类加载器并突然认识到,当有人调用时,不能完全理解一步一步发生的事情
java -jar App.jar
Run Code Online (Sandbox Code Playgroud)
好吧,我想
但我仍然认为有很多事情我需要了解更多.
我找到了两个相关的问题,但没有解释如何将其应用于Java现实.
我将开始在Windows 7上说我.
我创建了一个.jar文件,它使用-java -jar myJar.jar方法从命令行执行
但我所追求的是能够双击jar文件并打开命令提示符窗口并在命令提示符下运行,就像我刚刚键入java -jar myJar.jar行一样.
当我双击jar文件时,我认为它正在运行,因为java的可视部分正在出现,但是没有显示我的控制台输出的命令提示符窗口.
环顾四周之后,我发现有人说javaw与jar文件相关联的东西没有控制台,我需要将jar文件与java.exe而不是javaw.exe相关联.我试过这个,似乎没有用.
有人可以帮忙吗?一步一步会很好.
我一直在使用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来测试并得到两者相同的结果.
我正在使用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) executable-jar ×10
java ×9
jar ×3
classloader ×2
ant ×1
batch-file ×1
command-line ×1
file-io ×1
izpack ×1
jarbundler ×1
jetty ×1
jvm ×1
macos ×1
maven ×1
maven-3 ×1
opencv ×1
packaging ×1