我正在使用JavaLoader.cfc。我之前使用过它,但我很难理解如何让这些库中的一个响应我。
我已将JAR文件放入我的java文件夹中。我创建了“JavaLoader”对象并将“路径”传递给它。但它一直说它无法在jar文件中找到类名或沿着那些行找到...
找不到请求的课程。请求的课程 在加载中找不到
opennlp.tools.sentdetect
罐子/目录。
我认识到,对于Java以及如何将其与ColdFusion联系起来,我总是n00b。我确定这是一件很蠢的事情,如果我知道我可能会使用任何JAR文件......
如果可以,请帮忙!
答案 0 :(得分:0)
此处也没有Java专家,但我确实通过遵循光线说明here让POI工作。有两篇文章。他介绍了如何设置Javaloader
答案 1 :(得分:0)
我检查了OpenNLP javadocs here,似乎 opennlp.tools.sentdetect 没有构造函数,这就是它返回错误的原因。你想打电话给哪种方法?
我做了一个简单的例子来检测句子,但为此你需要提供英语模型here:
<cfscript>
// load NLP jar libraries
sourcePaths = [expandPath("opennlp-tools-1.5.0\opennlp-tools-1.5.0.jar"),expandPath("opennlp-tools-1.5.0\lib\maxent-3.0.0.jar"),expandPath("opennlp-tools-1.5.0\lib\jwnl-1.3.3.jar")];
javaloader = createObject("component", "javaloader.JavaLoader").init(sourcePaths);
// load our model (here english model)
// you can create your own model using the TrainerTool
inputFile = ExpandPath("en-sent.bin");
modelIn = createObject("java", "java.io.FileInputStream").init(inputFile);
model = javaloader.create("opennlp.tools.sentdetect.SentenceModel").init(modelIn);
// let's try the sentence detector
sentenceDetector = javaloader.create("opennlp.tools.sentdetect.SentenceDetectorME").init(model);
sentences = sentenceDetector.sentDetect("I love working with Java in ColdFusion! CF rocks, really! But sometimes working with Java libraries is a bit tricky :-)");
</cfscript>
<cfdump var="#sentences#">
玩得开心! : - )
答案 2 :(得分:0)
您的问题可能只是在JAR的路径中。还要确保您将路径作为数组中的字符串传递给JAR文件。
提示1:您不需要将文件放在java文件夹中。能够将JAR文件放在任何目录(可能是应用程序根目录)中,JavaLoader为您提供了强大的功能。否则,您也可以不使用JavaLoader,只需将JAR文件放入JVM类路径中。
提示2:确保将JavaLoader初始化到服务器范围内,因为它会大大降低您的开销。