栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java 利用JavaCPP 调用算法

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java 利用JavaCPP 调用算法

配置liunx 环境系统
配置so 文件存放路径
[root@arch2 ~]# cat /etc/ld.so.conf.d/so.conf 
/opt/app/tools/so/

从新调用ldconfig 命令
ldconfig
配置java 项目
  • 配置pom 文件



	4.0.0

	org.jacdong
	javacpptest
	0.1-SNAPSHOT
	
   
   
        ${basedir}/cppbuild
        UTF-8
        true
         
        false
             
        true
         
        ${project.artifactId}
        
        
        
        linux-x86
        linux-x86_64
        linux-x86_64

        true

    

	
		
			org.bytedeco
			javacpp
			1.5.3
		
		
		
			junit
			junit
			4.12
			test
		
	

	
		
            
                maven-compiler-plugin
            
            
                maven-jar-plugin
                3.1.0
            
            
                org.apache.maven.plugins
                maven-dependency-plugin
                2.10
            
            
                org.bytedeco
                javacpp
                1.5.3
                
                    ${javacpp.platform}
                    
                        
                            platform.root
                            ${javacpp.platform.root}
                        
                        
                            platform.compiler
                            ${javacpp.platform.compiler}
                        
                        
                            platform.extension
                            ${javacpp.platform.extension}
                        
                    
                    ${project.build.outputDirectory}
                    
                        ${basedir}/src/main/resources/linux-x86_64
                    
                    
                    
                
                
                    
                        javacpp.parser
                        generate-sources
                        
                            build
                        
                        
                           false
                            ${project.build.sourceDirectory}
                            com.jacdong.preset.*
                        
                    
                
            
            
                maven-surefire-plugin
                2.9
                
                    once
                    
                        target/classes/linux-x86_64
                    
                
            
			
				org.codehaus.mojo
				exec-maven-plugin
				1.1
				
					
						build-jnilib
						process-classes
						
							exec
						
						
							java			
                            -jar ./libs/javacpp-1.5.jar -Xcompiler -g -Xcompiler -ggdb -nodelete -d target/classes/linux-x86_64 -Xcompiler -I${env.JAVA_HOME}/include -Xcompiler -I${env.JAVA_HOME}/include/linux -Xcompiler -fvisibility=default -Xcompiler -rdynamic -Xcompiler -std=c++11 -classpath target/classes com.jacdong.wrapper.JavaCPPTest 
 						
					
					
					
                        echoPath
                        install
                        
                            exec
                        
                        
                            echo
                            "sudo cp ${basedir}/target/classes/linux-x86_64/*.so /usr/lib/;sudo ldconfig"

                        
                    
				
			
			
				maven-clean-plugin
				3.1.0
				
					
						
							src/main/java/com/jacdong/rtcm/wrapper/
							
								JavaCPPTestTmp.java
							
							false
						
					
				
			
		
		
			
				
				
					org.eclipse.m2e
					lifecycle-mapping
					1.0.0
					
						
							
								
									
										org.bytedeco
										javacpp
										
											[1.5.3,)
										
										
											build
										
									
									
										
									
								
								
									
										
											org.codehaus.mojo
										
										
											exec-maven-plugin
										
										
											[1.1,)
										
										
											exec
										
									
									
										
									
								
							
						
					
				
			
		
	

配置文件当中需要主要的几点


    false
    ${project.build.sourceDirectory}                         	             com.jacdong.preset.* 


	java			
    -jar ./libs/javacpp-1.5.jar -Xcompiler -g -Xcompiler -ggdb -nodelete -d target/classes/linux-x86_64 -Xcompiler -I${env.JAVA_HOME}/include -Xcompiler -I${env.JAVA_HOME}/include/linux -Xcompiler -fvisibility=default -Xcompiler -rdynamic -Xcompiler -std=c++11 -classpath target/classes com.jacdong.wrapper.SingleStationIono 

定义自己的map 类
@Properties(target = "com.jacdong.wrapper.JavaCPPTestTmp",
value = {@Platform(include = {"javacpp.h"},
        compiler = "cpp11")})
public class JavacppMapper implements InfoMapper{

	public void map(InfoMap infoMap) {
        infoMap.put(new Info().cppNames("_stdcall").skip())
        .put();
}

}
注意点

在利用javacpp 的时候,经常会出现找不到so 文件的情况,这个时候,大家可以把so 文件copy 到/usr/lib 目录下,然后更改相应的权限。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/350920.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号