标签: classpath

如何使用Ant将整个lib目录(包括所有子目录)放在类路径上?

我不确定这是不是问题,但看起来可能就是这种情况.我收到构建错误,告诉我某些包不存在.这些包是存在于lib目录中的.jar文件中的包.我正在编译并复制到classes目录的java源文件中的任何其他包都可以正常工作.以下是与此问题相关的Ant构建脚本的一些基础知识:

<property name="app.name" value="myapp" />
<property name="base.dir" value="${basedir}" />
<property name="build.dir" value="${base.dir}/build" />
<property name="build.webinf.dir" value="${build.dir}/WEB-INF" />
<property name="build.classes.dir" value="${build.webinf.dir}/classes" />
<property name="build.lib.dir" value="${build.webinf.dir}/lib" />
<property name="catalina.dir" value="C:\Program Files\Apache Software Foundation\apache-tomcat-5.5.28" />
<property name="catalina.lib.dir" value="${catalina.dir}/shared/lib" />
<property name="config.dir" value="${base.dir}/config" />
<property name="dist.dir" value="${basedir}/dist"/>
<property name="lib.dir" value="${base.dir}/lib" />
<property name="src.dir" value="${base.dir}/src" />
<property name="www.dir" value="${base.dir}/www" />

<path id="compile.classpath">
    <fileset dir="${lib.dir}">
        <include name="*.jar" />
    </fileset>
    <pathelement location="${catalina.dir}/common/classes" />
    <fileset dir="${catalina.dir}/common/endorsed">
        <include name="*.jar" />
    </fileset>
    <fileset dir="${catalina.dir}/common/lib">
        <include name="*.jar" />
    </fileset>
    <pathelement location="${catalina.dir}/shared/classes"/> …
Run Code Online (Sandbox Code Playgroud)

java ant build classpath

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

运行jar,设置classpath

我有一个我用Maven制作的项目.我使用"mvn package"编译了一个JAR,现在我想运行它,最好不要设置一些疯狂的类路径,因为它依赖于Spring和一半的互联网或其他东西.有什么办法可以轻松运行吗?像"mvn run"之类的东西会很棒,或者是将所有依赖项都放入jar中的选项,所以我可以做"java -jar"也很精彩.

你是如何处理这个的,你建议做什么?因为基于〜/ .m2导出CLASSPATH可能只是伤害;-)

java jar classpath maven

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

为什么在初始化Spring时会出现NullPointerException

我在服务器上运行批处理作业时遇到问题,而在我的开发工作站上从Eclipse运行正常.

我已经使用Roo设置了我的Spring环境,创建了一个实体,并制作了一个可以完成某些工作的批处理,并在我的开发框中进行了测试.我初始化我的上下文并完成工作,但是当我在服务器上运行我的批处理时,上下文没有正确初始化.这是代码:

public class TestBatch {

    private static ApplicationContext context;


    @SuppressWarnings("unchecked")
    public static void main(final String[] args) {

            context = new ClassPathXmlApplicationContext("/META-INF/spring/applicationContext.xml");
            try {
                @SuppressWarnings("unused")
                TestBatch app = new TestBatch();
            } catch (Exception ex) {
                ex.printStackTrace();
            }
    }

    public void TestBatch() { /** Do Something using the context **/ }

}
Run Code Online (Sandbox Code Playgroud)

这是日志和例外:

2010-02-16 11:54:16,072 [main] INFO  org.springframework.context.support.ClassPathXmlApplicationContext - Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@6037fb1e: startup date [Tue Feb 16 11:54:16 CET 2010]; root of context hierarchy
Exception in thread "main" java.lang.ExceptionInInitializerError
    at org.springframework.context.support.AbstractRefreshableApplicationContext.createBeanFactory(AbstractRefreshableApplicationContext.java:194)
    at …
Run Code Online (Sandbox Code Playgroud)

java spring initialization classpath spring-roo

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

为什么在类路径更改后Android中的应用签名会发生变化?

我有一个Android项目,分为三个不同的应用程序app-1,app-2并且app-3,它们应用了一些自定义.目前存在大量代码重复,使维护成为一场噩梦:在其中一个分支中进行更改,然后合并其他两个分支.

因此,我们创建了一个名为的库项目,app-core该项目将大部分重复的代码排除在外.到现在为止还挺好.

当我将其启动到已经加载应用程序的模拟器中时(在重构之前),我得到以下异常:

Re-installation failed due to different application signatures

一个不同的签名?但我只是在.classpath链接到app-coreJava项目中添加了一行!

主要问题是:现有用户是否也会受到这种困扰?

而旁边的问题:为什么它是一个不同的签名?

android classpath reinstall

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

执行类时找不到jar

我正在编写一本ANTLR(一个语言处理库)书,有很多例子应该很容易使用命令行编译.

有些信息可以解决问题:

antlr-3.2.jar包含库类.我添加antlr-3.2.jar到CLASSPATH环境变量(Windows 7)和编译类时,javac一切正常.这是我执行编译我的程序:

javac Test.java ExprLexer.java ExprParser.java
Run Code Online (Sandbox Code Playgroud)

Test.java包含my main()-method,ExprLexer而且ExprParser由ANTLR生成.这三个类都使用包含在中的类antlr-3.2.jar.但到目前为止这么好.正如我刚才所说,编译工作正常.

当我试图执行Test.class那个我遇到麻烦的时候.这是我输入的内容:

java -cp ./ Test
Run Code Online (Sandbox Code Playgroud)

执行此操作时,解释器告诉我他找不到包含在其中的ANTLR类antlr-3.2.jar,尽管我在CLASSPATH变量中添加了一个条目.

Exception in thread "main" java.lang.NoClassDefFoundError: org/antlr/runtime/Cha
rStream
Caused by: java.lang.ClassNotFoundException: org.antlr.runtime.CharStream
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: Test.  Program will exit.
Run Code Online (Sandbox Code Playgroud)

我正在使用Windows 7和Java 1.6_20.有人能说出发生了什么吗?为什么解释器不会在jar中找到我在Archive中指定的CLASSPATH?

我找到了某种工作方式.我将antlr-3.2.jar复制到Test.class所在的目录中,然后执行:

java …
Run Code Online (Sandbox Code Playgroud)

java command-line classpath

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

查找Web应用程序的类路径

当我在Eclipse中使用我的Web应用程序时,我可以搜索所有类和JAR文件

String cp = System.getProperty("java.class.path");
Run Code Online (Sandbox Code Playgroud)

但是当我在Tomcat或Jetty上部署时,我什么也得不到.

我想找到*.properties位于webapp中的所有文件(在JAR中,如果是爆炸的,在文件夹中).

String cp = System.getProperty("java.class.path");
String pathSep = File.pathSeparator;
String[] jarOrDirectories = cp.split(pathSep);
for (String fileName : jarOrDirectories) {
        File file = new File(fileName);
        if (file.isFile()) {
                logger.debug("From jar "+file.getName());
                loadFromJar(file.getPath());
        } else {
                logger.debug("From folder "+file.getName());
                listFolder(file);
        }
}
Run Code Online (Sandbox Code Playgroud)

这样,在Eclipse中运行Web应用程序会为我提供所有JAR文件和所有类文件夹,但在Tomcat中部署应用程序时则不行.

如果我能够获得通路就足够了WEB_INF.从那里,这很容易.

java web-applications classpath

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

蜡染不在课堂上

我正在编写Apache FOP中包含的FopServlet.java的扩展.
我的平台是Linux CentOS 5.7-64bit,带有Tomcat 5.5.
servlet"有效",但我无法处理SVG文件.我在Tomcat运行servlet时得到的错误是'Batik not in classpath'.但是在'webapps/fop/WEB-INF/lib'中有'batik-all-1.7.jar'和所有其他的jar.我不是Java专家,所以我无法专注于这个问题; 谷歌搜索,也许有一个丢失的罐子,但哪一个?

AVVERTENZA: Batik not in class path
java.lang.NoClassDefFoundError: org/w3c/dom/svg/SVGDocument
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1862)
        at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:888)
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1341)
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1220)
        at org.apache.batik.dom.svg.SVGDOMImplementation.createDocument(Unknown Source)
        at org.apache.batik.dom.util.SAXDocumentFactory.startElement(Unknown Source)
        at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
        at org.apache.xerces.impl.dtd.XMLDTDValidator.startElement(Unknown Source)
        at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
        at org.apache.xerces.impl.XMLNSDocumentScannerImpl$NSContentDispatcher.scanRootElementHook(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
        at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
        at org.apache.batik.dom.util.SAXDocumentFactory.createDocument(Unknown Source)
        at org.apache.batik.dom.util.SAXDocumentFactory.createDocument(Unknown Source)
        at …
Run Code Online (Sandbox Code Playgroud)

java servlets classpath

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

如何设置Google Calendar Java App

我正在按照Google 的逐步配置说明进行操作,但出于某种原因,我找不到他们要求我导入的一些软件包.我的应用程序无法找到的软件包(或我的IDE抱怨的行):

import com.google.api.client.auth.oauth2.draft10.AccessTokenResponse;
import com.google.api.client.googleapis.auth.oauth2.draft10.GoogleAccessProtectedResource;
import com.google.api.client.googleapis.auth.oauth2.draft10.GoogleAccessTokenRequest.GoogleAuthorizationCodeGrant;
import com.google.api.client.googleapis.auth.oauth2.draft10.GoogleAuthorizationRequestUrl;
Run Code Online (Sandbox Code Playgroud)

我似乎无法找到容纳这些的罐子.我的类路径包含:

//The Google Calendar Client API:
google-api-services-calendar-v3-rev16-1.8.0-beta.jar

//And of course the Google API Core:
commons-logging-1.1.1.jar
google-api-client-1.11.0-beta.jar
google-api-client-1.11.0-beta.jar.properties
google-api-client-android-1.11.0-beta.jar
google-api-client-android-1.11.0-beta.jar.properties
google-api-client-android2-1.11.0-beta.jar
google-api-client-android2-1.11.0-beta.jar.properties
google-api-client-appengine-1.11.0-beta.jar
google-api-client-java6-1.11.0-beta.jar
google-http-client-1.11.0-beta.jar
google-http-client-1.11.0-beta.jar.properties
google-http-client-android-1.11.0-beta.jar
google-http-client-android-1.11.0-beta.jar.properties
google-http-client-android2-1.11.0-beta.jar
google-http-client-android2-1.11.0-beta.jar.properties
google-http-client-android3-1.11.0-beta.jar
google-http-client-android3-1.11.0-beta.jar.properties
google-http-client-appengine-1.11.0-beta.jar
google-http-client-gson-1.11.0-beta.jar
google-http-client-gson-1.11.0-beta.jar.properties
google-http-client-jackson-1.11.0-beta.jar
google-http-client-jackson-1.11.0-beta.jar.properties
google-http-client-jackson2-1.11.0-beta.jar
google-http-client-jackson2-1.11.0-beta.jar.properties
google-oauth-client-1.11.0-beta.jar
google-oauth-client-1.11.0-beta.jar.properties
google-oauth-client-appengine-1.11.0-beta.jar
google-oauth-client-java6-1.11.0-beta.jar
google-oauth-client-jetty-1.11.0-beta.jar
google-oauth-client-servlet-1.11.0-beta.jar
gson-2.1.jar
gson-2.1.jar.properties
guava-11.0.1.jar
guava-11.0.1.jar.properties
httpclient-4.0.3.jar
httpcore-4.0.1.jar
jackson-core-2.0.5.jar
jackson-core-2.0.5.jar.properties
jackson-core-asl-1.9.9.jar
jackson-core-asl-1.9.9.jar.properties
jdo2-api-2.3-eb.jar
jetty-6.1.26.jar
jetty-util-6.1.26.jar
jsr305-1.3.9.jar
transaction-api-1.1.jar
xpp3-1.1.4c.jar
Run Code Online (Sandbox Code Playgroud)

我不确定它是什么我错过了,但我需要这些库来继续教程.如果需要更多信息,我将很乐意提供.对于Google Calendar API,我是新手.任何帮助表示赞赏!谢谢!

java jar google-calendar-api classpath

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

使用fileset和pathelement在build.xml中设置classpath之间的区别

我有一个构建文件,声明了如图所示的类路径

<path id="compile.classpath">
    <fileset dir="${basedir}/lib"    includes="**"/>        
    <fileset dir="${jboss.home}/lib" includes="**"/>        
    <pathelement path ="${build.classes.dir}"/>
</path>
Run Code Online (Sandbox Code Playgroud)

我试着查看文档,但我无法理解使用 pathelement.

我知道ID在执行任务时用于引用此类路径,而fileset包含jar文件.

编辑1: 我的疑问是为什么我们不能使用fileset包含类文件代替pathelement?

java ant build.xml classpath

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

如何在JUNIT测试中从WEB-INF获取文件

在webapp的控制器中,当给定条件为真时,我将重定向到其他页面(xyz.jpsx).

现在,在Junit测试中,我想强制执行重定向,但重定向也指向实际存在的jsp.

在Junit内部,我找不到从WEB-INF内部读取文件的方法.我不想硬编码完整路径,因为解决方案不太便携.

我完全理解WEB-INF中的文件不在类路径中,但可能有办法访问这些文件.寻找可在我的集成服务器上运行的便携式解决方案.

java junit web-applications classpath

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