|
|
|
JNI
|
|||
|---|---|---|---|
|
#18+
Или при некоторых вариантах запустится пустое черное DOS окно и исчезнет, не оставя за собой никаких следов в виде файлов :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2006, 15:45:29 |
|
||
|
JNI
|
|||
|---|---|---|---|
|
#18+
Да. Вот мой лог из консоли: D:\Native>dir /b Native.java D:\Native>echo %JAVA_HOME% C:\jdk1.5.0_06 D:\Native>%JAVA_HOME%/bin/javac Native.java D:\Native>dir /b Native.class Native.java D:\Native>%JAVA_HOME%/bin/javah -jni Native D:\Native>dir /b Native.class Native.h Native.java D:\Native> по идее должно помочь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2006, 15:46:16 |
|
||
|
JNI
|
|||
|---|---|---|---|
|
#18+
Проверил наличие переменной окружения JAVA_HOME . Нет такой. Создал SET JAVA_HOME = C:\Program Files\Java|Developer\jdk. . Проверяю echo %JAVA_HOME% , в ответ выдает строку %JAVA_HOME% . Просмотрел список всех переменных окружения SET -там есть и в нужной форме. Чепуха. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2006, 16:09:35 |
|
||
|
JNI
|
|||
|---|---|---|---|
|
#18+
JNIПроверил наличие переменной окружения JAVA_HOME . Нет такой. Создал SET JAVA_HOME = C:\Program Files\Java|Developer\jdk. . Проверяю echo %JAVA_HOME% , в ответ выдает строку %JAVA_HOME% . Просмотрел список всех переменных окружения SET -там есть и в нужной форме. Чепуха. Так, это был мой глюк. Написал SET JAVA_HOME = C:\Program Files\Java|Developer\jdk. с пробелами с обоих сторон относительно знака "=" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2006, 16:11:44 |
|
||
|
JNI
|
|||
|---|---|---|---|
|
#18+
fooДа. Вот мой лог из консоли: D:\Native>dir /b Native.java D:\Native>echo %JAVA_HOME% C:\jdk1.5.0_06 D:\Native>%JAVA_HOME%/bin/javac Native.java D:\Native>dir /b Native.class Native.java D:\Native>%JAVA_HOME%/bin/javah -jni Native D:\Native>dir /b Native.class Native.h Native.java D:\Native> по идее должно помочь Набираю в командной строке Total commandr и Far Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2006, 16:22:49 |
|
||
|
JNI
|
|||
|---|---|---|---|
|
#18+
автор Набираю в командной строке Total commandr и Far D:\Native>%JAVA_HOME%/bin/javah -jni Native D:\Native>%JAVA_HOME%/bin/javac Native.java Не работает А в такой последовательности и не будет работать. надо: D:\Native>%JAVA_HOME%/bin/javac Native.java D:\Native>%JAVA_HOME%/bin/javah -jni Native Почему - RTFM ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2006, 16:31:14 |
|
||
|
JNI
|
|||
|---|---|---|---|
|
#18+
foo автор Набираю в командной строке Total commandr и Far D:\Native>%JAVA_HOME%/bin/javah -jni Native D:\Native>%JAVA_HOME%/bin/javac Native.java Не работает А в такой последовательности и не будет работать. надо: D:\Native>%JAVA_HOME%/bin/javac Native.java D:\Native>%JAVA_HOME%/bin/javah -jni Native Почему - RTFM Это я понял, я имел в виду, что не одна их них не работает. D:\Native>%JAVA_HOME%/bin/javah -jni Native должна работать, когда есть Native.class и Native.java . А D:\Native>%JAVA_HOME%/bin/javac Native.java достаточно только Native.class . Суть в том, что ничего это не работает. Может это быть из-за того, что java "говорит" ??? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2006, 16:37:45 |
|
||
|
JNI
|
|||
|---|---|---|---|
|
#18+
Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2006, 16:44:36 |
|
||
|
JNI
|
|||
|---|---|---|---|
|
#18+
JNI Это я понял, я имел в виду, что не одна их них не работает. D:\Native>%JAVA_HOME%/bin/javah -jni Native должна работать, когда есть Native.class и Native.java. А D:\Native>%JAVA_HOME%/bin/javac Native.java достаточно только Native.class. Суть в том, что ничего это не работает. Может это быть из-за того, что java "говорит" ??? НЕТ!!! javac - это КОМПИЛЯТОР!!!! Он из ИСХОДНОГО ТЕКСТА, КОТОРЫЙ НАХОДИТЬСЯ В Native.java(!!!), "ДЕЛАЕТ" Native.class После того, как сделан Native.class надо "скормить" его javah. Для этого исходник уже НЕ НУЖЕН! результатом выполнения javah буде Native.h Native.h надо имплементировать в device.dll - тоесть написать реализацию методов хедера. исходный код device.dll надо скомпилировать компилятором C/C++. полученную dll-ку скормить java. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2006, 16:45:52 |
|
||
|
JNI
|
|||
|---|---|---|---|
|
#18+
C этой частью разобрался! Надо было настроить переменные среды JAVA_HOME и PATH ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2006, 17:43:48 |
|
||
|
JNI
|
|||
|---|---|---|---|
|
#18+
автор Код: plaintext 1. 2. 3. 4. 5. 6. Как вы собрираетесть из java передавать эту структуру в Write(unsigned char* Data, TUID &UID, unsigned char Pam, unsigned char KSet); Для нее надо бы заводить отдельный класс c native методами для доступа к полям и хранить в нем указатель на native структуру. Тогда при передаче экземпляра этого класса в native метод в качестве параметра сможете получить указатель на структуру и передать его в качестве параметра в нужную функцию. Вот это как-то не очень понятно. Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2006, 12:40:40 |
|
||
|
JNI
|
|||
|---|---|---|---|
|
#18+
JNIТак что ли? Нет. Я имел ввиду следующее: Вот такой java класс: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. Получаем хедер: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. И пишем реализацию(Не проверял на наличие ошибок, но идея должна быть понятна), подключив все нужные хедеры. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Тогда при создании класса TUID мы будет автоматически создаваться nativeная структура. И при уборке мусора она,если надо, будет уничтожена GC. Мы получим доступ ко всем полям структуры и сможем легко получать указатель на нее, если нам надо передать ее в качестве параметра в функцию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2006, 14:11:13 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=34021782&tid=2147964]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
166ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 480ms |

| 0 / 0 |
