我有一个可运行的MyApp.jar,我通过使用launch4j将其编译为MyApp.exe,并且由于此应用需要管理员权限,因此我尝试通过遵循以下文章向其添加清单文件:http : //msdn.microsoft.com/zh- us / library / bb756929.aspx 当我表演时
mt.exe –manifest manifest.xml –outputresource:MyApp.exe;#1
Run Code Online (Sandbox Code Playgroud)
该过程已完成,没有错误,但是MyApp.exe文件的大小仅从6mb减小到32kb,并且当我尝试运行它时,出现以下错误:错误:jarfile无效或损坏。也许有人知道这是怎么回事?我的清单文件如下:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0"
processorArchitecture="X86"
name="MyApp.exe"
type="win32"/>
<description>{app name}</description>
<!-- Identify the application security requirements. -->
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="requireAdministrator"
uiAccess="true"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
Run Code Online (Sandbox Code Playgroud) 我在myEclipse中有这一行
import org.apache.commons.net.util.SubnetUtils;
Run Code Online (Sandbox Code Playgroud)
我在构建路径中导入了JAR文件(commons-net-3.3.jar).我有commons-lang3添加到我在build.gradle中的依赖项,它工作正常但是当我添加commons-net时,cmd给了我一个错误,说它找不到commons-net.这是build.gradle中依赖项的代码片段:
dependencies {
testCompile "junit:junit:4.11"
compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.3.2'
compile group: 'org.apache.commons', name: 'commons-net', version: '3.3'
}
Run Code Online (Sandbox Code Playgroud)
我需要更改什么来修复此错误?
我有spring-boot应用程序,它使用html静态页面创建目录.当我按命令启动应用程序时:mvn spring-boot:run一切正常(带有静态页面的文件夹在/resources/目录中创建,客户端可以访问页面)但我希望将我的应用程序部署为jar文件,在这里我有我的问题,我怎样才能实现我的目标?我知道我不能动态地将资源添加到jar,但也许我可以创建包含我的jar文件旁边的资源的文件夹,并以某种方式将此文件夹添加到公共资源,以便客户端可以访问html页面.
我创建了一个pom.xml来编译我的项目并将其打包为jar,实际上它是comiples并创建了jar - 问题是我有一个包含类和java内部的jar,我只想要里面的类.
我如何丢失java文件?我不需要它们.
这是我创建的pom.xml:
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<filtering>true</filtering>
</resource>
</resources>
<finalName>api-interfaces</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<id>make-a-jar</id>
<phase>compile</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
<configuration>
<excludes>
<exclude>*.properties</exclude>
<exclude>*.xml</exclude>
<exclude>sql/**</exclude>
<exclude>META-INF/**</exclude>
<exclude>*.jar</exclude>
<exclude>*.java</exclude>
<exclude>default-configs/**</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用Maven和Eclipse编译Java项目,但我尝试了很多在Web上看到的解决方案,但它们似乎都没有用.我只想构建应用程序,创建一个可运行的jar并包含所需的库.我尝试过maven-dependency或maven-assembly但我肯定会错过一些东西,因为我每次都失败了.
这是我的pom.xml,它还可以,还是错过了什么?
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- Project Description -->
<groupId>org.awax</groupId>
<artifactId>toolbox</artifactId>
<version>0.1.0</version>
<name>ToolBox</name>
<packaging>jar</packaging>
<url>http://maven.apache.org</url>
<description>Custom library containing useful code</description>
<!-- Project Properties -->
<properties>
<jdk.version>1.7</jdk.version>
<!-- Libraries Version -->
<log4j.version>1.2.17</log4j.version>
<jdom.version>2.0.5</jdom.version>
<miglayout.version>3.7.4</miglayout.version>
<jfreechart.version>1.0.19</jfreechart.version>
<bounce.version>0.18</bounce.version>
<!-- Maven Plugins Version -->
<eclipse.version>2.9</eclipse.version>
<compiler.version>3.2</compiler.version>
<jar.version>2.5</jar.version>
<assembly.version>2.4.1</assembly.version>
<dependency.version>2.5.1</dependency.version>
</properties>
<!-- Project Libraries -->
<dependencies>
<!-- LOG4J -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>
<!-- Jdom -->
<dependency>
<groupId>org.jdom</groupId>
<artifactId>jdom2</artifactId>
<version>${jdom.version}</version>
</dependency>
<!-- MigLayout -->
<dependency>
<groupId>com.miglayout</groupId>
<artifactId>miglayout</artifactId>
<version>${miglayout.version}</version>
</dependency>
<!-- JFreeChart …Run Code Online (Sandbox Code Playgroud) 我正在尝试向我的JavaFX 2应用程序添加一个Icon,但我找到的方法似乎不起作用.
Image icon = new Image(getClass().getResourceAsStream("/images/icon.png"));
stage.getIcons().add(icon);
Run Code Online (Sandbox Code Playgroud)
图标大小为32x32.
当我尝试
Image icon = new Image("http://goo.gl/kYEQl");
Run Code Online (Sandbox Code Playgroud)
它在Netbeans和可运行的jar中都有效.
我希望这可以解决.
我有一个Swing应用程序,试图将其打包到可运行的JAR文件中。它的DAO功能的一部分是以CSV格式读写内部的.dat文件src/main/resources/dictData.dat
我的问题是,每次尝试运行jar时,我都会
java.io.FileNotFoundException: file:/Users/jason/projects/test-dict/target/
dictionary-jar-with-dependencies.jar!/dictData.dat
(No such file or directory)
Run Code Online (Sandbox Code Playgroud)
从命令行。这是通过一个罐子mvn package和maven-assembly-plugin规格
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4.1</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>com.test.dictionary.init.AppInit</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
我有一个FileIO类实现,可以处理对文件的读写。
public class FileIO implements IO{
private static final String DICTIONARYFILE = "dictData.dat";
private File dataFile;
private Writer dataWriter;
private Reader dataReader;
@Override
public Map<String, Word> loadDataFile(){
ClassLoader classLoader = getClass().getClassLoader();
Map<String, Word> dictMap = new HashMap<>();
try { …Run Code Online (Sandbox Code Playgroud) (根据评论和答案在下面更新)
我在Windows上开发了一些Java,并且我已经在该机器上成功执行了它.我第一次尝试在Ubuntu上执行它.我安装了OpenJDK-7-jre,并复制了jar和源代码.
罐子:
(djauth_venv)~/django_files/django_auth_lifecycle/non_django_files/wordpress_posts/build$ ls -la dependency_jars/
-rw-rw-r-- 1 jeffy jeffy 185140 Jun 12 2012 commons-io-2.4.jar
-rw-rw-r-- 1 jeffy jeffy 18863 Dec 11 12:53 templatefeather-0.1.1.2.jar
-rw-rw-r-- 1 jeffy jeffy 665303 Dec 11 12:52 xbnjava-0.1.5.jar
Run Code Online (Sandbox Code Playgroud)
尝试执行时
java BuildPartFour -classpath /usr/lib/jvm/java-7-openjdk-i386/jre/lib/rt.jar;/home/jeffy/django_files/django_auth_lifecycle/non_django_files/wordpress_posts/build/dependency_jars/commons-io-2.4.jar;/home/jeffy/django_files/django_auth_lifecycle/non_django_files/wordpress_posts/build/dependency_jars/templatefeather-0.1.1.2.jar;/home/jeffy/django_files/django_auth_lifecycle/non_django_files/wordpress_posts/build/dependency_jars/xbnjava-0.1.5.jar
它导致每个罐子的许可被拒绝:
Exception in thread "main" java.lang.NoClassDefFoundError: com/github/xbn/io/PlainTextFileUtil
at BuildPartFour.main(BuildPartFour.java:14)
Caused by: java.lang.ClassNotFoundException: com.github.xbn.io.PlainTextFileUtil
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 1 more
-bash: /home/jeffy/django_files/django_auth_lifecycle/non_django_files/wordpress_posts/build/dependency_jars/commons-io-2.4.jar: Permission denied
-bash: /home/jeffy/django_files/django_auth_lifecycle/non_django_files/wordpress_posts/build/dependency_jars/templatefeather-0.1.1.2.jar: Permission denied
-bash: /home/jeffy/django_files/django_auth_lifecycle/non_django_files/wordpress_posts/build/dependency_jars/xbnjava-0.1.5.jar: …Run Code Online (Sandbox Code Playgroud) 看来这是一个常见问题,但以前的帖子似乎都没有解决我的问题。
我相信我已将其范围缩小到一个问题。使用InputStream的任何应用程序都不会打开,但是我所有其他应用程序都可以正常运行。
该应用程序在Eclipse中运行良好,但是当我尝试运行jar文件时,该窗口甚至无法打开。
任务管理器显示它弹出大约一两秒钟,然后消失。
我已经尝试了导出时处理库的所有三个选项,但没有一个可以解决此问题。
谁能解释一下?
我正在尝试在远程计算机上调试java程序,其中包含以下命令:
java -Xdebug -Xrunjdwp:transport=dt_socket,address=9999,server=y suspend=y -jar Test.jar
Run Code Online (Sandbox Code Playgroud)
当我在本地计算机上尝试使用eclipse进行远程调试时,我在远程计算机上看到此错误:
Listening for transport dt_socket at address: 9999
Error: Could not find or load main class suspend=y
Run Code Online (Sandbox Code Playgroud)
我不明白,因为我在课程中有一个主要课程.
P/S:尝试运行jar文件时,我也有同样的错误
java Test.jar
Run Code Online (Sandbox Code Playgroud)
该项目使用Eclipse IDE构建.
有人能告诉我我做错了吗?
谢谢