Как создать h-файлы со стабильными именами с помощью javacJAVA

Программисты JAVA общаются здесь
Anonymous
Как создать h-файлы со стабильными именами с помощью javac

Сообщение Anonymous »

У меня есть класс Java, который начинается с

Код: Выделить всё

package examples.logging;

public class FastLogging {

// Logging class

public static native long logging_new(int level, String domain, boolean console, String file, String server,
String connect, int max_size, int backlog);

public static native void logging_set_level(long instance_ptr, int level);
...
Когда я запускаю javac -h . example/logging/FastLogging.java Я получаю следующий результат:

Код: Выделить всё

/* DO NOT EDIT THIS FILE - it is machine generated */
#include 
/* Header for class examples_logging_FastLogging */

#ifndef _Included_examples_logging_FastLogging
#define _Included_examples_logging_FastLogging
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class:     examples_logging_FastLogging
* Method:    logging_new
* Signature: (ILjava/lang/String;ZLjava/lang/String;Ljava/lang/String;Ljava/lang/String;II)J
*/
JNIEXPORT jlong JNICALL Java_examples_logging_FastLogging_logging_1new
(JNIEnv *, jclass, jint, jstring, jboolean, jstring, jstring, jstring, jint, jint);

/*
* Class:     examples_logging_FastLogging
* Method:    logging_set_level
* Signature: (JI)V
*/
JNIEXPORT void JNICALL Java_examples_logging_FastLogging_logging_1set_1level
(JNIEnv *, jclass, jlong, jint);
...
Как избежать того, что javac вставляет «1» в имена созданных функций, например Java_examples_logging_FastLogging_logging_1set_1level?


Подробнее здесь: https://stackoverflow.com/questions/784 ... sing-javac

Вернуться в «JAVA»