please check out the jni example on solaris under native-maven-plugin/src/it/jni
On 6/21/06, dan tran <[EMAIL PROTECTED]> wrote:
latest snapshot is at http://snapshots.repository.codehaus.org/ -D On 6/21/06, dan tran <[EMAIL PROTECTED]> wrote: > > also you dont need linkerSecondaryOutputExtensions tag ( windows only > ) > > -D > > > On 6/21/06, dan tran <[EMAIL PROTECTED]> wrote: > > > > Your stacktrace is not long enough to find out the exact cause. > > > > Also, your <javahOS>Solaris</javahOS> is wrong, it should be > > > > <javahOS>solaris</javahOS> > > > > > > -Dan > > > > > > On 6/21/06, TimHedger <[EMAIL PROTECTED] > wrote: > > > > > > > > > I'm trying to build using the mojo native plugin and to build a jni > > > file from > > > a compiled class. > > > > > > In my existing build process this is the command I use: > > > /usr/java1.4.1_02_32/bin/javah -jni -classpath > > > /home/hedgert/work/javautil/classes -o > > > /home/hedgert/work/javautil/gen/rbos/fm/mktrisk/sql/BcpBase.h > > > rbos.fm.mktrisk.sql.BcpBase > > > > > > I've configured maven and the plugin and this is the command it > > > shows it > > > executes in the debug output: > > > [INFO] /usr/java1.4.1_02_32/jre/../bin/javah -d > > > /home/hedgert/maven/javabcp/target/native/javah -classpath > > > > > > /home/hedgert/.m2/repository/rbos/fm/mktrisk/javabcpbase/1.0-SNAPSHOT/javabcpbase- > > > 1.0-SNAPSHOT.jar > > > rbos.fm.mktrisk.sql.BcpBase > > > > > > It's almost the same; the -jni option is missing and instead of > > > specifying > > > an output file with -o, this specifies an output directory (-d) > > > which means > > > that the filename is different (in my build I get BcpBase.h, from > > > the maven > > > build command I get rbos_fm_mktrisk_sql_BcpBase.h. > > > > > > The main point is when I run the maven produced command by hand > > > (even though > > > the options are slightly different) I do get a .h file produced as > > > an output > > > (and the command exits with a zero return code). > > > > > > But maven isn't happy - this is (an extract from) the maven output: > > > ... > > > [INFO] snapshot > > > org.codehaus.mojo.natives:maven-native-manager:1.0-alpha-1-SNAPSHOT: > > > checking for updates from Maven Snapshots > > > [INFO] snapshot > > > org.codehaus.mojo.natives:maven-native-manager:1.0-alpha-1-SNAPSHOT: > > > checking for updates from snapshots > > > [INFO] [native:javah {execution: javah}] > > > [INFO] /usr/java1.4.1_02_32/jre/../bin/javah -d > > > /home/hedgert/maven/javabcp/target/native/javah -classpath > > > /home/hedgert/.m2/repository/rbos/fm/mktrisk/javabcpbase/1.0-SNAPSHOT/javabcpbase- > > > 1.0-SNAPSHOT.jar > > > rbos.fm.mktrisk.sql.BcpBase > > > [INFO] [native:compile] > > > [INFO] > > > > > > ------------------------------------------------------------------------ > > > [ERROR] FATAL ERROR > > > [INFO] > > > ------------------------------------------------------------------------ > > > > > > [INFO] null > > > [INFO] > > > > > > ------------------------------------------------------------------------ > > > [INFO] Trace > > > java.lang.NullPointerException > > > at > > > org.codehaus.mojo.natives.NativeSources.appendSourceList( > > > NativeSources.java :106) > > > at > > > org.codehaus.mojo.natives.NativeSources.getAllSourceFiles( > > > NativeSources.java:155) > > > ... > > > > > > I'm not sure why the plugin isn't happy and blows up - can you help? > > > > > > This is the pom file I'm using (which was derived from the example > > > file on > > > the plugin web site): > > > <project xmlns="http://maven.apache.org/POM/4.0.0" > > > xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance " > > > xsi:schemaLocation=" http://maven.apache.org/POM/4.0.0 > > > http://maven.apache.org/maven-v4_0_0.xsd"> > > > <modelVersion>4.0.0</modelVersion> > > > <groupId>rbos.fm.mktrisk</groupId> > > > <artifactId>javabcp</artifactId> > > > <packaging>so</packaging> > > > <version>1.0-SNAPSHOT</version> > > > <name>Maven Quick Start Archetype</name> > > > <url>http://maven.apache.org</url> > > > <dependencies> > > > <dependency> > > > <groupId> rbos.fm.mktrisk</groupId> > > > <artifactId>javabcpbase</artifactId> > > > <version>1.0-SNAPSHOT</version> > > > <scope>compile</scope> > > > </dependency> > > > <!--add other native libs to be linked in--> > > > </dependencies> > > > <build> > > > <plugins> > > > <plugin> > > > <groupId>org.codehaus.mojo </groupId> > > > <artifactId>native-maven-plugin</artifactId> > > > <extensions>true</extensions> > > > <configuration> > > > <compilerProvider>generic</compilerProvider> > > > <compilerStartOptions> > > > <compilerStartOption>-Dsun_svr4=1 > > > -DSOLARIS</compilerStartOption> > > > </compilerStartOptions> > > > <javahOS>Solaris</javahOS> > > > <sources> > > > <source> > > > <directory></directory> > > > <fileNames> > > > <fileName>exutils.c</fileName> > > > <fileName> Blk.c</fileName> > > > </fileNames> > > > </source> > > > <!-- additional include path > > > (source)(directory)xx(/directory)</source)--> > > > <!-- additional system include path --> > > > <source> > > > <directory> /home/hedgert/work/javautil/include > > > </directory> > > > <directory> > > > /opt/sybaseSW/sybase12.5/OCS-12_0/sample/dblibrary </directory> > > > > > > > > > <dependencyAnalysisParticipation>false</dependencyAnalysisParticipation> > > > </source> > > > </sources> > > > > > > <!-- deploy the accompany .lib file as well --> > > > > > > <linkerSecondaryOuputExtensions>so</linkerSecondaryOuputExtensions > > > > > > > <linkerStartOptions> > > > <linkerStartOption> -G -lblk -lct -lcs -ltcl -lcomn > > > -lintl > > > -Bdynamic -lnsl -ldl -lm </linkerStartOption> > > > </linkerStartOptions> > > > </configuration> > > > > > > <!-- Generate JNI header files based on a list of class name > > > on the > > > classpath --> > > > <!-- The generated include directory is automatically added > > > to > > > include path at compile phase --> > > > <!-- Ensure to have appropriate denpendency jar file(s) in > > > your pom > > > --> > > > > > > <executions> > > > <execution> > > > <id>javah</id> > > > <phase>generate-sources</phase> > > > <configuration> > > > <classNames> > > > <className>rbos.fm.mktrisk.sql.BcpBase</className> > > > </classNames> > > > <!-- > > > | Note: > > > | 1. Without classNames, javah mojo will search > > > for all > > > JNI classes > > > | in your dependency list. > > > --> > > > </configuration> > > > <goals> > > > <goal>javah</goal> > > > </goals> > > > </execution> > > > </executions> > > > </plugin> > > > </plugins> > > > </build> > > > </project> > > > > > > NB I'm aware I'm using the mojo native plugin, I'd be very happy to > > > use the > > > standard one, but I can't find similar configuration/documentation > > > information that I'd need to get my example up and running. Any > > > suggestions > > > much appreciated. > > > -- > > > View this message in context: > > > http://www.nabble.com/Can%27t-get-jni-working-based-on-example-configuration-t1825144.html#a4978401 > > > Sent from the Maven - Users forum at Nabble.com <http://nabble.com/> > > > . > > > > > > > > > --------------------------------------------------------------------- > > > > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > >
