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.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Reply via email to