标签: classpath

如何编译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 (byte b : md5hash) {
            builder.append(Integer.toString((b & 0xff) + 0x100, 16).substring(1));
            }
            return new Text(builder.toString());
            } catch (NoSuchAlgorithmException nsae) {
            System.out.println("Cannot find digest algorithm");
            System.exit(1); …
Run Code Online (Sandbox Code Playgroud)

java hive classpath user-defined-functions

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

在gradle中为jar清单定义自定义类路径

我正在尝试为所有子项目定义一个jar任务(大约30个).我尝试了以下任务:

 jar {
            destinationDir = file('../../../../_temp/core/modules')
            archiveName = baseName + '.' + extension
            metaInf {
                    from 'ejbModule/META-INF/' exclude 'MANIFEST.MF'
            }

          def manifestClasspath = configurations.runtime.collect { it.getName() }.join(',') 
            manifest {
            attributes("Manifest-Version"       : "1.0",
                "Created-By"             : vendor,
                "Specification-Title"    : appName,
                "Specification-Version"  : version,
                "Specification-Vendor"   : vendor,
                "Implementation-Title"   : appName,
                "Implementation-Version" : version,
                "Implementation-Vendor"  : vendor,
                "Main-Class"             : "com.dcx.epep.Start",
                "Class-Path"             : manifestClasspath 
            )
            }
    }
Run Code Online (Sandbox Code Playgroud)

我的问题是,子项目之间的依赖关系不包含在清单的类路径中.我尝试将运行时配置更改为编译配置,但这会导致以下错误.

  • 出了什么问题:评估项目':EskoordClient'时出现问题.

    您无法更改未处于未解决状态的配置!

这是我的项目EskoordClient的完整构建文件:

dependencies {     
    compile project(':ePEPClient')
}
Run Code Online (Sandbox Code Playgroud)

我的大多数子项目构建文件只定义项目依赖项.第三方lib依赖项在超级项目的构建文件中定义.

是否有可能将所有需要的类路径条目(第三方库和其他项目)包含到所有子项目的超级项目中的清单类路径中.

jar manifest classpath gradle

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

如何在eclipse中使用JAR中的类

我有两个jar文件 - jar1和jar2.它们都位于C:\ Eclipse projects \中,我已将它们的路径添加到环境变量CLASSPATH中,如下所示

.;C:\Program Files\Java\jre6\lib\ext\QTJava.zip;C:\Eclipse projects\stdlib.jar;C:\Eclipse projects\algs4.jar
Run Code Online (Sandbox Code Playgroud)

".;" 一开始就在那里,所以我离开了他们.然后我从它们的位置C:\ Eclipse projects \中将jar添加到项目中,它们显示为Referenced Libraries.但是,当我尝试从jar实例化一个类时,它无法识别它.我也无法导入jar(导入jar1).

我尝试在项目中添加一个lib文件夹后,我在那里添加了jar.之后,我再次将它们作为引用添加(因此它们在Referenced Libraries中不会出现两次),但是,我仍然无法使用内部类.任何帮助都感激不尽.

更新:我的结局肯定是错的.这些建议都不适合我.这是一个包含所有步骤的视频:screencast.com/t/gC81YzCsLY0e

回到顶端|提供反馈解决方案在我的项目中,我有一个名为TestProject的包,似乎这些jar需要一个默认包.删除TestProject包并使用defaultPackage后,一切都在添加外部JAR后正常工作,如下所述.

java eclipse jar reference classpath

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

使用Google Gson库时获取java.lang.NoClassDefFoundError

我Gson library用来将对象转换为对象,Json反之亦然。我已jars将该库的复制到一个新文件夹中lib,并将其添加到我的项目中的构建路径中Eclipse IDE。

我有一个主类,在其中我将对象转换为Json,toJson()如下所示,并将其发送给servletusing Apache HttpClient's HttpPost()。

Gson gson= new Gson();
String json = gson.toJson(names);
Run Code Online (Sandbox Code Playgroud)

但是在执行以下代码时,我servlet无法将转换Json为Objectusing fromJson()。

Gson gson = new Gson();
Names names = gson.fromJson(s, Names.class);
Run Code Online (Sandbox Code Playgroud)

它引发以下异常:

java.lang.NoClassDefFoundError: com/google/gson/Gson
Run Code Online (Sandbox Code Playgroud)

知道为什么会这样吗?我应该将拷贝jars到WebContent/WEB-INF/lib文件夹中而不是将新文件夹复制到lib吗?

eclipse classpath gson apache-httpcomponents apache-httpclient-4.x

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

-sourcepath vs -classpath

学习oracle认证我正在尝试考试期间可能出现的所有可能情况.例如,这里有一点关于shell命令行(基于unix)的疑问:

我们假设有一个名为的文件夹myProject和一个名为的子文件夹myProject/source.

文件SubFile.java位于文件夹中myProject/source,另一个文件File.java位于myProject文件夹中.

通过键入以下命令,我会遇到不同的行为:

cd source (因此,目前我在"myProject/source")

javac -sourcepath ../ File.java
//命令../无法访问"文件夹",然后File.java从myProject文件夹编译后返回子文件夹,如果我尝试:

javac -classpath ../ SubFile.java

//带有标志-classpath它似乎接受../访问该super文件夹的语法.

你知道它为什么会这样吗?而且有没有机会访问super带有-sourcepath标志的文件夹?

java javac classpath

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

来自远程目录的Java Class.forName()

我目前正在加载Java类Class.forName()来加载它.

clazz = Class.forName("interfaces.MyClass");
Run Code Online (Sandbox Code Playgroud)

但是现在我想从不同的目录加载类,我试图设置classpath

clazz = Class.forName("-cp \"C:/dir\" distantinterfaces.DistantClass");
Run Code Online (Sandbox Code Playgroud)

没有成功ClassNotFoundException.远程班级的完整路径是:

C:/dir/distantinterfaces/DistantClass.class
Run Code Online (Sandbox Code Playgroud)

java class classpath classloader classnotfoundexception

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

从Scala宏更改编译器的类路径?

假设我们想要require在Scala中构建一个类似于许多脚本语言的功能.

如果我们需要像这样的图书馆......

require("some-library.jar")
Run Code Online (Sandbox Code Playgroud)

...当执行require宏时,我们需要一种方法将此jar添加到编译器的类路径中.如何才能做到这一点?

macros scala classpath scala-2.10

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

Scala初学者在多个文件上编译和运行scala程序

我正在研究ScalaInAction中的示例,我无法运行遍布多个文件并放在单个包中的示例.

这是代码.

mongoclient.scala


package com.scalainaction.mongo
import com.mongodb._

class MongoClient(val host:String, val port:Int) {
    require(host != null, "You have to provide a host name")
    val underlying = new com.scalainaction.mongo.Mongo
    def this() = this("127.0.0.1", 27017)
    def version = underlying.getVersion
    def dropDB(name:String) = underlying.dropDatabase(name) 
    def createDB(name:String) = DB(underlying.getDB(name)) 
    def db(name:String) = DB(underlying.getDB(name))
}


DB.scala


package com.scalainaction.mongo
import com.mongodb.{DB => MongoDB}
import scala.collection.convert.Wrappers._

class DB private(val underlying: MongoDB) {
    private def collection(name: String) = underlying.getCollection(name)
    def readOnlyCollection(name: String) = new DBCollection(collection(name)) 

    def administrableCollection(name: String) …
Run Code Online (Sandbox Code Playgroud)

scala compilation classpath

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

让sbt在类路径上放置javadoc和依赖源

使用托管依赖项时,我可以告诉sbt下载javadoc和源代码:

"mygroup" % "mymodule" % "myversion" withJavadoc() withSources()
Run Code Online (Sandbox Code Playgroud)

但是这些jar似乎不在运行时类路径上?

我想做的是从我的应用程序访问javadocs和源代码.我可以将这些罐子显示为托管资源,这样我就能做到

ClassLoader.getSystemClassLoader.getResource("/my/package/MyDependency.scala")
Run Code Online (Sandbox Code Playgroud)

?

resources scala classpath sbt

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

与ant和java的windows classpath问题

我已经在这些战壕中战斗了一段时间,但尚未开始工作.在SO以及其他类似博客或此SO帖子中使用了很多示例,我仍然无法超越Windows类路径限制.我目前正在处理一个在我的源代码中运行java类中的单个main方法的ant任务.如果我能在这里工作,我可以在其他地方推断.

首先,我原来的相关构建任务

<path id="code.classpath">
    <path id="code.classpath">
    <path refid="jars.code"/>
    <path refid="jars.common"/>
    <path refid="jars.servlet-api"/>
    <dirset dir="${code.dir}" excludes="xlib/scripts/**"/>
</path>
<target name="code.exec" description="Execute a class file">
    <echo>${code}</echo>
    <input addproperty="code.exec.class">Enter full class name (e.g. ${atmr.pkg}.FooBar):</input>
    <input addproperty="code.exec.args">Enter arguments:</input>
    <java classname="${code.exec.class}"
          fork="true"
          dir="${code.src.dir}"
          failonerror="true"
          classpathref="code.classpath">
        <jvmarg value="-Xmx4048M"/>
        <jvmarg value="-ea"/>
        <jvmarg value="-Dlog4j.configuration=file:${basedir}/log4j.xml"/>
        <syspropertyset refid="proxy.properties"/>
        <assertions refid="code.exec.assertions"/>
        <arg line="${code.exec.args}"/>
    </java>
</target>
Run Code Online (Sandbox Code Playgroud)

接下来,我最近尝试解决方案

<path id="code.source">
    <dirset dir="${code.dir}" excludes="xlib/scripts/**"/>
</path>

<target name="code.classpath.acme">
    <manifestclasspath property="jar.classpath" jarfile="${app.dir}/acme.jar">
        <classpath refid="code.source"/>
    </manifestclasspath>

    <jar destfile="${app.dir}/acme.jar" index="true">
        <manifest>
            <attribute name="Class-Path" value="${jar.classpath}"/>
        </manifest> …
Run Code Online (Sandbox Code Playgroud)

java ant jar manifest classpath

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