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]
>
>