我是Scala的新手,不懂Java.我想用简单的Scala文件创建一个jar文件.所以我有我的HelloWorld.scala,生成一个HelloWorld.jar.
MANIFEST.MF:
Main-Class: HelloWorld
Run Code Online (Sandbox Code Playgroud)
在我运行的控制台中:
fsc HelloWorld.scala
jar -cvfm HelloWorld.jar Manifest.mf HelloWorld\$.class HelloWorld.class
java -jar HelloWorld.jar
=> "Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld/jar"
java -cp HelloWorld.jar HelloWorld
=> 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$100(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)
at java.lang.ClassLoader.loadClass(ClassLoader.java:316)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:280)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:374)
at hoppity.main(HelloWorld.scala)
Run Code Online (Sandbox Code Playgroud) 我在Eclipse上设置了一个动态Web项目,我使用Tomcat 7作为我的Web服务器.它似乎没有自动将我添加到我的库中的第三方JAR放到我的构建路径上的WEB-INF/lib文件夹中.有没有办法可以自动完成?每次我寻找一个答案,我觉得像这样.
那我该怎么做呢?有没有办法配置我的构建路径来执行此操作?
我有一个groovy脚本需要jar中的库.如何将其添加到类路径?我希望脚本可执行,所以我#!/usr/bin/env groovy在脚本的顶部使用.
我想用一个新的更新jar中的.class文件.最简单的方法是什么,特别是在Eclipse IDE中?
我的应用程序是基于Java EE构建的.
我在这个应用程序中有大约50个罐子.
是否可以搜索特定关键字(实际上我想搜索关键字BEGIN REQUEST)?
我有一个主类,它期望我使用-D选项传递的某些属性.我可以通过将它们作为VM选项发送到我的IDE中来访问它.
我使用Maven将此应用程序打包到一个jar文件中,当我尝试以下操作时:
java -jar myjar.jar -Denviroment=dev
要么
java -jar myjar.jar "-Denvironment=dev"
环境系统属性没有被提升.
有关正在发生的事情的任何指示?
从命令行,如何将Java CLASSPATH选项设置为指向包含多个jar文件的一个或多个目录?是否存在递归目录和子目录支持的通配符?
(我的JAR文件在几个子目录中排序.)
我有资源文件夹中的文件.例如,如果我需要从资源文件夹中获取文件,我喜欢这样:
File myFile= new File(MyClass.class.getResource(/myFile.jpg).toURI());
System.out.println(MyClass.class.getResource(/myFile.jpg).getPath());
Run Code Online (Sandbox Code Playgroud)
我已经测试过,一切正常!
路径是
/D:/java/projects/.../classes/X/Y/Z/myFile.jpg
但是,如果我创建jar文件,使用,Maven:
mvn package
Run Code Online (Sandbox Code Playgroud)
...然后启动我的应用程序:
java -jar MyJar.jar
Run Code Online (Sandbox Code Playgroud)
我有以下错误:
Exception in thread "Thread-4" java.lang.RuntimeException: ხელმოწერის განხორციელება შეუძლებელია
Caused by: java.lang.IllegalArgumentException: URI is not hierarchical
at java.io.File.<init>(File.java:363)
Run Code Online (Sandbox Code Playgroud)
... 和文件的路径是:
file:/D:/java/projects/.../target/MyJar.jar!/X/Y/Z/myFile.jpg
Run Code Online (Sandbox Code Playgroud)
当我尝试从资源文件夹中获取文件时,会发生此异常.在这条线上.为什么?为什么JAR文件中存在这个问题?你怎么看?
有另一种方法,获取资源文件夹路径?
当我试图在下面的罐子里自我签名时.
jarsigner -keystore my keystore myjar.jar myalias
Run Code Online (Sandbox Code Playgroud)
它给出了警告:
没有-tsa或-tsacert,这个jar没有时间戳.如果没有时间戳,用户可能无法在签署者证书的到期日期(2014-05-08)之后或任何未来的撤销日期之后验证此jar.
请帮忙解决问题.