JNI���ȒP��Java��C/C++���Ȃ��uJNA�v�Ƃ�
�x�m�\�t�g�������
���� ��
2009/12/14
C/S�ł́A�T�[�o�T�C�h��C/C++���܂��܂����
�@�C���^�[�l�b�g�̕��y�ɉ����āA���b�`�N���C�A���g�^RIA�̔��W�ƂƂ��ɁA�A�v���P�[�V�����̌`�Ԃ́AC/S�i�N���C�A���g/�T�[�o�j�V�X�e������AWeb�A�v���P�[�V�����V�X�e���ɃV�t�g���Ă��܂��B��ʂ̏�M�V�X�e�������ł͂Ȃ��A��Ƃ̊���V�X�e���܂ŁA�����Web�A�v���P�[�V�����ō\�z����悤�ɂȂ�܂����B
�@���̕ω��̎���ł���Ƃ�����AJava�Z�p�́AWeb�A�v���P�[�V�����V�X�e���̔��W�ƂƂ��ɁA�l�b�g���[�N�̐e�a����A�v���b�g�t�H�[���K�p�̑��l���ŁA�L��������āAWeb�A�v���P�[�V�����V�X�e���J���̊�ՋZ�p�ɂȂ��Ă��܂��B
�@����܂ł�C/S�V�X�e���ł́A�T�[�o���W�b�N��C/C++�Ŏ��������P�[�X����ʓI�ł����BC/S�V�X�e������Web�A�v���P�[�V�����V�X�e���ɃV�t�g����ۂɁAJava�Z�p�����邱�Ƃ����߂��ꍇ�AJava�Z�p�ŁA���ׂĐV�K�J������̂�1�̑I�����ł����A�����ڍs���邽�߂ɁA�����̃\�t�g�E�F�A���Y���ė��p����̂��A����1�̑I�����ł��傤�B
�� �\����Java�A������C/C++�Ƃ������K�V�[�ڍs
�@�܂�AWeb�v���[���e�[�V�����T�[�r�X�w��Java�Z�p�Ŏ������āA�r�W�l�X���W�b�N�w�͈��肵��C/C++�ŏ����ꂽ�������W���[�����ė��p���܂��B���̂Ƃ��AJava��Web�v���[���e�[�V�����T�[�r�X�w��C/C++�̃r�W�l�X���W�b�N�w��A�g���邽�߂ɁAJava����C/C++�̃l�C�e�B�u���C�u����API���Ăяo���Z�p���K�v�ł��B
�@����AJava�Z�p�̔��W��A�v���b�g�t�H�[���̑��l���ƂƂ��ɁAWeb�T�[�o���W�b�N�̎��������ł͂Ȃ��AJava�Z�p��GUI�A�v���P�[�V�������J������P�[�X�������Ă��܂��B�������Ȃ���A�v���b�g�t�H�[����OS��A�f�o�C�X�h���C�o�Ȃǂ��قƂ��C++�ŏ�����Ă��錻��ŁA�l�C�e�B�uAPI�𗘗p����ɂ́A��͂�Java����C/C++�̃l�C�e�B�u���C�u����API���Ăяo���Z�p���K�v�ł��B
�� �uJNI�v���ĂȂ����������H
�@�����̃A�v���P�[�V�����V�X�e���\�z�ɂ����鋤�ʓ_�́AJava����C/C++�̃l�C�e�B�u���C�u����API���Ăяo���Z�p���K�v�ɂȂ邱�Ƃł���AJava�Z�p�ł́A�����̃j�[�Y�������߂ɁAJNI�iJava Native Interface�j�d�l�Ǝ�������Ă��܂��B
�@�������A���ۂɃR�[�f�B���O�����Ă݂�ƁA�ώG�ŁA�Ȃ��܂Ȃ��R�[�f�B���O���������āA���\�b�h�̃}�b�s���O��f�[�^�̃}�b�s���O�ɒǂ��Ă��܂��A�̐S�ȃr�W�l�X���W�b�N�ɏW���ł��܂���B���p�̃n�[�h���͍����A�g�[�^���ł̓V�X�e���J���̐��Y�������҂����ʂ�ɂ͂Ȃ炸�A����ɃV�X�e���S�̂̕ێ琫�ቺ���������܂��B
�@�{���W�ł́A�V�X�e���J���̐��Y������̂��߂ɒ���JNI�𗘗p�����A��r�I���p�n�[�h�����ႢJNA�iJava Native Access�j���C�u�����𗘗p������@���Љ�܂��B�Ȃ��AC/C++�ɂȂ��݂̂Ȃ��ǎ҂͉��L�L�����Q�Ƃ��Ă����Ă��������B
JNI���g���₷�������uJNA�v�Ƃ�
�@JNA�Ƃ́A����JNI�𗘗p�����AJava�v���O�������ȒP�Ƀl�C�e�B�u���C�u�����i.dll�A���邢�́A.so�j�����L������@����郉�C�u�����ł��B
�@�@�\�I�ɂ́A.NET��P/Invoke�iPlatform Invoke�j��APython��ctypes�Ɨގ����Ă��܂��B���ʏ������K�v�ƂȂ�z��Ȃǂ̕��G�ȃf�[�^�^���g���ꕔ��API�������AC/C++�̃R�[�h���������AJava�v���O�������l�C�e�B�u���C�u����API���Ăяo����̂ŁA�V�X�e���J���̐��Y�������サ�܂����A�ێ琫���ቺ���邱�Ƃ�����܂���B
���W�F.NET Framework SDK�Ŏn�߂�.NET�v���O���~���O�i�O�ҁj�@�V�DHello World�W����i4�j�|�}�l�[�W�h C++�| via kwout
�� �T�|�[�g����v���b�g�t�H�[��
�@���ɁAJNA��p���ĊJ������GUI�A�v���P�[�V�����́A�����I�Ƀ}���`�v���b�g�t�H�[���ɑΉ����邽�߁A�v���b�g�t�H�[�����ӎ������J���ł��܂��BJNA�T�C�g�ɂ��ƁAJNA�͈ȉ��̃v���b�g�t�H�[�����T�|�[�g���Ă��܂��B
- Windows�ix86�Ax86_64�j
- Linux�ix86�AAMD64�j
- FreeBSD/OpenBSD�ix86�AAMD64�j
- Solaris�ix86�AAMD64�ASPARC�ASPARC V9�j
- Mac OS X�iPPC�Ax86�Ax86-64�j
�@�ŋߐl�C�̃��o�C���v���b�g�t�H�[��Android�ɑ���T�|�[�g�ɂ��Ă��b��ƂȂ��Ă��āA�����ɂ͗��p�ł��邱�Ƃ����҂������ł��B�ŋ߂��g�ݍ��ݕ���ł�Java���i�o���Ă��Ă��āA�K�p����͍L���Ǝv���܂��B �ق��ɂ��A���܂��܂ȂƂ���Ŏg���Ă���̂ŁA����v���ڂ̃��C�u�����Ƃ�����ł��傤�B
�� JNA�̐�������
�@JNA�́A���T���E�}�C�N���V�X�e���Y�̊J���҂�NetBeans IDE���J�����邽�߂ɁA�J������܂����B���߂Č��J���ꂽ�̂�1999�N�ł�����A���ł�10�N�ȏ�o�߂��Ă���A2006�N�ɃI�[�v���\�[�X�Ƃ��Ĕ��\����܂����B�Ȍ���A�@�\�����₳��A�T�|�[�g����v���b�g�t�H�[���������A�C�O�ł͑����ȃv���W�F�N�g�ɍ̗p����Ă��܂��B���݂��A�V���������[�X�����X���J����Ă���A�����ɊJ���������Ă��܂��B
�� JNI���x�[�X��
�@JNA�́AJNI���x�[�X�Ƃ��Ă��܂��B�]���āA���\�ʂł�JNI���I�[�o�[�w�b�h�������Ǝv���܂��B�������AJNA�̓��������ł́A�f�[�^�^�̕ϊ��͍œK������Ă��܂��̂ŁAJNI��p���鎩�O�������A�K�����Ƃ͂����܂���B
�@�܂��A�n�[�h�E�F�A���\�̐i���������āA�ނ���V�X�e���J���̐��Y���������S����D�悷�邱�Ƃ��l������ł��傤�B
�� JNA�̎�ȋ@�\
�@�N���X�v���b�g�t�H�[���⌾��Ԃ̌Ăяo���ɂ́A�f�[�^�^�̃}�b�s���O�ƃ��\�b�h�i���j�̃}�b�s���O���A��Ȏ��������ł��BJNA�́A�J���҂̕��S���y�����邽�߂ɁA�ȉ��̎�ȋ@�\����A�����T�|�[�g���Ă���܂��B
- �l�C�e�B�u���C�u�����̃}�b�s���O
- �l�C�e�B�u���\�b�h�iAPI�j�̃}�b�s���O
- �f�[�^�̃}�[�V�������O�i�e�v���O���~���O����̃l�C�e�B�u�ȃf�[�^�\�������ʃf�[�^�`���ɕϊ����鏈���j
�@�f�[�^�̃}�[�V�������O�ł́A�قƂ�ǂ̃v���~�e�B�u�ȃf�[�^�^�͎����I�Ƀ}�b�s���O���Ă���܂��B�������A�z��^��l�X�g�\���̃f�[�^�^�Ȃǂ́AC��Java�̔z��ɑ���������@�̍��ق�����̂ŁA�f�[�^���}�b�s���O���邽�߂̕⏕���[�e�B���e�B�𗘗p���Ď��O�Ŏ�������K�v������܂��B����ɂ��ẮA��ŏڂ����Љ�܂��B
�� JNA�̓���
�@JNA�́AJNA�̃T�C�g����_�E�����[�h�ł��܂��B2009�N11���̌��e���M�����݂̍ŐV�o�[�W������3.2.3�ŁA�̗p���Ă��郉�C�Z���X��LGPL 2.1�܂��͂���ȍ~�ł��B
�� JNA�𗘗p����J�����̍\�z
�@�_�E�����[�h������A�C���X�g�[����Ƃ͕K�v����܂���B���肵���ujna.jar�v�t�@�C�����J������A�v���P�[�V�������O�����C�u�����Ƃ��āA�P�����N���X�p�X��ʂ������ł��B
�@jna.jar�p�b�P�[�W�́A�f�[�^�}�b�s���O�p��Java�T�u�p�b�P�[�W���������܂݂܂��B���̂ق��AWindows��Solaris��Linux�Ȃǂ̃v���b�g�t�H�[���̃l�C�e�B�u���C�u����API�Ƀf�B�X�p�b�`���邽�߂̃��C�u�����i.dll��.so�j���܂܂�܂��B
1-2-3-4 |
�@INDEX�@���W�u�g�ݍ��݂ɂ��𗧂�Java�ƃl�C�e�B�u�R�[�h�̋��n���v | ||
Page1 | ||
C/S�ł́A�T�[�o�T�C�h��C/C++���܂��܂���� JNI���g���₷�������uJNA�v�Ƃ� |
||
Page2 | ||
JNA�𗘗p���邽�߂̊�{�I�ȗ��� Java��C/C++�̃}�b�s���O���@�A6�p�^�[�� �@�y1�z���C�u�����̃}�b�s���O �@�y2�zAPI�̃}�b�s���O �@�y3�z�v���~�e�B�u�f�[�^�^�̃}�[�V�������O |
||
Page3 | ||
�@�y4�z�\���̌^�̃}�b�s���O �@�y5�z�z��^�̃}�b�s���O |
||
Page4 | ||
�@�y6�z����q�\���̌^�̃}�b�s���O JNA�A�v���P�[�V�����̃A�[�L�e�N�`�� JNI�����ێ琫�����߂�JNA |
Java Solution�S�L���ꗗ |
- ���^�p�̏�Q�Ή����Ԕ�r�Ɍ���A���O�Ǘ���Ղ̌��� �i2017/5/9�j
�@���O��Ղ̍\�z���@�◘�p���@�A���ۂ̈Č��Ŏg�����Ƃ��̎���Ȃǂ��Љ��A�ځB����́A���Č�������Ƃ��A���O�Ǘ���Ղ̗L�p�����A��Q�Ή����Ԕ�r�������ďЉ� - Chatwork�ALINE�ANetflix���i�߂郊�A�N�e�B�u�V�X�e���Ƃ͉��� �i2017/4/27�j
�@�u���A�N�e�B�u�v�Ɋ֘A�������̗p��ɂ��ĉ�����A���A�N�e�B�u�V�X�e�����������邽�߂̃��C�u�������Љ�܂� - Fluentd�{Elasticsearch�{Kibana�ō�郍�O��Ղ̊T�v�ƍ\�z���@ �i2017/4/6�j
�@���O��Ղ���������Fluentd�{Elasticsearch�{Kibana�ɂ��āA�\�z���@�◘�p���@�A���ۂ̈Č��Ŏg�����Ƃ��̎���Ȃǂ��Љ��A�ځB����́A���O��Ղ̍\�z�A���p���@�ɂ��� - �v���O���~���O�ƃr���h�AAndroid�A�v���J���AJava�̊�b�m�� �i2017/4/3�j
�@���S�҂��AJava������g����Android�̃X�}�z�A�v���J����ʂ��ăv���O���~���O�Ƃ͉������w�ԘA�ځB����́A�v���O���~���O�ƃr���h�AAndroid�A�v���J���AJava�Ɋւ����b�m�����������B
|
|