![](/img/trans.png)
[英]How to make the runnable jar file for a maven eclipse project with hibernate configuration
[英]how to make runnable jar for javaCV or openCV project from Eclipse
我在Eclipse中有一個openCV項目。 現在,一旦嘗試運行jar,我就試圖使其成為可運行的Jar,但無法啟動它。 我嘗試了以下操作-https://groups.google.com/forum/#!topic/javacv/ziqKIb7PgYk
但是我聽不懂 任何人都可以解釋做有需要的人的正確方法。
在我的系統中,已安裝OpenCV。 一旦我嘗試從eclipse運行項目,一切都會正常進行。 但是,當我嘗試從runnabelJar執行相同操作時,它沒有。 我發現我沒有包含.dll文件的問題,所以應該怎么做。
我終於找到了解決方案。 是的,我們可以在使用javaCV時輕松地從eclipse中創建Runnable jar,而無需ant或maven構建。
無需使用OpenCV設置類路徑,您僅使用javaCV且無意進行jni構建。
就是這樣,工作完成,現在制作了Runnable jar或其他任何東西,它將像魅力一樣工作。
一旦向任何用戶提供了可運行的jar,則應在類路徑中設置用戶的openCV路徑,或者提供dll,然后將庫加載到任何靜態塊中。
使用ANT構建jar(對於Javacv 0.9):
安裝opencv(和/或ffmpeg)
從https://github.com/bytedeco/javacv下載javacv
創建一個Java項目,並在根目錄中創建目錄“ lib”,“ lib32”和“ lib64”,並將x64 jars從javacv添加到lib64-lib32和lib64中沒有位版本的其他相同
將以下jar添加到項目的buildpaht中(添加外部JAR ...),並設置opencv(和/或ffmpeg)的本機庫路徑
public class Main {
public static void main(String[] args) throws Exception, IOException {
OpenCVFrameGrabber frameGrabber = new OpenCVFrameGrabber(new File(".\\tmp_files\\small.mp4"));
frameGrabber.start();
IplImage origImg = frameGrabber.grab();
//create canvas frame named 'Demo'
final CanvasFrame canvas = new CanvasFrame("Demo");
//Show image in canvas frame
canvas.showImage(origImg);
//This will close canvas frame on exit
canvas.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
}
}
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project basedir="." default="main" name="Main">
<property environment="env"/>
<property name="debuglevel" value="source,lines,vars"/>
<property name="target" value="1.6"/>
<property name="source" value="1.6"/>
<property name="build.dir" value="bin"/>
<property name="src.dir" value="src"/>
<property name="lib.dir" value="lib"/>
<property name="lib32.dir" value="lib32"/>
<property name="lib64.dir" value="lib64"/>
<property name="classes.dir" value="${build.dir}/classes"/>
<property name="jar.dir" value="${build.dir}/jar"/>
<property name="jar.file" value="${jar.dir}/buildOpenCvTest32_64.jar"/>
<property name="manifest.file" value="${jar.dir}/MANIFEST.MF"/>
<property name="main.class" value="test.Main"/>
<path id="external.jars">
<fileset dir="${lib.dir}" includes="**/*.jar"/>
<fileset dir="${libV.dir}" includes="**/*.jar"/>
</path>
<path id="project.classpath">
<pathelement location="${src.dir}"/>
<path refid="external.jars" />
</path>
<target name="init">
<mkdir dir="${build.dir}"/>
<mkdir dir="${classes.dir}"/>
<mkdir dir="${jar.dir}"/>
<copy includeemptydirs="false" todir="${build.dir}">
<fileset dir="${src.dir}">
<exclude name="**/*.launch"/>
<exclude name="**/*.java"/>
</fileset>
</copy>
</target>
<target name="clean">
<delete dir="${build.dir}"/>
</target>
<target name="cleanall" depends="clean"/>
<target name="build" depends="init">
<echo message="${ant.project.name}: ${ant.file}"/>
<javac debug="true" debuglevel="${debuglevel}" destdir="bin" source="${source}" target="${target}" classpathref="project.classpath">
<src path="${src.dir}"/>
</javac>
</target>
<target name="build-jar" depends="build">
<delete file="${jar.file}" />
<delete file="${manifest.file}" />
<manifest file="${manifest.file}" >
<attribute name="built-by" value="${user.name}" />
<attribute name="Main-Class" value="${main.class}" />
</manifest>
<jar destfile="${jar.file}"
basedir="${build.dir}"
manifest="${manifest.file}">
<fileset dir="${classes.dir}" includes="**/*.class" />
<zipgroupfileset dir="${lib.dir}" includes="**/*.jar" />
<zipgroupfileset dir="${lib32.dir}" includes="**/*.jar" />
<zipgroupfileset dir="${lib64.dir}" includes="**/*.jar" />
</jar>
</target>
<target name="main" depends="build-jar">
<description>Main target</description>
</target>
</project>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.