Je suis en train d'expérimenter avec l'aide de la JNI et 9. Je JDK une classe NativeTest.java
qui ressemble à ceci:javac « aucun fichier source » lors de l'utilisation option -h
public class NativeTest {
static {
System.loadLibrary("hello");
}
private native void sayHello();
public static void main(String[] args) {
new NativeTest().sayHello();
}
}
compiler la classe, puis utilisez javah NativeTest
pour générer le fichier d'en-tête.
Lors de la délivrance javah
, je reçois cet avertissement:
Warning: The javah tool is planned to be removed in the next major
JDK release. The tool has been superseded by the '-h' option added
to javac in JDK 8. Users are recommended to migrate to using the
javac '-h' option; see the javac man page for more information.
Je sais que ce sera un bon moment avant la prochaine version majeure JDK, mais je pensais que je commence à m'y habituer à cette nouvelle option maintenant .
donc à essayer javac -h NativeTest.java
(et d'autres variations comme NativeTest
, NativeTest.class
, etc.) Je continue à obtenir cette erreur:
javac: no source files
Je n'ai pas été en mesure de trouver une aide en ligne, probablement parce que cela La fonctionnalité est relativement nouvelle, et je ne trouve rien à propos de cette nouvelle option -h
dans la page de manuel.
Quelqu'un d'autre l'a déjà essayé? Qu'est-ce que je rate?
Ah, passons, je l'ai trouvé. Vous devez spécifier le répertoire dans lequel placer les fichiers d'en-tête. 'javac -h. NativeTest.java'. Je vais laisser la question au cas où quelqu'un d'autre se heurterait au même oubli. –
Vous pouvez répondre à votre propre question et la marquer comme réponse acceptée. Cela permettra de réduire le nombre de questions sans réponse. – cup