我需要下载一个json解析器,所以我去了jackson.codehaus.org网站.他们让我进入圈子,而不是点击和下载jar /罐子的方便链接.有谁知道罐子在哪里 - 确切地说?
我正在尝试从作为桌面应用程序运行的单独jar中访问jar文件中的XML文件.我可以获取我需要的文件的URL,但是当我将它传递给FileReader(作为String)时,我得到一个FileNotFoundException,说"文件名,目录名或卷标语法不正确."
作为参考,我可以毫不费力地从同一个jar中读取图像资源,并将URL传递给ImageIcon构造函数.这似乎表明我用来获取URL的方法是正确的.
URL url = getClass().getResource("/xxx/xxx/xxx/services.xml");
ServicesLoader jsl = new ServicesLoader( url.toString() );
Run Code Online (Sandbox Code Playgroud)
在我的ServicesLoader类中
XMLReader xr = XMLReaderFactory.createXMLReader();
xr.setContentHandler( this );
xr.setErrorHandler( this );
xr.parse( new InputSource( new FileReader( filename )));
Run Code Online (Sandbox Code Playgroud)
使用这种技术读取XML文件有什么问题?
我有一个应用程序,我正在尝试将其包装到jar中以便于部署.当作为一组可从CLASSPATH访问的类运行时,应用程序编译并运行正常(在Windows cmd窗口中).但是当我在我的类中运行并尝试在同一cmd窗口中使用java 1.6运行它时,我开始获得异常:
C:\dev\myapp\src\common\datagen>C:/apps/jdk1.6.0_07/bin/java.exe -classpath C:\myapp\libs\commons -logging-1.1.jar -server -jar DataGen.jar
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
at com.example.myapp.fomc.common.datagen.DataGenerationTest.<clinit>(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
... 1 more
Run Code Online (Sandbox Code Playgroud)
有趣的是,违规的LogFactory似乎是在commons-logging-1.1.jar中,它位于指定的类路径中.jar文件(是的,它确实存在):
C:\dev\myapp\src\common\datagen>dir C:\myapp\libs\commons-logging-1.1.jar
Volume in drive C is Local Disk
Volume Serial Number is ECCD-A6A7
Directory of C:\myapp\libs
12/11/2007 11:46 AM 52,915 commons-logging-1.1.jar
1 File(s) 52,915 bytes
0 Dir(s) 10,956,947,456 bytes free
Run Code Online (Sandbox Code Playgroud)
commons-logging-1.1.jar文件的内容:
C:\dev\myapp\src\common\datagen>jar -tf C:\myapp\libs\commons-logging-1.1.jar
META-INF/
META-INF/MANIFEST.MF
org/ …Run Code Online (Sandbox Code Playgroud) 我想读取一个位于jar我的类路径中包含的s 之一的XML文件.如何阅读包含在内的任何文件jar?
我在从一个JAR文件中运行多个不同的类时遇到问题.我知道我可以将JAR中的一个类设置为将在命令后运行的Main类java -jar myjar.jar,但我想要的是:
java -jar myjar.jar MyClass
Run Code Online (Sandbox Code Playgroud)
是否有可能以这种方式执行此操作,或者我是否必须创建多个JAR(每个用于一个可运行的类),或者更好地创建将运行我的其他类传递给命令行参数的"manager"类?
我正在寻找文档或参考,但我找不到任何.
我已经在JCreator中编写了一个Java程序,一切都已完成,但我想从中创建一个可执行文件,即我不想通过加载java类并编译然后执行来运行程序,而是将其作为一个独立的可执行文件.
最快的方法是什么?
我有一个可执行的JAR文件.是否可以创建该JAR的Windows服务?实际上,我只想在启动时运行它,但我不想将JAR文件放在我的启动文件夹中,也不要在注册表中.
你如何设置一个项目,可以产生一个可以用于Android的jar库文件?我想在所有项目中创建一个自定义库.
其他几个问题:
我有一个Maven项目,它生成一个jar文件并将所有依赖项复制到target/lib文件夹.我想在客户端的机器(windows)上执行这个项目.所以,我复制myproject.jar到C:\xyz文件夹和所有依赖项到C:\xyz\lib文件夹.如何从客户端的命令提示符执行此项目?我试图java -cp lib\*.jar -jar myproject.jar从C:\xyz文件夹使用,但它抛出以下错误.
Exception in thread "main" java.lang.NoClassDefFoundError: lib\commons-codec-1/3/jar
Caused by: java.lang.ClassNotFoundException: lib\commons-codec-1.3.jar
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: lib\commons-codec-1.3.jar. Program will exit.
Run Code Online (Sandbox Code Playgroud)
我想如果我在classpath(如java -cp lib\dep1.jar;dep2.jar)中指定所有依赖项,它将解决问题,但我不想这样做,因为我已经有40个库,并且它可能会在将来的版本中增长.有一个更好的方法吗?
在启动应用程序或通过ant编译JSP时,Tomcat 7 Jasper会抱怨多余或错位的JAR文件.我得到了以下信息
**compile-jsp:**
[jasper] Jul 31, 2012 7:15:15 PM org.apache.jasper.compiler.TldLocationsCache tldScanJar
[jasper] INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
Run Code Online (Sandbox Code Playgroud)
如何在扫描期间跳过不需要的JAR可以改善tomcat中的启动时间和JSP编译时间?
如何实现更好的输出?