Tag: classpath

java编译器如何查找类文件而classpath未设置为jdk路径?

我试图了解一下java编译的内幕。 所以我放弃了我的IDE并开始使用MS-DOS命令行… 我创建了一个简单的项目,如下面的树所述: SampleApp |____**src** |_____pack |______Sample.java |____**classes** 这是Sample.java源代码: public class Sample { private String s = new String(“Hello, world”); public Sample(){ System.out.println(s); } } 我只想编译这个类,所以我使用了javac命令: prompt\SampleApp\src>javac -d ..\classes -sourcepath . pack\Sample.java 一切正常,但我没想到,因为我在编译Sample.java文件之前删除了我的CLASSPATH环境变量。 所以我期待编译器错误,因为编译器无法找到java.lang.String类文件。 我读了这篇文章http://www.ibm.com/developerworks/java/library/j-classpath-windows/ ,它帮助我理解了很多东西。 文章作者说默认的类路径是当前的工作目录。 但我不明白为什么我的源代码编译没有错误。 有人可以向我解释一下吗?

运行junit测试时的ZipException

我一直试图让ant执行一些用junit编写的测试。 任何建议将不胜感激。 我对ant和Java都很陌生,所以请耐心等待。 作为一个简短的总结,我正在做的是尝试让ant执行一个非常简单的测试,考虑到ant -debug的输出,classpath看起来很好。 我在类路径中明确提到类文件的测试时遇到空测试错误。 此外,我得到一个ZipException,我不知道那是什么。 这是我正在尝试运行的测试用例: package testmanagment; import junit.framework.*; public abstract class EasyTest extends TestCase { public EasyTest(String name) { super(name); } protected void setUp() {} protected void testSeeMee() throws Exception { assertTrue(true); } protected void testSeeMeetoo() throws Exception { assertTrue(true); } } 包中有一些测试,这只是为了看看为什么一切都失败了。 它失败了ZipException。 这是我的make文件的一小部分: blah blah blah ant编译一切都很好,并期待把一切都放在正确的地方。 但它似乎无法找到我的测试……这是我用-debug选项运行它时ant吐出的一小部分。 [junit] […]

如何在类路径中包含hbase-site.xml

我目前正在尝试使用我的HBase代码来使用我的hbase-site.xml中指定的设置。 它似乎使用默认设置而不是hbase-site.xml配置文件中指定的设置。 我更新了文件后重新启动了HBase集群,但它仍然没有使用我更新的配置文件。 我使用的集群是2个节点,其中一个是主节点。 两个节点上的配置文件都将主节点的IP指定为zookeeper仲裁。 我认为问题是我的hbase-site.xml中指定的设置没有被使用,因为如果我通过代码将zookeeper仲裁设置为与我的hbase-site.xml中相同的值,代码运行正常,但第二个节点不能如果未通过代码指定仲裁,请联系主服务器。 config = HBaseConfiguration.create(); config.set(“hbase.zookeeper.quorum”, masterNodeIP); 我非常感谢有关如何将hbase-site.xml包含到我的代码的类路径中的说明或链接。 我在Windows机器上使用Eclipse进行开发,并在Linux集群上安装了HBase环境。 由于依赖性,我通常使用Eclipse来编译代码。 理想情况下,我希望群集中的每个节点都使用自己的配置文件。 提前致谢!

maven将一个本地类目录添加到模块的类路径中

我知道这有点超出了maven的范围,但是我需要将一个带有编译类的本地目录添加到模块的类路径中。 我看到: Maven:将文件夹或jar文件添加到当前的类路径中 ,但这仅适用于jar。 我需要一个类似的解决方案,但在本地文件系统的目录中编译类。 这有可能吗? 谢谢!

classpath – 从命令行运行java程序

使用以下命令编译好我的代码: javac -cp “../lib/*” AvroReader.java (lib是我放我的jar文件的地方) 在运行时,我在以下行获得ClassNotFoundException : DatumReader dtmrdr = new GenericDatumReader(); 它说它找不到org.apache.avro.generic.GenericDatumReader即使我已经导入了它。 为什么会这样? 谢谢!

添加属性文件以构建可运行jar的路径

是否有可能在可运行的jar文件的类路径中添加一些属性文件? 我尝试了这些解决方案: 使用以下命令运行可执行文件: java -cp ../prop_dir/prop1.properties;../prop_dir/prop2.properties -jar MyRunnableJar.jar 添加到MANIFEST FILE(在Class-Path部分中) ../prop_dir/prop1.properties ../prop_dir/prop1.properties 但它们都不起作用。 正在运行的目录的架构如下 + + MyRunnableJar.jar + prop_dir/ + prop1.properties + prop2.properties 非常感谢, 丹尼尔 编辑 当我执行以下行时 System.out.println(System.getProperty(“java.class.path”)); 我在我的控制台中获取 MyRunnableJar.jar

Ant类路径顺序

如何在ant中设置classpath顺序? 具体来说,当我尝试运行我的ant构建时,我需要它来获取jar中的类(jaxws-api.jar)而不是jre中的同一个类。 我目前正在设置类路径以明确包含那些jar子,但它似乎仍然首先拿起jre。 我正在寻找的是在“Build Configuration”菜单下eclipse中的Order / Export的某种类型。 编辑:我会更明确。 我有一些用CXF 2.1.3生成的类。 他们调用javax.xml.ws.Service#getPort(QName,Class,WebServiceFeature …)。 我使用的是Java版本1.6.02。 该方法在该版本的该类中不存在。 但是,它确实存在于类的jaxws版本(以及更高版本的JRE类)中。 当我尝试进行ant构建时,总是在jaxws版本之前获取JRE类。 这使我的编译失败。 如何修改我的类路径以将JRE放在最后? 我无法更改JRE版本,因此请不要将其作为修复建议,除非它是唯一可能的版本。

java.lang.ClassNotFoundException / NoClassDefFoundError for com / fasterxml / jackson / databind / ObjectMapper with Maven

尝试运行使用jackon的ObjectMapper类的java程序时出现以下错误: Exception in thread “main” java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/ObjectMapper at com.inin.dynamotransfer.DynamoTransfer.importData(DynamoTransfer.java:133) at com.inin.dynamotransfer.DynamoTransfer.main(DynamoTransfer.java:67) Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.databind.ObjectMapper at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) … 2 more 我有我的Maven存储库中的Jackson注释,databind(包含ObjectMapper)和核心JAR,位于〜/ .m2 / repository / com / fasterxml / jackson / core / jackson- [packagename] /2.4.0下。 这是我的pom.xml的依赖项部分: com.fasterxml.jackson.core jackson-annotations 2.4.0 com.fasterxml.jackson.core jackson-databind 2.4.0 com.fasterxml.jackson.core […]

Eclipse RCP具有项目依赖性

我开发了一个RCP插件(不是独立的),以及一个带有插件需要调用的库代码的Java项目。 我已在同一工作区中配置Java项目。 该插件具有Java项目的项目依赖性。 代码编译(插件用Java Project /库代码完成一些工作)。 当我运行插件时,我得到一个ClassNotFoundException: java.lang.ClassNotFoundException: com.mycode.ArgSet at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:494) 有谁知道如何正确配置插件?

如何编译Hive UDF

我正在尝试编译这个UDF: package com.dataminelab.hive.udf; import org.apache.hadoop.hive.ql.exec.UDF; import org.apache.hadoop.io.Text; import java.security.*; /** * Calculate md5 of the string */ public final class Md5 extends UDF { public Text evaluate(final Text s) { if (s == null) { return null; } try { MessageDigest md = MessageDigest.getInstance(“MD5”); md.update(s.toString().getBytes()); byte[] md5hash = md.digest(); StringBuilder builder = new StringBuilder(); for […]