标签: executable-jar

从scala文件创建可执行jar的问题

我尝试将我的项目导出为带有IntelliJ 9.0的jar.我的项目在Intellij中编译并运行没有任何问题,但是当我将它写入.jar并打开它时,它将显示错误.

我的主要课程类似于:

package Main

//Imports

object Main{
  def main(args: Array[String]) {
    println("Main: Hello, world!")
    //do stuff
}
Run Code Online (Sandbox Code Playgroud)

现在,在工件窗口中,我创建了一个带有以下内容的.jar:

  1. 主要Clas: Main.Main
  2. 课程路径: lib/javacsv lib/scala-compiler.jar lib/scala-library.jar lib/scalatest-1.0-test.jar lib/scalatest-1.0.jar lib/tools.jar lib/jtds-1.2.2.jar lib/flex-messaging-common.jar lib/flex-messaging-core.jar lib/spring.jar lib/mysql-connector-java-5.1.7-bin.jar lib/ojdbc14.jar lib/commons-logging.jar lib/postgresql-8.4-701.jdbc3.jar lib/log4j-1.2.15.jar lib/poi-3.6-20091214.jar lib/poi-ooxml-3.6-20091214.jar lib/dom4j-1.6.1.jar lib/poi-ooxml-schemas-3.6-20091214.jar lib/geronimo-stax-api_1.0_spec-1.0.jar lib/xmlbeans-2.3.0.jar lib/rt.jar lib/ifxjdbc.jar lib/db2jcc4.jar

我已经仔细检查过所有这些类都在项目中并且是onnly类.请注意它包括lib/scala-compiler.jarlib/scala-library.jar.

建立项目:java -jar myScalaApp.jar我得到:

Exception in thread "main" java.lang.NoClassDefFoundError: scala/ScalaObject
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:675)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188) …
Run Code Online (Sandbox Code Playgroud)

executable scala jar intellij-idea executable-jar

4
推荐指数
1
解决办法
3719
查看次数

为控制台制作一个jar文件

我有一个没有GUI的程序,我使用控制台!所以首先我从控制台的用户那里读取一行

BufferedReader userReader = new BufferedReader(new InputStreamReader(System.in));

然后我会在控制台中为用户写一个答案!

的System.out.println( "服务器:" +输出);

我想为它创建一个jar文件!但是如何在不使用GUI的情况下在jar文件中显示我的控制台?请帮我谢谢.

java console executable-jar

4
推荐指数
2
解决办法
3万
查看次数

如何使java可执行文件在后台而不是前台运行?

我写了一个shell脚本来运行一组实验,所以我不必手动完成.该脚本运行一个java .jar文件30次,并运行一组30次17次,更改其间的一些变量.

我调用这样的程序:

java -Djava.library.path=/Users/me/Desktop/Cfiles/DynamicCTGLayout/build/Release  -jar [name of .jar file]
Run Code Online (Sandbox Code Playgroud)

但是,在程序运行时我无法并行执行任何操作,因为执行此行时,java可执行文件会弹出屏幕的最前端.从本质上讲,当我处理其他事情时,它每1-1.5分钟就会中断.所以我看了几个小时我实际上无法使用电脑.

有没有办法调用可执行文件,以便它不会弹出所有其他程序?

此致WhiteTiger

编辑:基本上我正在寻找与Windows相当的Mac OSX'

start /min java [arguments]
Run Code Online (Sandbox Code Playgroud)

java macos executable-jar

4
推荐指数
2
解决办法
7612
查看次数

在.JAR文件中打开HTML文件

我有一个名为snake.html的html文件,我想把它放在一个罐子里.运行jar时,主类应该在浏览器中打开这个html文件.我试过了:

public static void main(String[] args) throws IOException, URISyntaxException {
    URL url = Snake.class.getResource("/WebContent/snake.html");
    System.out.println(url);
    // relative to the class location
    Desktop.getDesktop().browse(url.toURI());
}
Run Code Online (Sandbox Code Playgroud)

如果我只是运行这段代码但是当我把它(和html文件)运行时,我会得到以下异常:

Exception in thread "main" java.io.IOException: Failed to mail or browse
       jar:file:/Users/~user~/Desktop/Snake%20v0.1.jar!/WebContent/snake.html. 
       Error code: -10814
at apple.awt.CDesktopPeer.lsOpen(CDesktopPeer.java:52)
at apple.awt.CDesktopPeer.browse(CDesktopPeer.java:45)
at java.awt.Desktop.browse(Desktop.java:368)
at snake.Snake.main(Snake.java:26)
Run Code Online (Sandbox Code Playgroud)

我想知道我是否有类路径问题或者我没有正确地将jar指向文件.这个jar有两个目录,snake和WebContent.Snake有snake.class文件,WebContent有snake.html.

任何和所有帮助/批评赞赏.

html java jar executable-jar

4
推荐指数
1
解决办法
6437
查看次数

Java应用程序将从CMD和Eclipse运行,但不能双击

我做了一个搜索,我可以看到很多人遇到了和我一样的问题,但没有一个解决方案对我有用.

基本上我在Eclipse中有一个来自旧Windows安装的Java项目.我已经清理并重建了它,因为起初它不会编译,但现在我将它导出为Runnable Jar.但是,我可以让应用程序出现的唯一方法是java -jar foo.jar在命令提示符下执行,或者在Eclipse中运行它.如果我在Windows资源管理器中双击JAR,即使我知道Java正确关联,因为其他Runnable Jars工作,也没有任何反应.

该项目仅在其构建路径库中列出了x86 JRE,并且列出的所有文件似乎都存在.我正在运行Windows 7 HP.

更新:对不起,我刚刚发现没有其他Runnable Jars正在工作.如果他们用launch4j包裹,他们工作虽然...

编辑:我从Eclipse导出的Runnable Jars在其他系统上运行正常,并在双击时加载

java windows cmd compilation executable-jar

4
推荐指数
1
解决办法
4521
查看次数

尝试使用NSSM将可执行文件.jar作为Windows服务运行时出错

我有一个可执行.jar文件,我想作为一个Window服务运行,以便即使我退出也能保持执行.我搜索并发现了NSSM.但是,在完成配置后,当我开始服务时,它停止并打印Unexpected status SERVICE-STOPPED in response to start control.我刚才说我pathstartup directoryApplication标签上,没有别的.此外,我无法找到任何nssm可能创建的日志文件来检查实际发生了什么.

windows service executable-jar nssm

4
推荐指数
1
解决办法
5350
查看次数

运行jar文件和exe之间的区别?

如果你有一个小程序,你可以运行jar文件,它将正常工作.但是如果你将jar文件转换为exe,你仍然需要java来运行你的exe文件,那么它们之间的区别是什么呢?为什么有些人将jar转换为exe?

java executable-jar

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

System.out到底是什么?

我注意到,任何System.out.println()未通过命令行启动的JAR文件的调用(即用户双击启动的Runnable JAR文件)都不会打开控制台。

经过研究,我在网站上找到了多个答案:

据我了解,System.out并不代表控制台。它确实表示可以由任何需要显示的数据处理的数据。我对吗?

  • 到底是System.out什么?
  • 如何从用户双击启动的Runnable JAR文件中打开控制台?

java console jar executable-jar system.out

4
推荐指数
1
解决办法
485
查看次数

执行生成的jar文件时出错

我有一个Java项目,带有用于REST服务的嵌入式jetty服务器和jersey库.我正在使用Intellij来运行项目及其工作.问题是当我尝试执行生成的jar文件时.

所以我编写了一个在build.gradle文件中生成jar文件的任务.以下是build.gradle中的任务

task fatJar(type: Jar) {
    baseName = project.name + '-all'
    from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
    with jar
    manifest {
        attributes 'Implementation-Title': 'Gradle Quickstart', 'Implementation-Version': 1.0
        attributes 'Main-Class': 'EmbeddedJetty.EmbeddedJettyMain'
    }
}
Run Code Online (Sandbox Code Playgroud)

运行以下命令时会生成jar文件

gradle clean build fatJar
Run Code Online (Sandbox Code Playgroud)

当我尝试使用该命令生成的jar文件时,我面临以下错误

java -jar projectname.rar

Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.SecurityException: Invalid signature file digest for Manifest main attributes
    at sun.security.util.SignatureFileVerifier.processImpl(SignatureFileVerifier.java:284)
    at sun.security.util.SignatureFileVerifier.process(SignatureFileVerifier.java:238)
    at java.util.jar.JarVerifier.processEntry(JarVerifier.java:273)
    at java.util.jar.JarVerifier.update(JarVerifier.java:228) …
Run Code Online (Sandbox Code Playgroud)

java intellij-idea executable-jar gradle

4
推荐指数
1
解决办法
3441
查看次数

将JAR文件作为依赖项添加到项目而不使用其相关的JAR

我们有payment.jar使用Spring Framework 3.1.2开发的文件.我们需要将它用作对其新版本为Spring Framework 5.x的新项目的依赖.

问题:当payment.jar用作依赖项时,payment.jar传递依赖项会添加到项目类路径中,从而导致Spring Framework 3Spring Framework 5发生冲突.

我试过解决方案:

  1. 大胖罐子:

创建-的可执行-JAR-有依赖性,使用Maven的

没有成功,胖JAR,将Spring Framework 3添加到项目中.(我做错了什么!)

  1. 在新项目中不包括支付Spring Framework 3.1.2依赖项:

因为在其中使用spring-ibatis实现payment.jar是行不通的.Spring Framework新版本不支持ibatis.

错误:

引起:java.lang.ClassNotFoundException:org.springframework.orm.ibatis.support.SqlMapClientDaoSupport

我的要求: 我需要使用payment.jar(使用Spring Framework 3.1.2)作为对Spring Framework 5.x的新项目的依赖,而没有上面提到的问题.

java spring executable-jar maven-plugin maven

4
推荐指数
1
解决办法
455
查看次数