我有一个Java应用程序并创建了一个JAR文件并进行了部署.
该应用程序使用外部JAR,如Log4J JAR.创建JAR文件时,如何将所有外部相关JAR包含到我的存档中?
为了让我的应用程序正常工作,我不得不将Log4J JAR复制到与我自己的JAR相同的目录中,这有点违背了jar的目的.部署一个JAR文件不是更优雅吗?
作为Java游戏的Minecraft本周末免费.Windows版本作为exe文件下载.我很好奇EXE文件正在做什么以及它从哪里解压缩并运行实际的游戏JAR.所以使用命令,我找到了运行javaw.exe进程的命令行参数; 奇怪的是,它是使用指向可执行文件的类路径启动的!(意思是,.exe文件充当jar).实际上,在将Minecraft.exe重命名为Minecraft.jar之后,我能够打开它并查看加载器类文件等,就像它是一个普通的JAR文件而不是EXE一样.
这怎么可能?我怎么能用我自己的JAR文件呢?
我正在创建控制台应用程序 我想在jar文件conf夹中的文件外部配置文件,并希望将此文件夹注册为我的应用程序的类路径.
我运行mvn assembly:single命令,得到一个jar文件,但是当我尝试运行这个JAR时java -jar MyApplication.jar,它无法读取配置文件.
我有这个片段 pom.xml
<build>
<finalName>MyApplication</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.1</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<version>2.7</version>
<configuration>
<projectNameTemplate>
[artifactId]-[version]
</projectNameTemplate>
<wtpmanifest>true</wtpmanifest>
<wtpapplicationxml>true</wtpapplicationxml>
<wtpversion>2.0</wtpversion>
<manifest>
${basedir}/src/main/resources/META-INF/MANIFEST.MF
</manifest>
</configuration>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<appendAssemblyId>false</appendAssemblyId>
<archive>
<manifest>
<mainClass>com.my.test.App</mainClass>
</manifest>
<manifestEntries>
<Class-Path>.conf/</Class-Path>
</manifestEntries>
</archive>
</configuration>
</plugin>
</plugins>
</build>
Run Code Online (Sandbox Code Playgroud) 我正在从一个大规模的现有项目(Vizster)创建一个Java applet.我在Mac OS X上使用NetBeans 6.7.1和JDK 1.5.
我试图从它的单输出.jar文件运行applet,但是当我这样做时,它在Firefox的屏幕底部显示"applet loaded",并且在java控制台中没有任何内容,但是没有显示在小程序的窗口.我之前在Firefox中遇到过不同的错误,包括"appletNotLoaded:ClassDefNotFoundError"等错误以及安全错误,但我的java控制台中从未有任何输出.这是applet的html文件:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<applet codebase ="." code="zuve.ZuveApplet.class"
archive="ZuveApplet.jar"
height="1000" width="1000"/>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
其中zuve.ZuveApplet.class是我的main方法所在的位置,"ZuveApplet.jar"是输出jar文件的名称.这是ZuveApplet.java,主要方法类:
package zuve;
import vizster.Vizster;
import vizster.VizsterLib;
import java.applet.Applet;
public class ZuveApplet extends Applet {
public static final String DEFAULT_START_UID = "186297";
@Override
public void init() {
new Vizster();
}
public static void main(String[] argv) {
VizsterLib.setLookAndFeel();
//String startUID = argv.length > 0 ? argv[0] : DEFAULT_START_UID; …Run Code Online (Sandbox Code Playgroud) 您是否可以告诉我,如果可以的话,如何将Scala应用程序导出到可以直接在JVM中运行的普通可运行JAR?
谢谢
我刚刚在Netbeans 7.4中启动了标准Maven - > Java Application.默认情况下,它创建了"App"类(具有main方法).我还去了项目的Properties-> Run并将该类设置为Main Class.然后我建立了这个项目.
在项目目录中,我得到了带有几个罐子的"目标"文件夹.它们都不是可执行的.我如何简单地解决问题并在每次构建结束时获取可执行jar?
谢谢.
我已经谷歌搜索了几天试图弄清楚如何做到这一点,如果有人这样做之前我会非常感谢帮助.
我有一个自动化测试项目,我在IntelliJ中创建,自动化用户与Web应用程序交互.
我想将自动化测试(使用Selenium和TestNG在Java中创建)放入可执行jar文件中,其他人可以通过双击jar文件来运行.
每次我尝试通过导航到项目结构 - >工件 - > + - >罐子 - >从具有依赖关系的模块创建一个jar文件时,它最终会创建一个声称它的jar,
"Could not find or load the main class <package.MainClass> "
Run Code Online (Sandbox Code Playgroud)
当我尝试使用以下命令运行它时:
java -jar MyProject.jar <Manifest Path>
Run Code Online (Sandbox Code Playgroud)
知道为什么我不断得到这个错误,或者有办法成功地做到这一点?
另外,这是我的pom.xml:
<groupId>TestAutomation</groupId>
<artifactId>TestAutomation</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>com.test.automation.Executable</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-server</artifactId>
<version>2.39.0</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>2.40.0</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.1.1</version>
<scope>test</scope>
</dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)
假设我已经使用executable jar过的代码创建了一个代码
System.out.println()
Run Code Online (Sandbox Code Playgroud)
当我们运行可执行jar时,没有控制台.那么,这条线会发生什么?如何java处理这种情况?
编辑01:
注意:情况是我不使用控制台运行jar或无论如何将任何控制台与它关联.
编辑02:让事情更清晰:
我知道没有任何东西可以在任何地方打印,因为没有控制台..!我想知道java在这种情况下如何处理这一行?生成可执行jar的字节码时是否省略了这一行?或者,当没有控制台时,这条线是否被忽略了?还是什么......
我正在使用IntelliJ IDEA,我已准备好部署JavaFX应用程序.问题是,当我生成JAR文件时,它不会运行,当我在命令行中运行它时,我得到一个Exception,FXMLLoadException,尽管该项目在我的IDE中完美运行.
Ant任务以错误结束,构建15分钟后,我真的不明白究竟是什么问题.
所以我的问题是以正确的方式部署JavaFX应用程序的正确步骤是什么,欢迎使用任何教程或指南.
好吧所以我用Libgdx做了一个游戏,我打算用它作为一个Android应用程序(这就是我使用android工作室的原因)但是我想让没有安卓手机的朋友试试看.该项目已经设置为桌面和Android,所以有没有办法将其导出为可执行的jar文件?