标签: classpath

Junit和Java类路径问题 - OS X.

我正在尝试运行junit4.7附带的样本测试并遇到一些困难.

java是尊重我的CLASSPATH:

me@dinosaurhunter ~/Desktop> export CLASSPATH=
me@dinosaurhunter ~/Desktop> echo $CLASSPATH

me@dinosaurhunter ~/Desktop> java junit.textui.TestRunner junit.samples.AllTests
Exception in thread "main" java.lang.NoClassDefFoundError: junit/textui/TestRunner
me@dinosaurhunter ~/Desktop> source /etc/profile 
me@dinosaurhunter ~/Desktop> echo $CLASSPATH
:/Library/Java/Extensions/junit/:/Library/Java/Extensions/junit/junit.jar
me@dinosaurhunter ~/Desktop> java junit.textui.TestRunner junit.samples.AllTests
Exception in thread "main" java.lang.NoClassDefFoundError: junit/framework/Test
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:164)
    at junit.runner.BaseTestRunner.loadSuiteClass(BaseTestRunner.java:207)
    at junit.runner.BaseTestRunner.getTest(BaseTestRunner.java:100)
    at junit.textui.TestRunner.start(TestRunner.java:179)
    at junit.textui.TestRunner.main(TestRunner.java:138)
Run Code Online (Sandbox Code Playgroud)

但正如你所看到的,它无法找到junit/framework/Test......我看着/Library/Java/Extensions/junit/junit.jar它,但它包括在内.

/Library/Java/Extensions/junit/junit.jar是一个符号链接.这样可以吗?

java macos junit classpath

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

使用":"和"." 在使用类路径声明调用java时

这是一个scjp模拟考试题.

假设我有以下两个文件:

package pkg;

public class Kit {
    public String glueIt (String a, String b) {return a+b;}
}

import pkg.*;

class UseKit {
    public static void main(String[]args) {
        String s = new Kit().glueIt(args[1],args[2]);
        System.out.println(s);
    }
}
Run Code Online (Sandbox Code Playgroud)

以下目录结构:

test
   |--UseKit.class
   |
   com
     |--KitJar.jar
Run Code Online (Sandbox Code Playgroud)

当前目录是test,文件pkg/Kit.classKitJar.jar

根据答案,产生输出bc的java调用是

java -classpath com/KitJar.jar:. UseKit a b c 
Run Code Online (Sandbox Code Playgroud)

请解释运营商":"和"."的使用.

java scjp classpath

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

使用-cp或-classpath手动设置CLASSPATH不能按预期方式工作

MyClassWithMainMethod.java使用someJar.jar的类.

如果我打电话:

java -cp someJar.jar MyClassWithMainMethod
Run Code Online (Sandbox Code Playgroud)

我得到了例外:

Exception in thread "main" java.lang.NoClassDefFoundError: MyClassWithMainMethod
Caused by: java.lang.ClassNotFoundException: MyClassWithMainMethod
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:315)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:330)
at java.lang.ClassLoader.loadClass(ClassLoader.java:250)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:398)
Run Code Online (Sandbox Code Playgroud)

但是当我手动将CLASSPATH设置为我的jar时

export CLASSPATH=:/path/to/someJar.jar
Run Code Online (Sandbox Code Playgroud)

它的工作原理

java MyClassWithMainMethod
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

java jar classpath

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

如何在Eclipse插件中获取IJavaProject的类路径作为文件路径?

我正在开发一个Eclipse插件,需要构建一个可以访问Eclipse中项目类路径中所有内容的类加载器.我有一个IJavaProject,我正在尝试构建一个URL列表以传递给URLClassLoader:

final IClasspathEntry[] resolvedClasspath = javaProject.getResolvedClasspath(true);
for (IClasspathEntry classpathEntry : resolvedClasspath) {
    urls.add(classpathEntry.getPath().makeAbsolute().toFile().getCanonicalFile().toURL());
}
Run Code Online (Sandbox Code Playgroud)

但是任何项目依赖项(手动添加,或者来自Maven插件的"Maven Dependencies"容器)都显示为刚刚"file:/ projectName",而不是绝对路径.

其他实验涉及使用javaProject.getAllPackageFragmentRoots(),但这似乎不包括"Maven依赖关系"容器内的项目依赖项.

java eclipse plugins classpath

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

tomcat的lib中的jar无法在我的webapp中看到属性文件

最近我将核心servlet应用程序的核心功能分成了一个jar文件.此jar文件现在部署在tomcat的lib文件夹中,应用程序(即servlets,jsps,properties files..etc)作为war文件独立部署.

jar文件需要特定的属性文件.我将这些属性文件放在war文件中的"src"文件夹下(即类层次结构的顶部).

在过去,当所有东西都在同一个项目中并部署在一个war文件中时.相关类可以访问属性文件.现在,当这些类部署在jar中时,它们无法看到war文件中的属性文件(即已部署的Web应用程序).

我在这里可以缺少什么?我如何加载proeprties文件的示例:

properties.load(getClass().getResourceAsStream("/appconfig.properties"));
Run Code Online (Sandbox Code Playgroud)

感谢您的时间.

java tomcat classpath properties-file

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

hadoop java中的classpath问题

javac -classpath "/installs/hadoop-0.20.2/*.jar;/installs/hadoop-0.20.2/lib/*.jar" appClientModule/grid/comp/tools/CleanTmp.java
appClientModule/grid/comp/tools/CleanTmp.java:2: package org.apache.hadoop.fs does not exist
import org.apache.hadoop.fs.*;
^
appClientModule/grid/comp/tools/CleanTmp.java:3: package org.apache.hadoop.mapred does not exist
import org.apache.hadoop.mapred.JobConf;
                               ^
appClientModule/grid/comp/tools/CleanTmp.java:4: package org.apache.commons.logging does not exist
import org.apache.commons.logging.*;
^
appClientModule/grid/comp/tools/CleanTmp.java:5: package org.apache.commons.logging.impl does not exist
import org.apache.commons.logging.impl.Log4JLogger;
                                      ^
appClientModule/grid/comp/tools/CleanTmp.java:8: cannot find symbol
symbol  : class Log4JLogger
location: class grid.comp.tools.CleanTmp
    Log4JLogger lg=new Log4JLogger(this.getClass().getName());
    ^
appClientModule/grid/comp/tools/CleanTmp.java:9: cannot find symbol
symbol  : class JobConf
location: class grid.comp.tools.CleanTmp
    JobConf jconf;
    ^
appClientModule/grid/comp/tools/CleanTmp.java:8: cannot find symbol
symbol  : class Log4JLogger
location: class grid.comp.tools.CleanTmp …
Run Code Online (Sandbox Code Playgroud)

java hadoop classpath

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

javac -classpath没有做到这一点

我有一个源文件SerialTalk.java,在目录C:\ javasrc\BattProj中

该文件从RXTXcomm.jar导入类,例如.

import gnu.io.CommPortIdentifier; import gnu.io.SerialPort; ...

RXTXcomm.jar与SerialTalk.java位于同一目录中.我编译指定一个指向当前目录的类路径:

javac -verbose -classpath.SerialTalk.java

总是,我得到以下错误.(实际上,此错误的许多实例和变体):

SerialTalk.java:3:错误:包gnu.io不存在import gnu.io.CommPortIdentifier;

当我打开RXTXcomm.jar(例如7-Zip)时,我可以看到gnu.io结构,以及我试图导入的特定.class文件.

那么我做错了什么?已编译相同的.java(源)文件并在Netbeans IDE中的另一个工作站上运行.这里的区别是我正在尝试使用命令行中的javac编译它.(环境是Win7,32位,jdk1.7.0_03)

java classpath

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

从shell脚本运行java类

我有一个问题是将Windows批处理文件更改为unix shell脚本,以便在我的linux机器上执行相同的java代码.

我的shell脚本看起来像这样:

#!/bin/bash

libdir=../lib
bindir=.
LIBS=$libdir/lib_1.jar;$libdir/lib_2.jar;$libdir/lib_3.jar;$libdir/lib_4.jar

java -cp $bindir;$LIBS com.sample.SampleServer
Run Code Online (Sandbox Code Playgroud)

对我来说它看起来正确但我收到以下错误信息: Failed to load Main-Class manifest attribute from /home/user/development/lib/lib_2.jar

在此先感谢您的帮助.

java shell classpath

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

使用Grails/Groovy注入构造函数参数Spring Resource文件

从我们的Grails/Groovy应用程序中,我们需要使用遗留Java服务类中的服务,其构造函数具有org.springframework.core.io.Resource类型的参数,例如

public ServiceClass(Resource someResource)
Run Code Online (Sandbox Code Playgroud)

我们需要使用Spring DSL将服务类的实例注入到我们应用程序的Groovy类中,资源引用/ src/main/resources中的XML文件.我试图为此目的创建Spring配置,但到目前为止我找不到一个可行的解决方案.配置文件的相关部分如下所示

beans = {
    xmlns aop:"http://www.springframework.org/schema/aop",
    sec:"http://www.springframework.org/schema/security",
    context:"http://www.springframework.org/schema/context"

    serviceClass(com.somepackage.ServiceClass) {
      //here we need to refer to the constructor arg XML file some way
    }
}
Run Code Online (Sandbox Code Playgroud)

我已经尝试了各种教程中的多种语法,例如关闭beanDefinition.constructorArgs,但遗憾的是到目前为止还没有成功.虽然应用程序编译(grails:war)和启动(grails:run-app)都没有表明bean接线存在任何问题,但当应用程序实际加载到浏览器中时,我们收到一个NPE,说明我们的Groovy类到哪个注入服务类,是一个null对象.所以看起来豆接线毕竟不成功.任何帮助表示赞赏

grails groovy resources spring classpath

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

maven copy dependecies不工作

这个问题已被问到,但没有一个解决方案对我有用:

我想复制我在POM.xml构建中通过依赖标记指定的jar:

<dependency>
...
</dependency>
Run Code Online (Sandbox Code Playgroud)

进入像target/lib这样的文件夹

pom.xml中:

<build>
    <defaultGoal>install</defaultGoal>
    <directory>${basedir}/target</directory>
    <finalName>${project.artifactId}-${project.version}</finalName>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>com.googlecode.addjars-maven-plugin</groupId>
                <artifactId>addjars-maven-plugin</artifactId>
                <version>1.0.5</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>add-jars</goal>
                        </goals>
                        <configuration>
                            <resources>
                                <resource>
                                    <directory>${project.build.directory}/my-repo</directory>
                                </resource>
                            </resources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifest>
                            <classpathPrefix>lib/</classpathPrefix>
                            <addClasspath>true</addClasspath>
                            <mainClass>Swapper</mainClass>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>2.10</version>
                <executions>
                    <execution>
                        <id>copy-dependencies</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <includeScope>runtime</includeScope>
                            <outputDirectory>${project.build.directory}/lib/</outputDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </pluginManagement>
</build>
Run Code Online (Sandbox Code Playgroud)

就像我说的,根本没有任何东西被复制.但根据该门户网站上的一些问答,它应该可行.

有任何想法吗?

java dependencies jar classpath maven

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