标签: classpath

又一个Ant + JUnit类路径问题

我正在使用Eclipse开发Eclipse SWT应用程序.还有一些JUnit 4测试,测试一些DAO.但是当我尝试通过ant构建运行测试时,所有测试都失败了,因为找不到测试类.

谷歌带来了大约一百万人都有同样的问题,但他们的解决方案似乎都不适合我 - .-.

这些是我的build.xml文件的内容:

<property name="test.reports" value="./test/reports" />
<property name="classes" value="build" />


<path id="project.classpath">
    <pathelement location="${classes}" />
</path>

<target name="testreport">
    <mkdir dir="${test.reports}" />
    <junit fork="yes" printsummary="no" haltonfailure="no">
        <batchtest fork="yes" todir="${test.reports}" >
            <fileset dir="${classes}">
                <include name="**/Test*.class" />
            </fileset>
        </batchtest>
        <formatter type="xml" />

        <classpath refid="project.classpath" />


    </junit>

    <junitreport todir="${test.reports}">
        <fileset dir="${test.reports}">
            <include name="TEST-*.xml" />
        </fileset>
        <report todir="${test.reports}" />
    </junitreport>
</target>
Run Code Online (Sandbox Code Playgroud)

测试类与应用程序类一起位于build-directory中,尽管它们根据其包在某些子文件夹中.

也许这也很重要:首先,Ant抱怨JUnit不在其类路径中,但是因为我把它放在那里(使用eclipse配置编辑器),它抱怨JUnit在其类路径中两次.

WARNING: multiple versions of ant detected in path for junit 
   [junit]          jar:file:C:/Users/as df/Documents/eclipse/plugins/org.apache.ant_1.7.1.v20090120-1145/lib/ant.jar!/org/apache/tools/ant/Project.class
   [junit]      and jar:file:/C:/Users/as%20df/Documents/eclipse/plugins/org.apache.ant_1.7.1.v20090120-1145/lib/ant.jar!/org/apache/tools/ant/Project.class
Run Code Online (Sandbox Code Playgroud)

我已经尝试指定每个子目录,每个类文件,我已经尝试过文件集和文件列表,似乎没什么用. …

java eclipse ant junit classpath

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

是否可以动态加载包中包含的所有属性文件?即MyClass.class.getResource('*.properties');

我熟悉在给定文件名的情况下获取属性文件的内容,显然MyClass.class.getResource('*.properties')不起作用,但是如何获取所有属性文件的列表与我班级相同的包裹?

java properties classpath classloader java-ee

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

获取java.lang.ClassNotFoundException,即使我已经使用-cp指定了正确的jar

java.lang.ClassNotFoundException:com.hazelcast.core.Hazelcast

这一点很奇怪,因为我在运行java时已将hazelcast-1.8.5.jar添加到类路径中:

java -cp hazelcast-1.8.5.jar -jar myapp.jar
Run Code Online (Sandbox Code Playgroud)

所以我无法理解为什么我得到了ClassNotFoundException,当hazelcast jar确实存在并且在命令行中指定时.有什么想法吗?

顺便说一下,淡褐色很可爱!

java jar classpath

5
推荐指数
1
解决办法
1326
查看次数

使用gwt和jsp时jetty类路径的问题

嗨,我已经使用GWT创建了一个ajax应用程序.我只创建了一个连接到我的数据访问层的jsp文件,以获取一些信息以向用户显示它们.

在我的jsp文件中,我已经在该jsp文件中导入了一些我的类来使用它们.当我在开发模式中调用该jsp文件时,jetty会在我的所有java文件附近创建一个扩展名为.class的文件!而我编译的java文件位于/ war/WEB-INF/classes,但是jetty不明白它们在哪里,并在每个java文件附近创建一个.class文件.

我正在尝试使用netbeans的netbeans和自由格式项目模板!

java gwt netbeans jetty classpath

5
推荐指数
1
解决办法
816
查看次数

"无法找到主类"

我正在尝试从命令promopt运行示例Java应用程序,但是我收到以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: com/badlogic/gdx/helloworld/HelloWorldDesktop
Caused by: java.lang.ClassNotFoundException: com.badlogic.gdx.helloworld.HelloWorldDesktop
        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:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: com.badlogic.gdx.helloworld.HelloWorldDesktop.  Program will exit.
Run Code Online (Sandbox Code Playgroud)

我用来尝试运行这个应用程序的命令是:

java -cp .;gdx.jar;gdx-backend-jogl.jar com.badlogic.gdx.helloworld.HelloWorldDesktop
Run Code Online (Sandbox Code Playgroud)

所有相关文件都在当前工作目录中(.java,.class和.jar文件)

我用来构建.class文件的命令如下(有2个.java文件):

javac -cp gdx.jar;gdx-backend-jogl.jar HelloWorld.java HelloWorldDesktop.java
Run Code Online (Sandbox Code Playgroud)

同样,这是从同一个工作目录运行的 - 内容HelloWorldDesktop.java是(或多或少):

package com.badlogic.gdx.helloworld;

public class HelloWorldDesktop {
    public static void main (String[] argv) {
        // Application
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试学习Java作为C#开发人员,所以我有很强的编程概念背景,整个java工具链目前让我很困惑.异常表明HelloWorldDesktop找不到类,但据我所知,我已经得到了正确的名称,并且我已经将正确的.jar文件添加到类路径中,因此Java应该能够加载这个类.

为什么找不到它HelloWorldDesktop?

java classpath classnotfoundexception

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

什么时候罐子里的类进入PermGen

我的理解是PermGen(在某种意义上)将类代码保存在内存中.通常我们有很多jar文件引用了我们的类路径.当一个jar文件包含在类路径中时(例如在tomcat的lib目录中),所有这些jar的所有类都自动加载到PermGen中吗?

在类似的问题中,一旦使用了一个jar文件类,PermGen是否会加载该jar文件中的所有类,或者仅加载所使用的类(然后在必要时加载其余的类文件)?

java tomcat classpath permgen classloader

5
推荐指数
1
解决办法
1099
查看次数

使用<Set name ="extraClasspath">设置Jetty类路径时出现问题

我有一个外部jar,我不想与我的webapp捆绑在一起.我把它放在码头的类路径上.不幸的是,我正在部署的环境非常严格,我只能写入两个目录:包含上下文的目录和包含webapps的目录.

我选择将我的外部jar放在webapp目录中.为了让我的webapp可见,我正在配置WebAppContext以查看这个额外的jar.这是我的myAppContext.xml文件

<Configure id="myContext" class="org.mortbay.jetty.webapp.WebAppContext">
<Set name="contextPath">/myApp</Set>
<Set name="war"><SystemProperty name="jetty.home" default="."/>/webapps/myApp.war</Set>
<Set name="defaultsDescriptor"><SystemProperty name="jetty.home" default="."/>/etc/webdefault.xml</Set>
<Set name="extraClasspath"><SystemProperty name="jetty.home" default="."/>/webapps/myExternalJAR.jar</Set>
<New class="com.mycompany.mypackage.MyExternalClass"></New>
Run Code Online (Sandbox Code Playgroud)

最后一行尝试实例化可以在我的外部jar中找到的MyExternalClass.当启动jetty时,我在配置文件的这一行得到一个ClassNotFoundException.

有什么我想念的吗?根据规范,这应该工作.对于如何处理这个问题,我会非常感激.

configuration jetty classpath classnotfoundexception

5
推荐指数
0
解决办法
1091
查看次数

Rails/Ruby如何覆盖迁移方法时间戳

我正在尝试编写自己的时间戳方法,该方法在迁移期间运行.现在的那个现在在字段上添加了一个NOT_NULL约束,我真的不想要那个.

我遇到的问题是我有一个多模式的数据库.每个主要客户都获得自己的架构.当我们在新客户端上运行时,我们会创建一个新的租户记录,然后为新创建的架构运行迁移.

新模式应该是其他模式中表的精确副本,当然除了没有数据.

我运行的最后一次迁移是使用较旧版本的rails.仍然在3年代,但一个年长的微笑.当它创建时间戳时,它们是NULLable.当我在前一天运行迁移时(在新的轨道上)......好吧所有的字段现在都是NOT_NULL

我的代码是在更新记录时仅填充了updated_at的想法而开发的...而不是在创建记录时.(第三方应用程序和数据库"函数"创建记录)..创建记录的第三方应用程序和数据库函数正在落在新架构上...我已经进入并删除了所有表上的所有NOT_NULL约束手动,但我不想将清理直接写入我的迁移任务,以便所有将来的表都得到纠正..

我认为最好的办法是覆盖已更改的timestamps方法,回到没有破坏现有代码的方法.

所以我需要恢复/覆盖的原因..
我现在的问题是......如何覆盖该方法.我看不到它的明确的类路径,我不确定如何覆盖它..

overriding timestamp ruby-on-rails classpath

5
推荐指数
1
解决办法
543
查看次数

在tomcat7-maven-plugin目标中使用"提供的"类路径

我在webapp中有一些依赖项,我已将其标记为provided因为我希望它们由appserver提供(可能是生产环境在指定版本中提供这些依赖项).当我在我的localhost上运行测试或开发时,我如何使用例如tomcat7-maven-plugin目标这样的模拟run?

如果不手动复制罐子,我无法看到任何方法.我可以看到如何使用test类路径 - 我正在尝试做什么有什么问题?

dependencies tomcat classpath maven tomcat7

5
推荐指数
1
解决办法
1185
查看次数

install4j生成的可执行文件无法启动

我正在评估install4j,因为我想为我们的Windows用户生成可执行文件.通常我们直接在Eclipse中运行我们的应用程序,或使用bash脚本.我们有一个大的jar包含整个框架以及我们的应用程序和一些依赖jar.在部署时,我们使用一个shellscript设置类路径,并使用其他shellcripts启动各个应用程序.

此过程适用于Linux,Mac和Windows.

现在我尝试安装install4j的演示版本,并且一直在努力创建安装程序.

现在的结果是我构建了一个运行的安装程序,并将生成的EXE和所有其他文件安装在它下面的目录结构中.

但是,启动生成的可执行文件并不能很好地工作.将显示演示对话框,然后一段时间后应用程序退出而不显示任何错误消息.

我的猜测当然是它崩溃了,可能是因为类路径不正确或类似的东西.

问题是,我一直在玩install4j中的选项几个小时没有任何行为改变,我现在在黑暗中.添加整个LIB目录,"扫描目录",单独添加罐子等.

有什么办法可以从生成的可执行文件中获取一些调试信息吗?或者任何信息都会出现问题?

java eclipse windows classpath install4j

5
推荐指数
1
解决办法
1443
查看次数