Pyjnius: рдкрд╛рдпрдЬрдирд┐рдпрд╕ рдмрдирд╛рдо рдЬреЗрдкреА рдЯрд╛рдЗрдк

рдХреЛ рдирд┐рд░реНрдорд┐рдд 16 рдЬреБрд▓ре░ 2020  ┬╖  27рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: kivy/pyjnius

рдореИрдВ рдЬреЗрдкреА рдЯрд╛рдЗрдк рдХрд╛ рдкреНрд░рдореБрдЦ рд▓реЗрдЦрдХ рд╣реВрдВред JPype рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ JPype рдХреЗ рд╡реИрдХрд▓реНрдкрд┐рдХ рдХреЛрдб рдХреА рд╕реВрдЪреА рдореЗрдВ PyJnius рдХреЛ рдЬреЛрдбрд╝рд╛ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рджреЛ рдШрдВрдЯреЗ рдХреЗ рдмрд╛рдж PyJnius рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ JPype рдкрд░ PyJnius рдХреЗ рд▓рд╛рдн рдХреА рддрд░рд╣ рджрд┐рдЦрдиреЗ рд╡рд╛рд▓реА рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдХреЗ рд╕рд╛рде рдЖрдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рдерд╛ред рдкреНрд░реЙрдХреНрд╕реА, рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝рд░, рдорд▓реНрдЯреАрдбрд╛рдпрдореЗрдВрд╢рдирд▓ рдПрд░реЗ рд╣реИрдВрдбрд▓рд┐рдВрдЧ, рдЬрд╛рд╡рд╛рдбреЛрдХ рдЗрдВрдЯреАрдЧреНрд░реЗрд╢рди, рдЬреАрд╕реА рд╣реИрдВрдбрд▓рд┐рдВрдЧ, рдмрдлрд╝рд░реНрд╕, рд╕рд╛рдЗрдВрдЯрд┐рдлрд┐рдХ рдХреЛрдб рдЗрдВрдЯреАрдЧреНрд░реЗрд╢рди (numpy, matplotlib, рдЖрджрд┐), рдХреЙрд▓рд░ рд╕реЗрдВрд╕рд┐рдЯрд┐рд╡ рдореЗрдердбреНрд╕, рдбреЙрдХреНрдпреВрдореЗрдВрдЯреЗрд╢рди рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдПрдХреНрдЬреАрдХреНрдпреВрд╢рди рд╕реНрдкреАрдб рд╕реЗ рдореИрдВрдиреЗ рд╣рд░ рдкрд╣рд▓реВ рдХреЛ рджреЗрдЦрд╛ред JPype рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд┐ PyJnius. рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬреЗрдкреА рдЯрд╛рдЗрдк рдХреЗ рд▓реЗрдЦрдХ рд╣реЛрдиреЗ рдХреЗ рдирд╛рддреЗ рд╢рд╛рдпрдж рдореИрдВ рдЙрди рдкрд╣рд▓реБрдУрдВ рдХреЛ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВ рдкрд╛рдпрдЬрдирд┐рдпрд╕ рдЯреАрдо рдХреЗ рдмрдЬрд╛рдп рдорд╣рддреНрд╡ рджреЗрддрд╛ рд╣реВрдВред рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд╛рднреЛрдВ рдХреЛ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ? рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдореВрд▓реНрдп рдкреНрд░рд╕реНрддрд╛рд╡ рдХреНрдпрд╛ рд╣реИ, рдЗрд╕рдХреЗ рд▓рдХреНрд╖рд┐рдд рджрд░реНрд╢рдХ рдХреНрдпрд╛ рд╣реИрдВ, рдФрд░ рдЗрд╕реЗ рдХреНрдпрд╛ рдХрд░рдиреЗ рдХрд╛ рд▓рдХреНрд╖реНрдп рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИрдВ?

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореИрдВрдиреЗ рд▓рдЧрднрдЧ 2 рд╕рд╛рд▓ рдкрд╣рд▓реЗ рд╕рднреА рдЬрд╛рд╡рд╛ рдмреНрд░рд┐рдЬ рдХреЛрдб рддрдХ рдкрд╣реБрдВрдЪ рдмрдирд╛рдИ рдереАред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, PyJnius рдХреЛрдб рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЫреВрдЯ рдЧрдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореЗрд░реА рдЦреЛрдЬ рдореЗрдВ рдХрднреА рдирд╣реАрдВ рдЖрдпрд╛ред рдореИрдВ рдЗрд╕ рджреМрд░ рдореЗрдВ рднреА рдЪреВрдХ рдЬрд╛рддрд╛, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдореИрдВ рдЙрд╕ рдкреГрд╖реНрда рдХреА рдЦреЛрдЬ рдХрд░ рд░рд╣рд╛ рдерд╛ рдЬрд┐рд╕рдиреЗ рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдЕрдЪреНрдЫреА рддрдХрдиреАрдХреА рдкреНрд░реЗрд╕ рд╡рд┐рдЬреНрдЮрдкреНрддрд┐ рдЬрд╛рд░реА рдХреА рдереА рдФрд░ рджреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдПрдХ рдмреНрд▓реЙрдЧ рдХреЛ рдареЛрдХрд░ рдорд╛рд░ рджреА рдереАред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рджреЛ рд╕рд╛рд▓ рдХреЗ рд▓рд┐рдП рдЙрд╕реА рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдПрдХ рдФрд░ рд╕рдХреНрд░рд┐рдп рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рдХреИрд╕реЗ рдЪреВрдХ рдЧрдпрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдореЗрд░реА рдЧрд▓рддреА рдереАред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЬреЗрдкреА рдЯрд╛рдЗрдк рдХреЛ рдкреАрдИ4рдЬреЗ рдХреЗ рд╕рд╛рде рднреНрд░рдорд┐рдд рдХрд░ рдЪреБрдХреЗ рд╣реИрдВ рдЬреЛ рдХрд┐ рдЕрдиреНрдп рдкреНрд░рдореБрдЦ рдмреНрд░рд┐рдЬ рдХреЛрдб рд╣реИред рд╡реЗ рд╕реЙрдХреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд╛рдн рдФрд░ рдбрд╛рдЙрдирд╕рд╛рдЗрдб рджреЛрдиреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рдХрд░рддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рдЗрд╕реА рддрд░рд╣ рдкрд╛рдпрд╛ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрд░реА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд░рддреА рдереАред

рдореИрдВрдиреЗ рдПрдВрдбреНрд░реЙрдЗрдб рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЗрд╕ рдкрд░ рдХреЛрдИ рд╢реЛрдз рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрдЧрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рддрдХрдиреАрдХреА рдЪрд╢реНрдорд╛ рд╣реИрдВ рддреЛ рдпрд╣ рд╕рдВрднрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдРрд╕рд╛ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИ рдЬреЛ рд╣рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдореВрд▓ рдЬреЗрдПрдирдЖрдИ рдХреЗ рдмрд╛рд╣рд░ рд╣реИ рдФрд░ рдкрд╛рдЗрдерди рдХреЗ рд╕реА рдПрдкреАрдЖрдИ рдХреЛ рд╕рд╛рджреЗ рдкреБрд░рд╛рдиреЗ рдХреЙрд▓ рд╣реИрдВред

рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИ, JPype "startJVM ()" рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬреЗрд╡реАрдПрдо рдХреЛ рдкрд╛рдпрдерди рд╕реЗ рд╢рд╛рджреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЬреЗрдПрдирдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрдЧрд▓рд╛ рд╕рдВрд╕реНрдХрд░рдг (2.0) рднреА рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рдЬрд╛рд╡рд╛ рдХреЗ рднреАрддрд░ рд╕реЗ рдкрд╛рдпрдерди рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдкрд░рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд░рддрд╛ рд╣реИред рдПрдХ рдкрд╛рдпрдерди рдкрд░рдд рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рдЙрдЪреНрдЪ рд╕реНрддрд░реАрдп рдХрдХреНрд╖рд╛рдПрдВ рд╣реЛрддреА рд╣реИрдВ рдЬреЛ рдлреНрд░рдВрдЯ рдПрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддреА рд╣реИрдВ, рдПрдХ рд╕реАрдкреАрдереЙрди рдирд┐рдЬреА рдореЙрдбреНрдпреВрд▓ рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рд╣реЛрддреЗ рд╣реИрдВ, рдПрдХ рд╕реА ++ рдмреИрдХрд░ рдкрд░рдд рдЬреЛ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдкрд╛рдВрддрд░рдгреЛрдВ рдФрд░ рдорд┐рд▓рд╛рди рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдореВрд▓ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддреА рд╣реИред рдЬрд╛рд╡рд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд▓рд┐рдП, рдФрд░ рдПрдХ рдЬрд╛рд╡рд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЬреЛ рд╕рднреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛рд░реНрдпреЛрдВ (рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЬреАрд╡рдирдХрд╛рд▓ рдзрд╛рд░рдг рдХрд░рдирд╛, рд╕реНрд▓рд╛рдЗрд╕ рдФрд░ рдЕрдкрд╡рд╛рджреЛрдВ рдХреЗ рд▓рд┐рдП рдмреИрдХрд┐рдВрдЧ рдХреНрд▓рд╛рд╕ рдмрдирд╛рдирд╛, рдФрд░ рдЬрд╛рд╡рд╛рдбреЛрдХ рдирд┐рдХрд╛рд▓рдиреЗ рд╡рд╛рд▓реЗ/рдкреНрд░рддрд┐рдкрд╛рджрди)ред

8 рд╕рд╛рд▓ рдкрд╣рд▓реЗ JPype рдереЛрдбрд╝рд╛ рдЧрдбрд╝рдмрдбрд╝ рдерд╛ред рдпрд╣ рд░реВрдмреА рдФрд░ рдкрд╛рдпрдерди рджреЛрдиреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рд╕реА ++ рдкрд░рдд рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░реИрдкрд░реЛрдВ рдХреА рдПрдХ рдЙрд▓рдЭрди рдереА рдФрд░ рд╕рд╛рдордиреЗ рдХрд╛ рдЕрдВрдд рдкрд╛рдпрдерди рдореЗрдВ рдерд╛ рдЗрд╕рд▓рд┐рдП рдпрд╣ рдмрд╣реБрдд рдзреАрдорд╛ рдерд╛ред рдЗрд╕реЗ рд░рд┐рдЯрд░реНрди рдкреНрд░рдХрд╛рд░реЛрдВ рдкрд░ рднреА рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рд╕реБрдиреНрди рд╕рдорд░реНрдерди рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдерд╛ рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдПрдХ рдЕрд▓рдЧ рдСрдмреНрдЬреЗрдХреНрдЯ рд╡рд╛рдкрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдерд╛ред рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЗрдПрдХреНрд╕рдкреНрд╢рди рдЬреИрд╕реЗ рдХрдИ рдПрдбреЗрдкреНрдЯрд░ рд╡рд░реНрдЧреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬрд╣рд╛рдВ рджреЗрд╢реА рдкрд╛рдпрдерди рдФрд░ рдЬрд╛рд╡рд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рднрд┐рдиреНрди рд╣реЛрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЙрди рд╕рднреА рдореБрджреНрджреЛрдВ рдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╕реЗ 3 рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред JPype рдореЗрдВ рджреЛ рдкреНрд░рд╛рдердорд┐рдХ рд▓рдХреНрд╖реНрдп (рдореЗрд░реЗ рд▓рд┐рдП) рд╕рд┐рдВрдЯреИрдХреНрд╕ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╣реИ рдЬреЛ рднреМрддрд┐рдХрд╡рд┐рджреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ рдЬреЛ рдЬрд╛рд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдФрд░ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдкрд╛рдпрдерди рдХреЛрдб рдХреЗ рд╕рд╛рде рдЙрдЪреНрдЪ рд╕реНрддрд░ рдХреЗ рдПрдХреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдВрдЧреЗред рд╣рдо рдРрд╕рд╛ рдЙрди рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдмрдирд╛рдХрд░ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЬрд╛рд╡рд╛ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИрдВ рдФрд░ "рд╕рднреА рддрд╛рдордЭрд╛рдо" CPython рдСрдмреНрдЬреЗрдХреНрдЯ рд░реИрдкрд░ рд╣реИрдВред рдЬрд╛рд╡рд╛ рдЖрджрд┐рдо рд╕рд░рдгреА рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рд╣рдо рдПрдХ рдЬрд╛рд╡рд╛ рдЖрджрд┐рдо рд╕рд░рдгреА рдХреЛ рдПрдХ рдирдпрд╛ рджреЗрд╢реА рдкрд╛рдпрдерди рдкреНрд░рдХрд╛рд░ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рд╕рднреА рд╕рдорд╛рди рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдмрд┐рдВрджреБрдУрдВ рдХреЛ numpy рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпреЗ рд╕рднреА рдореЗрдореЛрд░реА рдмрдлрд░ рдЯреНрд░рд╛рдВрд╕рдлрд░ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ list(jarray) рдпрд╛ np.array(jarray) рдХреЙрд▓ рдХрд░рдХреЗ рддреЗрдЬреА рд╕реЗ рд░реВрдкрд╛рдВрддрд░рдг рд╣реЛрддреЗ рд╣реИрдВред

рдЗрд╕реЗ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рдЕрдиреБрдХреВрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдЯрд╛рд░реНрдЯ рдЕрдк рд╕реАрдХреНрд╡реЗрдВрд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдФрд░ рдердВрдХ рдХреЛрдб рдЬрд┐рд╕реЗ рд╡рд╣ рдЕрдкрдиреА рдЖрдВрддрд░рд┐рдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЙрд╕реЗ рдПрдХ рдЕрдзрд┐рдХ рдкрд╛рд░рдВрдкрд░рд┐рдХ рдЬреЗрдПрдирдЖрдИ рдореЙрдбрд▓ рдХреЗ рд╕рд╛рде рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдореИрдВрдиреЗ рдЕрдЧрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдкрд╣рд▓реЗ рд╣реА рдердВрдХ рдХреЛрдб рд╣рдЯрд╛ рджрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдмрд╛рдж рд╡рд╛рд▓реЗ рдХреЛ рдкрд╣рд▓реЗ рд╣реА рдкреВрд░рд╛ рдХрд░ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХреЗрд╡рд▓ рдкреВрд░реНрд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ рдореБрдЦреНрдп рдЕрдВрддрд░ рдЬреЛ рдореИрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдкрд╛рдпрдЬрдирд┐рдпрд╕ рдЬрд╛рдиреЗ рдФрд░ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рд░рдгреА рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдХреЛрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдирд┐рд╖реЗрдзрд╛рддреНрдордХ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдмрдбрд╝реЗ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рдЖрдЧреЗ рдкреАрдЫреЗ рдХрд░рдирд╛ (рдЕрдХреНрд╕рд░ рдЬреЛ рдХрднреА рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ) рдкрд╕рдВрджреАрджрд╛ JPype рд╢реИрд▓реА рд╣реИред рд░реВрдкрд╛рдВрддрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрд╛ рдирд┐рд░реНрдгрдп рддрдм рдореВрд▓реНрдп рд╕реЗ рдЧреБрдЬрд░рдиреЗ рдФрд░ рд╕рдВрджрд░реНрдн рд╕реЗ рдЧреБрдЬрд░рдиреЗ рдЬреИрд╕реЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдордЬрдмреВрд░ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдЕрдзрд┐рдХ рдореБрджреНрджреЛрдВ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдмрд╣реБ рддрд░реНрдХ рдХреЙрд▓ рд╣реИ, рдЖрдк рд╕рднреА рддрд░реНрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдиреАрддрд┐ рдЪреБрди рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рдмрд╣реБрдЖрдпрд╛рдореА рд╕рд░рдгрд┐рдпреЛрдВ рд╕реЗ рдирд┐рдкрдЯрдирд╛ рднреА рдХрдард┐рди рдмрдирд╛ рджреЗрдЧрд╛ред (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ obj.method(1, jnius.byref(list1), list2) рдЬреИрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдПрдбрд╛рдкреНрдЯрд░ рдХреНрд▓рд╛рд╕ рдиреЗ рдЗрд╕реЗ рд╣рд╛рд╕рд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддреЛ рдмреЗрд╣рддрд░ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рд╣реЛрдЧрд╛)ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, JPype рдиреЗ рдХрдИ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ рд╣реИ рдЬреИрд╕реЗ GC рд▓рд┐рдВрдХреЗрдЬ, рдХреЙрд▓рд░ рд╕реЗрдВрд╕рд┐рдЯрд┐рд╡ рдореЗрдердбреНрд╕, рдФрд░ рдЗрд╕реА рддрд░рд╣ред рдпрджрд┐ рдФрд░ рдХреБрдЫ рдирд╣реАрдВ рддреЛ рдХреГрдкрдпрд╛ рдЬреЗрдкреА рдЯрд╛рдЗрдк рдХреЛрдб рджреЗрдЦреЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╕рднреА 27 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЦреЛрдЬ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рдореБрдЭреЗ рдЧрд▓рдд рдпрд╛рдж рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдореИрдВрдиреЗ jpype рдХреЛ рдирд╣реАрдВ рджреЗрдЦрд╛ рдерд╛, рд▓реЗрдХрд┐рди рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рд╕рд╛рдЭрд╛ рд╕реНрдореГрддрд┐ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рд╕рд░реНрд╡рд░ (рдЗрд╕рд▓рд┐рдП рдЖрдИрдкреАрд╕реА) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ JVM рд╕реЗ рдмрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛ (рд▓реЗрдХрд┐рди рдЖрдкрдХрд╛ рд░реАрдбрдореА рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рд╕рдВрдХреЗрдд рджреЗрддрд╛ рд╣реИ, рдФрд░ рдореБрдЭреЗ рдХреЛрдб рдкрд░ рдПрдХ рддреНрд╡рд░рд┐рдд рдирдЬрд╝рд░ рд╕реЗ рд╕рдВрдХреЗрдд рдирд╣реАрдВ рдорд┐рд▓рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╢рд╛рдпрдж рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЧрд▓рдд рд╣реВрдВ), рдФрд░ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдиреЗ рдЗрд╕реЗ рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ рдЕрд╡реНрдпрд╡рд╣рд╛рд░рд┐рдХ рдмрдирд╛ рджрд┐рдпрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП (рдЬреЛ рдХрд┐ рдкрд╛рдпрдЬрдирд┐рдпрд╕ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╛рдердорд┐рдХ рдХрд╛рд░рдг рдерд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХреБрдЫ рд▓реЛрдЧ рдЗрд╕реЗ рдбреЗрд╕реНрдХрдЯреЙрдк рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рддреЗ рд╣реИрдВ)ред рджреВрд╕рд░реА рддрд░рдл, рдореБрдЭреЗ рдЬреЗрдкреА рдЯрд╛рдЗрдк рдХреЛрдбрдмреЗрд╕ рдореЗрдВ рдПрдВрдбреНрд░реЙрдЗрдб рд╕рдорд░реНрдерди рдкрд░ рдЬреНрдпрд╛рджрд╛ рд╕рдВрдХреЗрдд рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИ, рдЬрдм рддрдХ рдХрд┐ native рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреА jni.h рдПрдУрдПрд╕рдкреА рд╕реЗ рд▓реА рдЧрдИ рдкреНрд░рддреАрдд рд╣реЛрддреА рд╣реИ?

рд▓реЗрдХрд┐рди рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рдЬрдм рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╢реБрд░реВ рдХреА рдЧрдИ рдереА, рддрдм рд╣рдо рдЬреЗрдкреА рдЯрд╛рдЗрдк рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдереЗ, рдпрд╣ рдХрд┐рд╡реА рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдПрдВрдбреНрд░реЙрдЗрдб рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рдЗрдВрдЯрд░рдлреЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЬреЗрдПрдирдЖрдИ рдХреЛрдб рдХреЛрдб рдХрд░рдиреЗ рд╕реЗ рдПрдХ рдХрджрдо рдКрдкрд░ рдерд╛ред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ @tito рдиреЗ рдмрд╛рдж рдореЗрдВ рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЦреБрджрд╛рдИ рдХреА, рдЬрдм рд╣рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдЪрд▓рд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╛рдж рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЙрдиреНрд╣реЛрдВрдиреЗ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рди рдХрд░рдиреЗ рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░рдг рджреЗрдЦреЗред

рдирдорд╕реНрддреЗред рдореБрдЭреЗ рдЬреЗрдкреА рдЯрд╛рдЗрдк рдирд╛рдо рдпрд╛рдж рд╣реИ, рд▓реЗрдХрд┐рди рдЦреЛрдЬ рдХреЗ рд╕рдордп рд╣рдо рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдореБрдЭреЗ рдпрд╛рдж рдирд╣реАрдВ рд╣реИ рдХрд┐ 8 рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдЗрд╕рдХрд╛ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ :) рд╢реБрд░реБрдЖрдд рдореЗрдВ рдПрдХрдорд╛рддреНрд░ рд▓рдХреНрд╖реНрдп рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдерд╛ рдПрдкреАрдЖрдИ, рд▓реЗрдХрд┐рди рдПрдХ рдордзреНрдп рдЖрд░рдкреАрд╕реА рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рдкреА 4 рдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЙрд╕ рд╕рдордп рдХрд░ рд░рд╣рд╛ рдерд╛ред

рдореИрдВрдиреЗ рд▓рдЧрднрдЧ 2 рд╕рд╛рд▓ рдкрд╣рд▓реЗ рд╕рднреА рдЬрд╛рд╡рд╛ рдмреНрд░рд┐рдЬ рдХреЛрдб рддрдХ рдкрд╣реБрдВрдЪ рдмрдирд╛рдИ рдереАред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, PyJnius рдХреЛрдб рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЫреВрдЯ рдЧрдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореЗрд░реА рдЦреЛрдЬ рдореЗрдВ рдХрднреА рдирд╣реАрдВ рдЖрдпрд╛ред рдореИрдВ рдЗрд╕ рджреМрд░ рдореЗрдВ рднреА рдЪреВрдХ рдЬрд╛рддрд╛, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдореИрдВ рдЙрд╕ рдкреГрд╖реНрда рдХреА рдЦреЛрдЬ рдХрд░ рд░рд╣рд╛ рдерд╛ рдЬрд┐рд╕рдиреЗ рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдЕрдЪреНрдЫреА рддрдХрдиреАрдХреА рдкреНрд░реЗрд╕ рд╡рд┐рдЬреНрдЮрдкреНрддрд┐ рдЬрд╛рд░реА рдХреА рдереА рдФрд░ рджреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдПрдХ рдмреНрд▓реЙрдЧ рдХреЛ рдареЛрдХрд░ рдорд╛рд░ рджреА рдереАред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рджреЛ рд╕рд╛рд▓ рдХреЗ рд▓рд┐рдП рдЙрд╕реА рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдПрдХ рдФрд░ рд╕рдХреНрд░рд┐рдп рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рдХреИрд╕реЗ рдЪреВрдХ рдЧрдпрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдореЗрд░реА рдЧрд▓рддреА рдереАред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЬреЗрдкреА рдЯрд╛рдЗрдк рдХреЛ рдкреАрдИ4рдЬреЗ рдХреЗ рд╕рд╛рде рднреНрд░рдорд┐рдд рдХрд░ рдЪреБрдХреЗ рд╣реИрдВ рдЬреЛ рдХрд┐ рдЕрдиреНрдп рдкреНрд░рдореБрдЦ рдмреНрд░рд┐рдЬ рдХреЛрдб рд╣реИред рд╡реЗ рд╕реЙрдХреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд╛рдн рдФрд░ рдбрд╛рдЙрдирд╕рд╛рдЗрдб рджреЛрдиреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рдХрд░рддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рдЗрд╕реА рддрд░рд╣ рдкрд╛рдпрд╛ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрд░реА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд░рддреА рдереАред

рдореИрдВрдиреЗ рдПрдВрдбреНрд░реЙрдЗрдб рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЗрд╕ рдкрд░ рдХреЛрдИ рд╢реЛрдз рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрдЧрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рддрдХрдиреАрдХреА рдЪрд╢реНрдорд╛ рд╣реИрдВ рддреЛ рдпрд╣ рд╕рдВрднрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдРрд╕рд╛ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИ рдЬреЛ рд╣рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдореВрд▓ рдЬреЗрдПрдирдЖрдИ рдХреЗ рдмрд╛рд╣рд░ рд╣реИ рдФрд░ рдкрд╛рдЗрдерди рдХреЗ рд╕реА рдПрдкреАрдЖрдИ рдХреЛ рд╕рд╛рджреЗ рдкреБрд░рд╛рдиреЗ рдХреЙрд▓ рд╣реИрдВред

рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИ, JPype "startJVM ()" рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬреЗрд╡реАрдПрдо рдХреЛ рдкрд╛рдпрдерди рд╕реЗ рд╢рд╛рджреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЬреЗрдПрдирдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрдЧрд▓рд╛ рд╕рдВрд╕реНрдХрд░рдг (2.0) рднреА рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рдЬрд╛рд╡рд╛ рдХреЗ рднреАрддрд░ рд╕реЗ рдкрд╛рдпрдерди рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдкрд░рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд░рддрд╛ рд╣реИред рдПрдХ рдкрд╛рдпрдерди рдкрд░рдд рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рдЙрдЪреНрдЪ рд╕реНрддрд░реАрдп рдХрдХреНрд╖рд╛рдПрдВ рд╣реЛрддреА рд╣реИрдВ рдЬреЛ рдлреНрд░рдВрдЯ рдПрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддреА рд╣реИрдВ, рдПрдХ рд╕реАрдкреАрдереЙрди рдирд┐рдЬреА рдореЙрдбреНрдпреВрд▓ рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рд╣реЛрддреЗ рд╣реИрдВ, рдПрдХ рд╕реА ++ рдмреИрдХрд░ рдкрд░рдд рдЬреЛ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдкрд╛рдВрддрд░рдгреЛрдВ рдФрд░ рдорд┐рд▓рд╛рди рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдореВрд▓ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддреА рд╣реИред рдЬрд╛рд╡рд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд▓рд┐рдП, рдФрд░ рдПрдХ рдЬрд╛рд╡рд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЬреЛ рд╕рднреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛рд░реНрдпреЛрдВ (рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЬреАрд╡рдирдХрд╛рд▓ рдзрд╛рд░рдг рдХрд░рдирд╛, рд╕реНрд▓рд╛рдЗрд╕ рдФрд░ рдЕрдкрд╡рд╛рджреЛрдВ рдХреЗ рд▓рд┐рдП рдмреИрдХрд┐рдВрдЧ рдХреНрд▓рд╛рд╕ рдмрдирд╛рдирд╛, рдФрд░ рдЬрд╛рд╡рд╛рдбреЛрдХ рдирд┐рдХрд╛рд▓рдиреЗ рд╡рд╛рд▓реЗ/рдкреНрд░рддрд┐рдкрд╛рджрди)ред

8 рд╕рд╛рд▓ рдкрд╣рд▓реЗ JPype рдереЛрдбрд╝рд╛ рдЧрдбрд╝рдмрдбрд╝ рдерд╛ред рдпрд╣ рд░реВрдмреА рдФрд░ рдкрд╛рдпрдерди рджреЛрдиреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рд╕реА ++ рдкрд░рдд рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░реИрдкрд░реЛрдВ рдХреА рдПрдХ рдЙрд▓рдЭрди рдереА рдФрд░ рд╕рд╛рдордиреЗ рдХрд╛ рдЕрдВрдд рдкрд╛рдпрдерди рдореЗрдВ рдерд╛ рдЗрд╕рд▓рд┐рдП рдпрд╣ рдмрд╣реБрдд рдзреАрдорд╛ рдерд╛ред рдЗрд╕реЗ рд░рд┐рдЯрд░реНрди рдкреНрд░рдХрд╛рд░реЛрдВ рдкрд░ рднреА рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рд╕реБрдиреНрди рд╕рдорд░реНрдерди рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдерд╛ рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдПрдХ рдЕрд▓рдЧ рдСрдмреНрдЬреЗрдХреНрдЯ рд╡рд╛рдкрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдерд╛ред рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЗрдПрдХреНрд╕рдкреНрд╢рди рдЬреИрд╕реЗ рдХрдИ рдПрдбреЗрдкреНрдЯрд░ рд╡рд░реНрдЧреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬрд╣рд╛рдВ рджреЗрд╢реА рдкрд╛рдпрдерди рдФрд░ рдЬрд╛рд╡рд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рднрд┐рдиреНрди рд╣реЛрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЙрди рд╕рднреА рдореБрджреНрджреЛрдВ рдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╕реЗ 3 рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред JPype рдореЗрдВ рджреЛ рдкреНрд░рд╛рдердорд┐рдХ рд▓рдХреНрд╖реНрдп (рдореЗрд░реЗ рд▓рд┐рдП) рд╕рд┐рдВрдЯреИрдХреНрд╕ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╣реИ рдЬреЛ рднреМрддрд┐рдХрд╡рд┐рджреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ рдЬреЛ рдЬрд╛рд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдФрд░ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдкрд╛рдпрдерди рдХреЛрдб рдХреЗ рд╕рд╛рде рдЙрдЪреНрдЪ рд╕реНрддрд░ рдХреЗ рдПрдХреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдВрдЧреЗред рд╣рдо рдРрд╕рд╛ рдЙрди рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдмрдирд╛рдХрд░ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЬрд╛рд╡рд╛ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИрдВ рдФрд░ "рд╕рднреА рддрд╛рдордЭрд╛рдо" CPython рдСрдмреНрдЬреЗрдХреНрдЯ рд░реИрдкрд░ рд╣реИрдВред рдЬрд╛рд╡рд╛ рдЖрджрд┐рдо рд╕рд░рдгреА рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рд╣рдо рдПрдХ рдЬрд╛рд╡рд╛ рдЖрджрд┐рдо рд╕рд░рдгреА рдХреЛ рдПрдХ рдирдпрд╛ рджреЗрд╢реА рдкрд╛рдпрдерди рдкреНрд░рдХрд╛рд░ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рд╕рднреА рд╕рдорд╛рди рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдмрд┐рдВрджреБрдУрдВ рдХреЛ numpy рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпреЗ рд╕рднреА рдореЗрдореЛрд░реА рдмрдлрд░ рдЯреНрд░рд╛рдВрд╕рдлрд░ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ list(jarray) рдпрд╛ np.array(jarray) рдХреЙрд▓ рдХрд░рдХреЗ рддреЗрдЬреА рд╕реЗ рд░реВрдкрд╛рдВрддрд░рдг рд╣реЛрддреЗ рд╣реИрдВред

рдЗрд╕реЗ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рдЕрдиреБрдХреВрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдЯрд╛рд░реНрдЯ рдЕрдк рд╕реАрдХреНрд╡реЗрдВрд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдФрд░ рдердВрдХ рдХреЛрдб рдЬрд┐рд╕реЗ рд╡рд╣ рдЕрдкрдиреА рдЖрдВрддрд░рд┐рдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЙрд╕реЗ рдПрдХ рдЕрдзрд┐рдХ рдкрд╛рд░рдВрдкрд░рд┐рдХ рдЬреЗрдПрдирдЖрдИ рдореЙрдбрд▓ рдХреЗ рд╕рд╛рде рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдореИрдВрдиреЗ рдЕрдЧрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдкрд╣рд▓реЗ рд╣реА рдердВрдХ рдХреЛрдб рд╣рдЯрд╛ рджрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдмрд╛рдж рд╡рд╛рд▓реЗ рдХреЛ рдкрд╣рд▓реЗ рд╣реА рдкреВрд░рд╛ рдХрд░ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХреЗрд╡рд▓ рдкреВрд░реНрд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ рдореБрдЦреНрдп рдЕрдВрддрд░ рдЬреЛ рдореИрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдкрд╛рдпрдЬрдирд┐рдпрд╕ рдЬрд╛рдиреЗ рдФрд░ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рд░рдгреА рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдХреЛрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдирд┐рд╖реЗрдзрд╛рддреНрдордХ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдмрдбрд╝реЗ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рдЖрдЧреЗ рдкреАрдЫреЗ рдХрд░рдирд╛ (рдЕрдХреНрд╕рд░ рдЬреЛ рдХрднреА рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ) рдкрд╕рдВрджреАрджрд╛ JPype рд╢реИрд▓реА рд╣реИред рд░реВрдкрд╛рдВрддрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрд╛ рдирд┐рд░реНрдгрдп рддрдм рдореВрд▓реНрдп рд╕реЗ рдЧреБрдЬрд░рдиреЗ рдФрд░ рд╕рдВрджрд░реНрдн рд╕реЗ рдЧреБрдЬрд░рдиреЗ рдЬреИрд╕реЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдордЬрдмреВрд░ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдЕрдзрд┐рдХ рдореБрджреНрджреЛрдВ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдмрд╣реБ рддрд░реНрдХ рдХреЙрд▓ рд╣реИ, рдЖрдк рд╕рднреА рддрд░реНрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдиреАрддрд┐ рдЪреБрди рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рдмрд╣реБрдЖрдпрд╛рдореА рд╕рд░рдгрд┐рдпреЛрдВ рд╕реЗ рдирд┐рдкрдЯрдирд╛ рднреА рдХрдард┐рди рдмрдирд╛ рджреЗрдЧрд╛ред (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ obj.method(1, jnius.byref(list1), list2) рдЬреИрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдПрдбрд╛рдкреНрдЯрд░ рдХреНрд▓рд╛рд╕ рдиреЗ рдЗрд╕реЗ рд╣рд╛рд╕рд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддреЛ рдмреЗрд╣рддрд░ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рд╣реЛрдЧрд╛)ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, JPype рдиреЗ рдХрдИ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ рд╣реИ рдЬреИрд╕реЗ GC рд▓рд┐рдВрдХреЗрдЬ, рдХреЙрд▓рд░ рд╕реЗрдВрд╕рд┐рдЯрд┐рд╡ рдореЗрдердбреНрд╕, рдФрд░ рдЗрд╕реА рддрд░рд╣ред рдпрджрд┐ рдФрд░ рдХреБрдЫ рдирд╣реАрдВ рддреЛ рдХреГрдкрдпрд╛ рдЬреЗрдкреА рдЯрд╛рдЗрдк рдХреЛрдб рджреЗрдЦреЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

@Thrameos рдПрдХ рд╣рд╛рд▓рд┐рдпрд╛ рдЪреАрдЬрд╝ рдЬрд┐рд╕реЗ рд╣рдо рдорд░реНрдЬ рдХрд░рдирд╛ https://github.com/kivy/pyjnius/pull/515 ; рдореИрдВрдиреЗ рдЗрд╕реЗ рдЬреЗрдкреА рдЯрд╛рдЗрдк рдореЗрдВ рдирд╣реАрдВ рджреЗрдЦрд╛?

рдЬреЗрдкреА рдЯрд╛рдЗрдк рдХреЛ 1.0.0 рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЗрдВрдЯрд░рдлреЗрд╕ рд╕реЗ рд▓реИрдореНрдмреНрдбрд╛ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╣реИред рдпрд╣ 30 рджрд┐рдиреЛрдВ рдореЗрдВ рдорд╛рд░реНрдЪ рдкреБрд╢ 1.0 рдореЗрдВ 30 рдкреБрд▓ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдерд╛ред

JPype рдХреА рдКрд╖реНрдорд╛рдпрди рдЕрд╡рдзрд┐ рд▓рдВрдмреА рд╣реИред рдореВрд▓ рд░реВрдк рд╕реЗ реирежрежрек рдореЗрдВ рд╢реБрд░реВ рд╣реБрдЖ рдФрд░ реирежрежрен рддрдХ рдЪрд▓рд╛ред рдЗрд╕рдХреЗ рдмрд╛рдж рдЗрд╕реЗ рдПрдХ рдмрдбрд╝рд╛ рдмрдврд╝рд╛рд╡рд╛ рдорд┐рд▓рд╛ рдХреНрдпреЛрдВрдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рдореВрд╣ рдиреЗ рдЗрд╕реЗ реирежрезрел рдХреЗ рдЖрд╕рдкрд╛рд╕ рдЗрд╕реЗ рдкрд╛рдпрдерди рей рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрдирд░реНрдЬреАрд╡рд┐рдд рдХрд┐рдпрд╛ред рдлрд┐рд░ реирежрезрен рдореЗрдВ, рдЗрд╕реЗ рдПрдХ рд░рд╛рд╖реНрдЯреНрд░реАрдп рдкреНрд░рдпреЛрдЧрд╢рд╛рд▓рд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЙрдард╛рдпрд╛ рдЧрдпрд╛, рдЬрд┐рд╕рдиреЗ рдЗрд╕реЗ реж.рем рд╕реЗ рд▓реЗ рд▓рд┐рдпрд╛ред 3 рд╕реЗ 0.7.2ред рдЙрд╕ рдЕрд╡рдзрд┐ рдХреЗ рджреМрд░рд╛рди рд╕рднреА рдкреНрд░рдпрд╛рд╕ рдореБрдЦреНрдп рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдХреЛ рд╕реБрдзрд╛рд░рдиреЗ рдФрд░ рд╕рдЦреНрдд рдХрд░рдиреЗ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рдереЗ рдЬреЛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдВрддрддрдГ рдорд╛рд░реНрдЪ рдореЗрдВ рджреВрд╕рд░реЗ рдХреЛрд░ рд░реАрд░рд╛рдЗрдЯ рдХреЗ рдмрд╛рдж рдкреВрд░рд╛ рд╣реБрдЖ рддрд╛рдХрд┐ рд╣рдо рдЕрдВрдд рдореЗрдВ 1.0.0 рдХреЗ рд▓рд┐рдП рдзрдХреНрдХрд╛ рджреЗ рд╕рдХреЗрдВред рддрдм рд╕реЗ рд╣рдо рдЕрдкрдиреЗ "30 рдкреБрд▓ рдЗрди 30 рдирд╛рдЗрдЯреНрд╕" рд╡рд┐рд╢ рд▓рд┐рд╕реНрдЯ рдЕрднрд┐рдпрд╛рди рдХреЗ рджреМрд░рд╛рди рд╡рд╣ рд╕рдм рдХреБрдЫ рдЬреЛрдбрд╝ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ "рдЧрд╛рдпрдм" рдерд╛ред рд╕рдм рдХреБрдЫ рдХрд╛ рдмреИрдХрд▓реЙрдЧ рдЬрд┐рд╕реЗ рдореИрдВ рдЕрднреА рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХрд╛рдо рд╣реЛрдЧрд╛ рдЕрдВрдд рдореЗрдВ рдордВрдЬреВрд░реА рджреЗ рджреА рдЧрдИ рдереА (рдореБрджреНрджреЗ 50 рд╕реЗ 20 рддрдХ рдЧрд┐рд░ рдЧрдП, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рд╕реЗ рдкреВрдЫреЗрдВ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдП, рдЖрджрд┐)ред рддреЛ рдРрд╕реА рдХрдИ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдирд╣реАрдВ рдорд┐рд▓реАрдВ рдЬреЛ рдЕрдм рдЙрдкрд▓рдмреНрдз рд╣реИрдВред рдореИрдВ рдПрдХ рд╣рдлреНрддреЗ рд╕реЗ рднреА рдХрдо рд╕рдордп рдореЗрдВ рдЕрдзрд┐рдХрд╛рдВрд╢ рдлреАрдЪрд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдмрджрд▓ рд░рд╣рд╛ рд╣реВрдВ, рдЬреИрд╕реЗ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдЬреЛ рдХреБрдЫ рдмрдЪрд╛ рд╣реИ рд╡рд╣ рдмрдбрд╝реЗ 3 (рд░рд┐рд╡рд░реНрд╕ рдмреНрд░рд┐рдЬ, рдкрд╛рдпрдерди рдореЗрдВ рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░, рджреВрд╕рд░рд╛ рдЬреЗрд╡реАрдПрдо рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛) рд╣реИред

рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╡рд╛рдкрд╕ рдиреАрдВрдж рдореЗрдВ рдЪрд▓реА рдЬрд╛рдПрдЧреА рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рд░рд┐рд╡рд░реНрд╕ рдмреНрд░рд┐рдЬ рдХреЛрдб рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 6 рдорд╣реАрдиреЗ рдХреЗ рд▓рдВрдмреЗ рдкреНрд░рдпрд╛рд╕ рдореЗрдВ 2 рдорд╣реАрдиреЗ рдХрд╛ рд╣реВрдВ рдЬреЛ рдЬрд╛рд╡рд╛ рдХреЛ рдкрд╛рдпрдерди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдФрд░ рдкрд╛рдпрдерди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрдЯрдмреНрд╕ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ рддрд╛рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдЬрд╛рд╡рд╛ рджреЗрд╢реА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдпрд╣ рдордХреНрдЦреА рдкрд░ рдЬрд╛рд╡рд╛ рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдПрд╕рдПрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдкрд╛рдпрдерди рдХреЗ рд▓рд┐рдП рдореВрд▓ рд╕рдорд░реНрдерди рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдЕрднреА рднреА рдЬреНрдпреЛрдерди рдХреА рддрд░рд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрдХреАрдХреГрдд рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдЗрддрдирд╛ рдХрд░реАрдм рд╣реИ рдХрд┐ рдмрд╣реБрдд рдЕрдВрддрд░ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

рд╡рд┐рд╕реНрддреГрдд рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж, рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрджрд┐ рдХреБрдЫ рднреА, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдРрд╕реЗ рд╡рд┐рдЪрд╛рд░ рд╣реИрдВ рдЬрд┐рдирдХрд╛ рд╣рдо рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдХреЛрдб рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реЛрдЧрд╛, рдкрд╣рд▓реЗ рдХреЛрдб рдХреЛ рджреЗрдЦрдХрд░, рдЬреЛ рдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╡рд╣ рдХреЛрдб рдЧреБрдгрд╡рддреНрддрд╛ рдФрд░ рд╕рдВрд░рдЪрдирд╛ рджреЛрдиреЛрдВ рдореЗрдВ рдХрд╛рдлреА рд╕рд╛рдл рд▓рдЧрддрд╛ рд╣реИ рдкрд░рд┐рдпреЛрдЬрдирд╛, рдЗрд╕рд▓рд┐рдП рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдмрдзрд╛рдИред рдЖрдк Py4J рдХреЗ рд╕рд╛рде рдореЗрд░реЗ рдорд┐рд╢реНрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд╣реА рд╣реИрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬрдм рдореИрдВрдиреЗ JPype рдХреЛ рджреЗрдЦрд╛, рддреЛ рдпрд╣ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рдЧрдВрджреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд░рд╣рд╛ рд╣реЛрдЧрд╛, рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ PyJNIus рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд░рд╣рд╛ рд╣реЛрдЧрд╛ред

рдореВрд▓реНрдп/рд░реВрдкрд╛рдВрддрд░рдг рд╕реЗ рдЧреБрдЬрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдкрдХреЗ рдмрд┐рдВрджреБ рдмрд╣реБрдд рд╕рд╣реА рд╣реИрдВ, рдФрд░ рдпрд╣рд╛рдВ рдХреБрдЫ рд╣рд╛рд▓рд┐рдпрд╛ рдЪрд░реНрдЪрд╛рдУрдВ рдХреЛ рднреА рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛, рдЬреИрд╕рд╛ рдХрд┐ @ hx2A рдиреЗ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛, рдФрд░ рдкрд╛рдЗрдерди рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░ рджрд┐рдпрд╛ (рдЬреИрд╕реЗ рдЬрд╛рд╡рд╛ рдХреЛ рдлреЗрдВрдХрдиреЗ рд╡рд╛рд▓реА рд╕реВрдЪреА рдкрд╛рд╕ рдХрд░рдирд╛, рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдПрдХ рдЬрд╛рд╡рд╛ рд╕реВрдЪреА рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд, рдЬрд╛рд╡рд╛ рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдпрд╛ рдирд╣реАрдВ, рдФрд░ рд╡рд╛рдкрд╕ рдЕрдЬрдЧрд░ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛ рдЧрдпрд╛, рдмрд╕ рдЗрд╕реЗ рдХрдЪрд░рд╛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЙрдк-рд░реВрдкреА рдерд╛, рдЕрдм рд╣рдо рдХрдо рд╕реЗ рдХрдо рджреВрд╕рд░реЗ рднрд╛рдЧ рд╕реЗ рдмрдЪ рд╕рдХрддреЗ рд╣реИрдВ, рдХреАрд╡рд░реНрдб рддрд░реНрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреАрдордд рдкрд░, рдЬреЛ рддрдм рд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ рдЬрд╛рд╡рд╛ рдЙрдирдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреЛрдИ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╕рдВрдШрд░реНрд╖ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рд╢реЛрд░ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕-рд╡рд╛рд░ рд╣реИ)ред

JPype рдФрд░ PyJNIus рдХреЗ рдмреАрдЪ рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рдЕрдВрддрд░ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЕрдЬрдЧрд░ рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬрд╛рд╡рд╛ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХреЙрд▓рдмреИрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛ рдореЗрдВ рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рджреВрд╕рд░реА рдУрд░, рд╣рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬрд╛рд╡рд╛ рдмрд╛рдЗрдЯрдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЕрдЧрд░ рд╣рдо рдЬрд╛рд╡рд╛ рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдкрд╛рдпрдерди рд╕реЗ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреБрдЫ рдПрдВрдбреНрд░реЙрдЗрдб рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо рдЕрднреА рдХрд╡рд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгреА рд╕реЗ рд╕рд╣реА рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЬрд╛рд╡рд╛ рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рди рд╣реЛ рдЗрд╕ рддрд░рд╣ рдкрд╛рдпрдерди рдХреЛрдб (рдЗрдВрдЯрд░рдлреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ)ред

рдЬреЗрдкреА рдЯрд╛рдЗрдк рдкрд╛рдпрдерди рдореЗрдВ рдЗрдВрдЯрд░рдлреЗрд╕ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╕рд╛рдзрд╛рд░рдг рдкрд╛рдпрдерди рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рдмрд╕ рдбреЗрдХреЛрд░реЗрдЯрд░ рдЬреЛрдбрд╝реЗрдВред

from java.util.function import Consumer

@jpype.JImplements(Consumer)
class MyConsumer:
   @jpype.JOverride
   def apply(self, obj):
       pass

@JImplements рдореЗрдВ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдпрджрд┐ JVM рд╢реБрд░реВ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╡рд░реНрдЧ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдХрдИ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рдПрдХ рд╕рд╛рде рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рд╡реЗ рд▓рд╛рдЧреВ рдХрд┐рдП рдЧрдП рд╣реИрдВ, рд╕рднреА рд╡рд┐рдзрд┐рдпреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рддреА рд╣реИред рдореБрдЦреНрдп рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдЬреЗрдкреА рдЯрд╛рдЗрдк рдкреНрд░реЗрд╖рдг рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ (рд╕рднреА рдЕрдзрд┐рднрд╛рд░ рдПрдХ рд╣реА рд╡рд┐рдзрд┐ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ) рдмрд▓реНрдХрд┐ рдЕрддрд┐рднрд╛рд░рд┐рдд рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЬрд╛рд╡рд╛ рдФрд░ рдкрд╛рдпрдерди рджреЛрдиреЛрдВ рд╕реЗ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВред рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЕрдзрд┐рднрд╛рд░ рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реВрдВ рдпрджрд┐ рдпрд╣ рдПрдХ рд╡рд╛рдВрдЫрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдиреЗ рдЗрд╕рдХрд╛ рдЕрдиреБрд░реЛрдз рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред

(рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рд╣рдордиреЗ рдкрд╛рдпрдерди рдЗрдирд╣реЗрд░рд┐рдЯреЗрдВрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛, рдЬрд┐рд╕ рд╕рдордп рдЗрд╕реЗ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛, рд╣рдо рдЕрднреА рднреА рдкрд╛рдпрдерди 2 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░ рд░рд╣реЗ рдереЗ, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рдмрд╣реБрдд рд╕рд╛рд░реЗ рдореЗрдЯрд╛ рдХреНрд▓рд╛рд╕ рдХреЗ рдореБрджреНрджреЗ рдереЗ, рдХреНрд▓рд╛рд╕ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╣рдо рдЗрд╕реЗ рдФрд░ рд╕рд╛рдл рдХрд░ рджреЗрдВрдЧреЗред рддреЛ рдПрдиреЛрдЯреЗрд╢рди рдЬреЛ рдШреЛрд╖рдгрд╛ рдХреЗ рд╕рдордп рдПрдХ рдмрд╛рд░ рдореВрд▓реНрдпрд╛рдВрдХрди рдХреНрд▓реАрдирд░ рдереЗред)

рд╣рдо рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝рд░ (рдбрдВрдбрд░?) рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрд╕реА рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ

@jpype.JImplementationFor("java.util.ArrayList")
class ArrayListImpl:
    def __getitem__(self, i):
        return self.get(i)
    @jpype.JOverride
    def addAll(self, list):
        # Decide if we need to convert or can call directly.
        ...

рд╣рдо рдирд┐рд╣рд┐рдд рдХрдиреНрд╡рд░реНрдЯрд░реНрд╕ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬреИрд╕реЗ "рд╕рднреА рдкрд╛рдпрдерди рдкрде рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ java.io.File рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░рддреЗ рд╣реИрдВ"

 @jpype.JConversion("java.io.File", instanceof=pathlib.PurePath)
 def _JFileConvert(jcls, obj):
       Paths = jpype.JClass("java.nio.file.Paths")
       return Paths.get(str(obj))

рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╡рд┐рд╢реЗрд╖ рд╕реА рд╡рд┐рдзрд┐рдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдереЛрдбрд╝рд╛ рдзреАрдорд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдкрдардиреАрдпрддрд╛ рдФрд░ рд▓рдЪреАрд▓реЗрдкрди рдХреЛ рдЙрдЪреНрдЪ рд░рдЦрддрд╛ рд╣реИред рдореИрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкрдереЛрдВ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░ рд╕реА рдореЗрдВ рдмрд╛рдзрд╛ рд╕рд╛рдмрд┐рдд рд╣реБрдП рд╣реИрдВред

рд╣рдо рдЪреАрдЬреЛрдВ рдХреЛ рд╕рд╛рдл рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдЪреАрдиреА рднреА рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ MyJavaClass@obj => MyJavaClass (рдЬрд╛рд╡рд╛ рд╕рдордХрдХреНрд╖ (MyJavaClass)obj ) рдпрд╛ cls=JInt[:] => рдПрдХ рд╕рд░рдгреА рдкреНрд░рдХрд╛рд░ рдмрдирд╛рдПрдВ ( cls=int[].class ) рдпрд╛ a=JDouble[10][5] => рдПрдХ рдмрд╣реБрдЖрдпрд╛рдореА рд╕рд░рдгреА рдмрдирд╛рдПрдВ ( double[][] a = new double[10][5] )ред

рдореИрдВ рдЬреЗрдкреА рдЯрд╛рдЗрдк рд╕реЗ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рд╣рдореЗрдВ рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЬреЛ рдХреБрдЫ рд╕реНрд╡рд┐рдВрдЧ рдХрдХреНрд╖рд╛рдУрдВ рдФрд░ рдЕрдиреНрдп рдПрдкреАрдЖрдИ рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрдХреНрд╖рд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЬрд┐рд╕ рд╕рдорд╛рдзрд╛рди рдХреЛ рдореИрдВрдиреЗ рдЕрдм рддрдХ рдкрдХрд╛рдпрд╛ рд╣реИ, рд╡рд╣ рдкреНрд░рддреНрдпреЗрдХ рдУрд╡рд░рд░рд╛рдЗрдб рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИрд╢ рдореИрдк рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрдХреНрд╖рд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред рдпрджрд┐ рдЙрд╕ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рдХреЗ рд▓рд┐рдП рд╣реИрд╢рдкреИрдк рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИ рддреЛ рдЗрд╕реЗ рд╕реБрдкрд░ рдореЗрдВ рднреЗрдЬ рджреЗрдВ, рдЕрдиреНрдпрдерд╛ рдпрд╣ рдкреНрд░реЙрдХреНрд╕реА рд╡рд┐рдзрд┐ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВ рддрдп рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рд░рд┐рд╡рд░реНрд╕ рдмреНрд░рд┐рдЬ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рдЬрд╛рд╡рд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬрд╛рд╡рд╛ рдкреНрд░реЙрдХреНрд╕реА рд╡рд┐рдзрд┐ рд╕реЗ рдЧреБрдЬрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдкрд╛рдпрдерди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓ рд╕рдХреЗред рдЗрд╕рд▓рд┐рдП рдореЗрд░реЗ рдкрд╛рд╕ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЕрднреА рднреА рд▓рдЧрднрдЧ 6 рдорд╣реАрдиреЗ рдХрд╛ рд╕рдордп рд╣реИред рдЖрдк рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП epypj рд╢рд╛рдЦрд╛ (рд░рд┐рд╡рд░реНрд╕ рдмреНрд░рд┐рдЬ рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рдирд╛рдо) рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЬрд╛рд╡рд╛ рд╕реЗ рд╡рд╛рдкрд╕ рдкрд╛рдпрдерди рдкрд░ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдордХреНрдЦреА рдкрд░ рдЬрд╛рд╡рд╛ рдХрдХреНрд╖рд╛рдПрдВ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП ASM рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЗрдирд╡реЛрдХрд░ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреИрдЯрд░реНрди рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдг рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП, рдЬреЗрдкреА рдЯрд╛рдЗрдк рдХреЗ рдХреБрдЫ рдЯреБрдХрдбрд╝реЗ рд╣реИрдВ рдЬреЛ рдпрд╣ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ JPypeReferenceQueue (рджреЗрд╢реА/рдЬрд╛рд╡рд╛/org/jpype/ref/JPypeReferenceQueue) рд╣реИ рдЬреЛ рдПрдХ рдЬрд╛рд╡рд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд╛рдпрдерди рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЬреАрд╡рди рдХреЛ рдмрд╛рдВрдзрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрдлрд░ рдФрд░ рдЕрдиреНрдп рдЪреАрдЬреЗрдВ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЬрд╛рд╡рд╛ рдХреЛ рдПрдХ рдЕрд╡рдзрд┐ рдХреЗ рд▓рд┐рдП рдкрд╛рдпрдерди рдЕрд╡рдзрд╛рд░рдгрд╛ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рджреВрд╕рд░рд╛ рд╡реИрд╢реНрд╡рд┐рдХ рд╕рдВрджрд░реНрднреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ рддрд╛рдХрд┐ рдкрд╛рдпрдерди рдЬрд╛рд╡рд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рджрд╛рдпрд░реЗ рдореЗрдВ рд░рдЦ рд╕рдХреЗред рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдХрд░реНрддрд╛ рд▓рд┐рдВрдХ (рджреЗрд╢реА/рдЖрдо/jp_gc.cpp) рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬреЛ рдХрд┐рд╕реА рднреА рд╕рд┐рд╕реНрдЯрдо рдХреЛ GC рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрдирддрд╛ рд╣реИ рдФрд░ рдХреБрдЫ рд╢рд░реНрддреЛрдВ (рдкреВрд▓ рдХрд╛ рдЖрдХрд╛рд░, рд╕рд╛рдкреЗрдХреНрд╖ рд╡реГрджреНрдзрд┐) рд╣реЛрдиреЗ рдкрд░ рдЗрд╕реЗ рджреВрд╕рд░реЗ рдкрд░ рдкрд┐рдВрдЧ рдХрд░рддрд╛ рд╣реИред рдЕрдВрддрд┐рдо рдкреНрд░реЙрдХреНрд╕реА рдХреЛ рдХрдордЬреЛрд░ рд╕рдВрджрд░реНрднреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЕрдиреНрдпрдерд╛ рд▓реВрдк рдмрдирд╛рддреЗ рд╣реИрдВ (рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░реЙрдХреНрд╕реА рдЬрд╛рд╡рд╛ рдЖрдзрд╛ рдХрд╛ рд╕рдВрджрд░реНрдн рд░рдЦрддрд╛ рд╣реИ рдФрд░ рдЬрд╛рд╡рд╛ рдЖрдзрд╛ рдЕрдВрдХ рдкрд╛рдпрдерди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рд╡рд╛рдкрд╕ рдЖрддрд╛ рд╣реИ)ред рдЖрдЦрд┐рд░рдХрд╛рд░ рдореИрдВ рдПрдХ рдПрдЬреЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд░рдЦрддрд╛ рд╣реВрдВ рддрд╛рдХрд┐ рдкрд╛рдпрдерди рдХреЛ рдЬрд╛рд╡рд╛ рдХреЛ рдкрд╛рд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓ рд╕рдХреЗ рд▓реЗрдХрд┐рди рд╡рд╣ рд╕рдбрд╝рдХ рд╕реЗ рдиреАрдЪреЗ рд╣реИред

рдореИрдВ рдбреЗрд╕реНрдХрдЯреЙрдк рдкрд░ рдкрд╛рдпрдЬрдирд┐рдпрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реВрдВ, рди рдХрд┐ рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ред рдЬрдм рдореИрдВрдиреЗ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╢реБрд░реВ рдХрд┐рдпрд╛ рддреЛ рдореБрдЭреЗ рдЬреЗрдкреА рдЯрд╛рдЗрдк рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдирд╣реАрдВ рдерд╛ рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЬрд╛рдВрдЪ рдХреА рдХрд┐ рдЕрдВрддрд░ рдХреНрдпрд╛ рд╣реИрдВред

рдкрд╛рдпрдЬрдирд┐рдпрд╕ рдореЗрдВ рдПрдХ рдЕрдиреВрдареА рд╡рд┐рд╢реЗрд╖рддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдХреЙрд▓рд░ рдпрд╣ рддрдп рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╕рдВрд░рдХреНрд╖рд┐рдд рдФрд░ рдирд┐рдЬреА рд╡рд┐рдзрд┐рдпреЛрдВ рдФрд░ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдореЗрд░реА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЗрд╡рд▓ рдЬрдирддрд╛ рдХреЗ рд▓рд┐рдП рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕ рддрд░реНрдХ рдХреЛ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдЧреИрд░-рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреНрд╖реЗрддреНрд░реЛрдВ рдФрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реИред

рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд░реНрд╢рди рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдореИрдВрдиреЗ рдирд┐рдореНрди рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдП:

package org.pkg;

public class MyClass {

  public MyClass() {
  }

  public int number = 42;

  public float add1(float x, float y) {
    return x + y;
  }

  public float add2(float x, float y) {
    return x + y;
  }

  public float add2(int x, int y) {
    return x + y;
  }
}

рдЬреЗрдкреА рдЯрд╛рдЗрдк рдореЗрдВ:

In [1]: import jpype
   ...: import jpype.imports
   ...: jpype.startJVM()
   ...: from org.pkg import MyClass
   ...: myInstance = MyClass()
   ...:

In [2]: %timeit myInstance.number
640 ns ┬▒ 2.65 ns per loop (mean ┬▒ std. dev. of 7 runs, 1000000 loops each)

In [3]: %timeit myInstance.add1(10.3, 20.5)
2.13 ┬╡s ┬▒ 24.8 ns per loop (mean ┬▒ std. dev. of 7 runs, 100000 loops each)

In [4]: %timeit myInstance.add2(10.3, 20.5)
2.19 ┬╡s ┬▒ 9.41 ns per loop (mean ┬▒ std. dev. of 7 runs, 100000 loops each)

рдкрд╛рдпрдЬрдирд┐рдпрд╕ рдореЗрдВ:

In [1]: import jnius

In [2]: MyClass = jnius.autoclass('org.pkg.MyClass')

In [3]: myInstance = MyClass()

In [4]: %timeit myInstance.number
161 ns ┬▒ 0.104 ns per loop (mean ┬▒ std. dev. of 7 runs, 10000000 loops each)

In [5]: %timeit myInstance.add1(10.3, 20.5)
1.04 ┬╡s ┬▒ 8.16 ns per loop (mean ┬▒ std. dev. of 7 runs, 1000000 loops each)

In [6]: %timeit myInstance.add2(10.3, 20.5)
2.71 ┬╡s ┬▒ 11.2 ns per loop (mean ┬▒ std. dev. of 7 runs, 100000 loops each)

рдЕрддрд┐рднрд╛рд░рд┐рдд рд╡рд┐рдзрд┐ рдХреЛ рдЫреЛрдбрд╝рдХрд░, рдкрд╛рдпрдЬрдирд┐рдпрд╕ рдХрд╛рдлреА рддреЗрдЬ рд╣реИред рд╣рдореЗрдВ рдиреЛрдЯреНрд╕ рдХреА рддреБрд▓рдирд╛ рдЗрд╕ рдмрд╛рдд рдкрд░ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рддрдп рдХрд┐рдпрд╛ рдЬрд╛рдП рдХрд┐ рд╡рд┐рдзрд┐ рдХреЗ рдЕрддрд┐рднрд╛рд░рд┐рдд рд╣реЛрдиреЗ рдкрд░ рдХрд┐рд╕ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПред рдкрд╛рдпрдЬрдирд┐рдпрд╕ рдореЗрдВ рдпрд╣ рд╕реНрдХреЛрд░рд┐рдВрдЧ рддрдВрддреНрд░ рд╣реИ рдЬреЛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдУрд╡рд░рд╣реЗрдб рдЬреЛрдбрд╝рддрд╛ рд╣реИред JPype рдЙрд╕ рдирд┐рд░реНрдгрдп рдХреЛ рдмрд╣реБрдд рддреЗрдЬреА рд╕реЗ рдХрд░рддрд╛ рд╣реИред

рдЕрдВрдд рдореЗрдВ, рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП:

In [9]: def add(x, y):
   ...:     return x + y
   ...:

In [10]: %timeit add(10.3, 20.5)
82.9 ns ┬▒ 0.187 ns per loop (mean ┬▒ std. dev. of 7 runs, 10000000 loops each)

рдмреЗрд╢рдХ, рдХреБрдЫ ┬╡ рдХреЗ рдЕрдВрддрд░ рдорд╛рдореВрд▓реА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдХреЛрдИ рдмрд╣реБрдд рдЬрд▓реНрджреА рд╣рдЬрд╛рд░реЛрдВ рдЫреЛрдЯреА рдХреЙрд▓ рдХрд░ рд░рд╣рд╛ рд╣реИ, рддреЛ рдпрд╣ рдЬреБрдбрд╝ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдореБрдЭреЗ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

JPype рдХрд╛ numpy рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рдХрд╛рдлреА рдЕрдЪреНрдЫрд╛ рдФрд░ рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЖрд╕рд╛рди рд╣реИред рдореИрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдХреИрд╕реЗ рд╢реЛрдзрдХрд░реНрддрд╛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЬрдЯрд┐рд▓ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рдмрд┐рдирд╛ рдЬрд╛рд╡рд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рдмрдбрд╝реЗ рд╕рд░рдгреА рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред рдореБрдЭреЗ рдмрдбрд╝реЗ рд╕рд░рдгреА рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдореИрдВ рдЗрд╕реЗ tobytes() рдФрд░ рд╡рд┐рд╢реЗрд╖ рдЬрд╛рд╡рд╛ рдХреЛрдб рдХреЗ рд╕рд╛рде рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ рдмрд╛рдЗрдЯреНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрд╛рд╣рд┐рд░ рд╣реИ рдХрд┐ рдпрд╣ рдЙрддрдирд╛ рд╕рд╛рдл рдпрд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реИред

рдЬреЗрдкреА рдЯрд╛рдЗрдк рдЧрддрд┐ рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдПрдХ рд╣реИ-рдХреНрдпрд╛-рдпрд╣-рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред рдЬреЗрдкреА рдЯрд╛рдЗрдк рдмреБрд░реА рдЪреАрдЬреЛрдВ рд╕реЗ рдмрдЪрд╛рд╡ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд░рдХреНрд╖рд╛рддреНрдордХ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЧреИрд░-рддреБрдЪреНрдЫ рдУрд╡рд░рд╣реЗрдб рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЬрдм рднреА рдХреЛрдИ рдЬрд╛рд╡рд╛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдереНрд░реЗрдб рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдмрд╛рд╣рд░реА рдереНрд░реЗрдб рдЬреИрд╕реЗ рдЖрдИрдбреАрдИ рд╕реЗ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рд╣рдо segfault рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдореЗрд░реЗ рд╕реНрдерд╛рдиреАрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдореВрд╣ рд╕рднреА рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рд╣реИрдВ рдЗрд╕рд▓рд┐рдП рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рдХреБрдЫ рдмрд╣реБрдд рд╣реА рднрдпрд╛рдирдХ рдХреНрд░реЙрд╕ рд╡рд╛рдпрд░рд┐рдВрдЧ рдХреЗ рдЦрд┐рд▓рд╛рдл рдмрд╣реБрдд рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИрдВред рдЕрдЧрд░ рдХрднреА рдХреБрдЫ рдЙрди рдкрд░ segfaults (рдЪрд╛рд╣реЗ рд╡рд╣ рдХрд┐рддрдирд╛ рднреА рдкрд╛рдЧрд▓ рд╣реЛ), рддреЛ рдореИрдВ рдЕрд╕рдлрд▓ рд░рд╣рд╛ред (рдЬреЛ рдЬрд╛рдирдмреВрдЭрдХрд░ рдЦрд░рд╛рдм рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рд╕рд╣рд┐рдд 1500 рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░реЗрдЧрд╛ред)

рджреВрд╕рд░рд╛, рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рдХрд╛рд░реНрдп рдореЗрдВ рдмрд╣реБрдд рдЫреЛрдЯреЗ рдЕрдВрддрд░реЛрдВ рдореЗрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рдЧрддрд┐ рдмрд╣реБрдд рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреА рд╣реИред рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рддреБрдЪреНрдЫ рдЙрджрд╛рд╣рд░рдг рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдерд╛ред рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдкрд╣реБрдВрдЪ рдХреА рдЧрддрд┐ рдмрджрд▓ рд╕рдХрддреА рд╣реИред

рдЖрдкрдХреЗ рдЧрддрд┐ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдПрдХ int рдлрд╝реАрд▓реНрдб рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░ рд░рд╣реЗ рд╣реИрдВред

  • PyJnius рдореЗрдВ рдпрд╣ рдСрдмреНрдЬреЗрдХреНрдЯ рд▓реБрдХрдЕрдк рдХреЗ рд▓рд┐рдП рдПрдХ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдмрдирд╛рддрд╛ рд╣реИ, рдлрд╝реАрд▓реНрдб рддрдХ рдкрд╣реБрдБрдЪрддрд╛ рд╣реИ, рдПрдХ рдирдпрд╛ рдкрд╛рдпрдерди рд▓реЙрдиреНрдЧ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдЙрд╕реЗ рд╡рд╛рдкрд╕ рдХрд░рддрд╛ рд╣реИред
  • рдЬреЗрдкреА рдЯрд╛рдЗрдк рдореЗрдВ, рдпрд╣ рдСрдмреНрдЬреЗрдХреНрдЯ рд▓реБрдХрдЕрдк рдХреЗ рд▓рд┐рдП рдПрдХ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдмрдирд╛рддрд╛ рд╣реИ, рдлрд╝реАрд▓реНрдб рддрдХ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИ, рдПрдХ рдирдпрд╛ рдкрд╛рдпрдерди рд▓рдВрдмрд╛ рдмрдирд╛рддрд╛ рд╣реИ, рдлрд┐рд░ рдЬрд╛рд╡рд╛ рдЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рд░реИрдкрд░ рдкреНрд░рдХрд╛рд░ рдмрдирд╛рддрд╛ рд╣реИ, рдкрд╛рдЗрдерди рд▓рдВрдмреА рдореЗрдореЛрд░реА рдХреЛ рдЬреЗрдЖрдИрдПрдирдЯреА рдореЗрдВ рдХреЙрдкреА рдХрд░рддрд╛ рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рдкрд╛рдЗрдерди рдореЗрдВ рд╡реНрдпреБрддреНрдкрдиреНрди рдмрдирд╛рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ рдкреВрд░реНрдгрд╛рдВрдХ рд╡рд░реНрдЧ рд╕реАрдзреЗ), рдлрд┐рд░ рдЬрд╛рд╡рд╛ рдорд╛рди рдХреЗ рд╕рд╛рде рд╕реНрд▓реЙрдЯ рдХреЛ рдмрд╛рдВрдзрддрд╛ рд╣реИ, рдФрд░ рдЕрдВрдд рдореЗрдВ рдкрд░рд┐рдгрд╛рдореА JInt рджреЗрддрд╛ рд╣реИред

рддреЛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдХрд┐рд╕реА рдХреНрд╖реЗрддреНрд░ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдкрд░ рд╕реНрдкреАрдб рдмреЗрдВрдЪрдорд╛рд░реНрдХрд┐рдВрдЧ рдХрд░рдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рддреБрдЪреНрдЫ рдХреБрдЫ рднреА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрддрдирд╛ рдЫреЛрдЯрд╛ рдирд╣реАрдВ рд╣реИред
рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдиреЗ рдПрдХ рдкрд╛рдпрдерди рд▓рдВрдмрд╛ рд▓реМрдЯрд╛рдпрд╛ рдФрд░ рджреВрд╕рд░рд╛ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬрд╛рд╡рд╛ рдкреВрд░реНрдгрд╛рдВрдХ (рдЬреЛ рдЬрд╛рд╡рд╛ рд░реВрдкрд╛рдВрддрд░рдг рдирд┐рдпрдореЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддрд╛ рд╣реИ) рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рдЕрддрд┐рднрд╛рд░рд┐рдд рд╡рд┐рдзрд┐ рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдареАрдХ рд╕реЗ рдмрд╛рдВрдз рд╕рдХрддрд╛ рд╣реИред рдПрдХ рд░реИрдкрд░ рдкреНрд░рдХрд╛рд░ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рдо рдХреЗрд╡рд▓ рдПрдХ рдкрд╛рдпрдерди рдкреНрд░рдХрд╛рд░ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рд╕реЗ рдХрд╣реАрдВ рдЕрдзрд┐рдХ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЧрддрд┐ рдореЗрдВ рдПрдХ рдмрдбрд╝рд╛ рдЕрдВрддрд░ рд╣реИред

рдореИрдВрдиреЗ рдХреБрдЫ рднрд┐рдиреНрди рдлрд╝реАрд▓реНрдб рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдХреЗ рдЗрд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЬрдм рдореИрдВрдиреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝реАрд▓реНрдб рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛, рддреЛ рдЬреЗрдирд┐рдпрд╕ рдиреЗ "рд╣рд╛рд░реНрдиреЗрд╕.рдСрдмреНрдЬреЗрдХреНрдЯрдлрд┐рд▓реНрдб = рд╣рд╛рд░реНрдиреЗрд╕" рдХреЛрдб рдкрд░ segfaulted рдХрд┐рдпрд╛ред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрд░реЙрд╕ рд╡рд╛рдпрд░рд┐рдВрдЧ рдХреЗ рдЙрд╕ рд╡рд┐рд╢реЗрд╖ рдЯреБрдХрдбрд╝реЗ рдиреЗ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдХреНрдпреЛрдВ рдкреИрджрд╛ рдХреА, рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдЕрд╕рдлрд▓ рд░рд╣рд╛ред рдореБрдЭреЗ рд╕рдХрд▓ рдЕрдкрд░рд╛рдзрд┐рдпреЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рд╕реЗ рдкрд░реЗ рдЬреЗрдкреА рдЯрд╛рдЗрдк рдХреЗ рд▓рд┐рдП рдЧрддрд┐ рдореЗрдВ рдЬреНрдпрд╛рджрд╛ рджрд┐рд▓рдЪрд╕реНрдкреА рдирд╣реАрдВ рд╣реИ, рдЬрд┐рд╕рдиреЗ рдХреЙрд▓рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП 3-5 рд╕реНрдкреАрдб рдЕрдк рдФрд░ рдХреБрдЫ рд╕рд░рдгреА рдПрдХреНрд╕реЗрд╕ рдХреЗ рд▓рд┐рдП 300 рдЧреБрдирд╛ рдХрд╛ рдХрд╛рд░рдХ рджрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдореБрдЭреЗ рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдФрд░ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХрд┐рди рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдореИрдВ рд╕реБрд░рдХреНрд╖рд╛ рдХреЛ рд╣рдЯрд╛рдП рдмрд┐рдирд╛ рдпрд╛ рд╡рд╛рдкрд╕реА рдЕрдиреБрдмрдВрдз (рдЬреЛ рдореИрдВ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛) рдХреЛ рд╣рдЯрд╛рдП рдмрд┐рдирд╛ рдЗрд╕реЗ PyJnius рдЬреИрд╕реА рдирдВрдЧреА рд╣рдбреНрдбрд┐рдпреЛрдВ рддрдХ рдХрдо рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдЕрдзрд┐рдХрддрдо 10-30% рдЧрддрд┐ рдЕрднреА рднреА рд╕рдВрднрд╡ рд╣реИ,

рдирд┐рдЬреА рдФрд░ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХреНрд╖реЗрддреНрд░реЛрдВ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рдРрд╕рд╛ рдХрд░рдирд╛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рдВрднрд╡ рд╣реИред рдореИрдВ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реАрдзреЗ рд╡рд╕реНрддреБ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдкреНрд░рддрд┐рдмрд┐рдВрдм рдпрд╛ рдЕрдиреНрдп рдЖрдВрддрд░рд┐рдХ рдкрд╣реБрдВрдЪ рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЕрдЧрд░ рдореБрдЭреЗ рдРрд╕рд╛ рдХреБрдЫ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╣реЛрддрд╛ рддреЛ рдореИрдВ рд╕рдВрднрд╡рддрдГ _private рдирд╛рдордХ рдПрдХ рдлрд╝реАрд▓реНрдб рдмрдирд╛рдЙрдВрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рдРрд╕реЗ рдлрд╝реАрд▓реНрдб рд╣реЛрдВрдЧреЗ рдЬреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рдЙрдЬрд╛рдЧрд░ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред JPype рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рд╡рд░реНрдЧ рдЖрд╡рд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореЗрд░реЗ рдкрд╛рд╕ рдареАрдХ рдЕрдирд╛рдЬ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд░рд╛рд╕реНрддреЗ рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рдирд╣реАрдВ рд╣реИред рддреЛ рдЖрдк рдЙрд╕ рд╡рд░реНрдЧ рдХреЛ рдмрдирд╛рдиреЗ рдХрд╛ рдЪрдпрди рдирд╣реАрдВ рдХрд░ рд╕рдХреЗ рдЬрд┐рд╕рдореЗрдВ рдирд┐рдЬреА рдкрд╣реБрдВрдЪ рд╣реЛ рдФрд░ рдлрд┐рд░ рдЙрд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рджреВрд╕рд░реА рд╡рд╕реНрддреБ рдмрдирд╛рдПрдВ рдФрд░ рдирд┐рдЬреА рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рди рд╣реЛред рдореИрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рд╕рд╛рде рдЙрд╕ рд╕рдбрд╝рдХ рд╕реЗ рдиреАрдЪреЗ рдЪрд▓рд╛ рдЧрдпрд╛, рдФрд░ рдпрд╣ рдПрдХ рдЖрдкрджрд╛ рдереА рдЬрд┐рд╕рдореЗрдВ рдХреБрдЫ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдиреЗ рдПрдХ рдиреАрддрд┐ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдФрд░ рдЕрдиреНрдп рдиреЗ рдПрдХ рдЕрд▓рдЧ рдиреАрддрд┐ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЕрд╕рдВрдЧрддрд┐ рд╣реБрдИред

рдореИрдВрдиреЗ рд╕рд░рдгреА рд╕реВрдЪреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреБрдЫ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдПред

import jpype
import timeit
jpype.startJVM()
ArrayList = jpype.JClass("java.util.ArrayList")

def pack():
    ja = ArrayList()
    for i in range(1000):
        ja.add(i)

def iter(ja):
    u = 0
    for i in ja:
        u+=i

def access(ja):
    u = 0
    for i in range(len(ja)):
        u+=ja.get(i)

def access2(ja):
    u = 0
    for i in range(len(ja)):
        u+=ja[i]


ja = ArrayList()
for i in range(1000):
   ja.add(i)

print("Pack arraylist %e"%( timeit.timeit("pack()", globals=globals(), number=1000)/1e6))
print("Iterate arraylist %e"%(timeit.timeit("iter(ja)", globals=globals(), number=1000)/1e6))
# Get is a direct call
print("Access(get) arraylist %e"%(timeit.timeit("access(ja)", globals=globals(), number=1000)/1e6))
# [] is emulated
print("Access([]) arraylist %e"%(timeit.timeit("access2(ja)", globals=globals(), number=1000)/1e6))

рдЬреЗрдкреА рдЯрд╛рдЗрдк

рдкреИрдХ рдРрд░реЗрд▓рд┐рд╕реНрдЯ 2.768904e-06
рдкреБрдирд░рд╛рд╡реГрддрд┐ рд╕рд░рдгреАрд╕реВрдЪреА 5.208071e-06
рдПрдХреНрд╕реЗрд╕ (рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ) рд╕рд░рдгреАрд╕реВрдЪреА 4.037985e-06
рдПрдХреНрд╕реЗрд╕ ([]) рд╕рд░рдгреА рд╕реВрдЪреА 4.690264e-06

рдЬреАрдирд┐рдпрд╕

рдкреИрдХ рд╕рд░рдгреАрд╕реВрдЪреА 3.322248e-06
рдкреБрдирд░рд╛рд╡реГрддрд┐ рд╕рд░рдгреАрд╕реВрдЪреА 4.099314e-06
рдПрдХреНрд╕реЗрд╕ (рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ) рд╕рд░рдгреА рд╕реВрдЪреА 5.653444e-06
рдПрдХреНрд╕реЗрд╕ ([]) рд╕рд░рдгреАрд╕реВрдЪреА 7.762727e-06

рдпрд╣ рдХрд╣рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕реБрд╕рдВрдЧрдд рдХрд╣рд╛рдиреА рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡реЗ рд╢рд╛рдпрдж рдмрд╣реБрдд рдЕрд▓рдЧ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рд╡реЗ рдмрд╣реБрдд рдЕрд▓рдЧ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдЬреЛ рдХреБрдЫ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд╡рд╣ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рд╣реИрдВ, рддреЛ рд╡реЗ рдХрд╛рдлреА рд╣рдж рддрдХ рд╕рдорд╛рди рд╣реИрдВред рдкрд╛рд╕рд┐рдВрдЧ рд╕рд░рдгрд┐рдпрд╛рдБ рдЬреЛ рдкреВрд░реНрд╡-рд░реВрдкрд╛рдВрддрд░рд┐рдд рд╣реИрдВ JPype 100 рдЧреБрдирд╛ рддреЗрдЬ рд╣реИ, рдХрдиреНрд╡рд░реНрдЯ рд╕реВрдЪрд┐рдпрд╛рдБ рдФрд░ tuples JPype 2 рдЧреБрдирд╛ рдзреАрдорд╛ рд╣реИ (рд╣рдо рд╡реЗрдХреНрдЯрд░ рдПрдХреНрд╕реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдпрд╛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЯреБрдкрд▓реНрд╕ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдмрд╛рдИрдкрд╛рд╕ рд╣реИрдВ)ред рддреЛ рд▓рдмреНрдмреЛрд▓реБрдЖрдм рдпрд╣ рд╣реИ рдХрд┐ рдЖрдкрдХреА рдХреЛрдбрд┐рдВрдЧ рд╢реИрд▓реА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдпрд╣ рдПрдХ рдпрд╛ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рддреЗрдЬрд╝ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдлрд┐рд░ рдореЗрд░реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЖрдорддреМрд░ рдкрд░ рдЧрддрд┐ рдХреЗ рдмрдЬрд╛рдп рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЖрд╕рд╛рдиреА рдФрд░ рдмреБрд▓реЗрдЯ рдкреНрд░реВрдл рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдЬреЗрдкреА рдЯрд╛рдЗрдк рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВред (рдЖрд╣, рдореИрдВ рдХрд┐рд╕рд╕реЗ рдордЬрд╛рдХ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ! рд╡реЗ рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рджреВрд░ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд╕рдорд╛рди рд╣реА рдареЛрдХрд░ рдЦрд╛ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ JPype Google рдкрд░ рдкрд╛рдпрд╛ рдЧрдпрд╛ рдкрд╣рд▓рд╛ рд▓рд┐рдВрдХ рдерд╛ред)

рдЬреЗрдкреА рдЯрд╛рдЗрдк рдХреИрд╕реЗ рдмрд╛рдзреНрдпрдХрд╛рд░реА рд╡рд┐рдзрд┐ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рд╡рд┐рд╡рд░рдг рдбреЗрд╡рд▓рдкрд░/рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╡рд┐рдзрд┐ рдмрд╛рдзреНрдпрдХрд╛рд░реА рдЬрд╛рд╡рд╛ рд╕реНрдкреЗрдХ рдореЗрдВ рджрд┐рдП рдЧрдП рдирд┐рдпрдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдкреНрд░реЗрд╖рдг рдХреЗ рд▓рд┐рдП рд╡рд┐рдзрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдХреЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ рддрд╛рдХрд┐ рдЕрдЧрд░ рдХреБрдЫ рдФрд░ рдХреБрдЫ рдЫреБрдкрд╛рддрд╛ рд╣реИ рддреЛ рдпрд╣ рд╕реВрдЪреА рдореЗрдВ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ (рдХреЛрдб рджреЗрд╢реА/рдЬрд╛рд╡рд╛/рдУрдЖрд░рдЬреА/рдЬреЗрдкреАрдИрдкреА рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдЬрдм рдкрд╣рд▓реА рдмрд╛рд░ рдкреНрд░реЗрд╖рдг рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдЫрдБрдЯрд╛рдИ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ)ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдзрд┐ рдХреЛ рд╡рд░реАрдпрддрд╛ рд╕реВрдЪреА рджреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рдХреМрди рд╕реА рд╡рд┐рдзрд┐ рджреВрд╕рд░реЗ рдХреЛ рдЫреБрдкрд╛рддреА рд╣реИред рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рддрд░реНрдХ рдХреЗ рд▓рд┐рдП "рдЬрд╛рд╡рд╛ рд╕реНрд▓реЙрдЯ" рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдкрд╣рд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рддрд░реНрдХ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдХреЗ рд╕рдВрдХрд▓реНрдк рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдЬрд╛рд╡рд╛ рд╕реНрд▓реЙрдЯ рдореМрдЬреВрджрд╛ рд╡рд╕реНрддреБрдУрдВ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдХрд┐рд╕реА рд░реВрдкрд╛рдВрддрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдЪ рд╕реЗ рдкрд╣рд▓реЗ рдЗрдиреНрд╣реЗрдВ рд░рд╛рд╕реНрддреЗ рд╕реЗ рд╣рдЯрд╛рдиреЗ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдо рдирд┐рд╣рд┐рдд рдирд┐рдпрдореЛрдВ рдХреЗ рдмрдЬрд╛рдп рдкреНрд░рддреНрдпрдХреНрд╖ рдирд┐рдпрдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рддрдм 4 рд╕реНрддрд░реЛрдВ (рд╕рдЯреАрдХ, рдирд┐рд╣рд┐рдд, рд╕реНрдкрд╖реНрдЯ, рдХреЛрдИ рдирд╣реАрдВ) рдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рддрд░реНрдХ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдкрд░ рдХрдо рдХрдЯреМрддреА рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрдЧрд▓реА рд╡рд┐рдзрд┐ рдкрд░ рдХреВрджрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдирд╣реАрдВред рдпрджрд┐ рдпрд╣ рдХрднреА рд╕рдЯреАрдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдпрд╣ рдХреЙрд▓ рдкрд░ рдХреВрджрдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЫреЛрдЯрд╛ рдХрд░ рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рдХреЛрдИ рдореЗрд▓ рд╣реИ рддреЛ рдпрд╣ рдЙрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдЫреБрдкрд╛рдПрдЧрд╛ рдЬрд┐рдирдореЗрдВ рдХрдо рд╡рд┐рд╢рд┐рд╖реНрдЯ рдмрд╛рдзреНрдпрдХрд╛рд░реА рд╣реИрдВред рдпрджрд┐ рджреЛ рдирд┐рд╣рд┐рдд рдорд┐рд▓рд╛рди рдкрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ рдЬреЛ рдЫрд┐рдкреЗ рдирд╣реАрдВ рдереЗ рддреЛ рдпрд╣ рдПрдХ TypeError рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддрд╛ рд╣реИред рдПрдХ рдмрд╛рд░ рдЬрдм рд╕рднреА рдореИрдЪ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ рддреЛ рд░реВрдкрд╛рдВрддрд░рдг рджрд┐рдирдЪрд░реНрдпрд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛ рдЬрд╛рддреА рд╣реИред рдпрд╣ рддрдм рдкрд╛рдпрдерди рдЧреНрд▓реЛрдмрд▓ рд▓реЙрдХ рдХреЛ рдореБрдХреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЧреНрд▓реЛрдмрд▓ рд▓реЙрдХ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рд░рд┐рдЯрд░реНрди рдкреНрд░рдХрд╛рд░ рдХреЛ рджреЗрдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд▓реМрдЯрд╛рдП рдЧрдП рдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдирдпрд╛ рдкрд╛рдпрдерди рд░реИрдкрд░ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдпрд╣ рдХреЙрдиреНрд╡реЗрдВрдЯ рд░рд┐рдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЗрд╕рд▓рд┐рдП рд▓реМрдЯрд╛рдпрд╛ рдЧрдпрд╛ рдкреНрд░рдХрд╛рд░ рд╡рд┐рдзрд┐ рд╕реЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рдмрдЬрд╛рдп рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╡реНрдпреБрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ)ред рдпрд╣ рдЬреНрдпрд╛рджрд╛рддрд░ рдУрд╡рд░рд▓реЛрдб рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рд░реИрдЦрд┐рдХ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡рд┐рд╡рд┐рдз рддрд░реНрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЬрдЯрд┐рд▓рддрд╛рдПрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдкреВрд░реНрд╡-рдирд┐рд░реНрдорд┐рдд рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдпрд╣ рдлреВ (рдбрдмрд▓, рдбрдмрд▓) рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдлреВ (рд▓рдВрдмреА, рд▓рдВрдмреА) рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдЧрд╛ рдФрд░ рдПрдХ рд╣рд┐рдЯ (рд▓рдВрдмрд╛) , рд▓рдВрдмрд╛) рдЬрд╛рд╡рд╛ рд╡рд┐рдзрд┐ рд╕рдорд╛рдзрд╛рди рдирд┐рдпрдореЛрдВ рдХреЗ рдХрд╛рд░рдг рдорд┐рд▓рд╛рди рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рд╕реЗ рдбрдмрд▓, рдбрдмрд▓ рдХреЛ рд░реЛрдХ рджреЗрдЧрд╛ред рдЕрднреА рднреА рдХреБрдЫ рдЧрддрд┐ рдЕрдк рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдХреИрд╢рд┐рдВрдЧ рдЯреЗрдмрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рдЬрдм рдореИрдВрдиреЗ 2017 рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╢реБрд░реВ рдХрд┐рдпрд╛ рддреЛ рдореБрдЭреЗ рд╢реЙрд░реНрдЯ рдХрдЯ рдХреЗ рд╕рд╛рде рдСрд░реНрдбрд░рд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ред рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдУрд╡рд░рд╣реЗрдб рдХреЛ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХреИрд╢ рдФрд░ рдЬрд╛рд╡рд╛ рд╕реНрд▓реЙрдЯ рдХреЛ рдЫрд┐рдкрд╛рдиреЗ рдХреА рд╡рд┐рдзрд┐ рдХреЛ рдЬреЛрдбрд╝рд╛ред

рдореИрдВрдиреЗ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рд╖реНрдкрд╛рджрди рдкрде рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ред рдЬреЗрдкреА рдЯрд╛рдЗрдк рдХреЗ рд▓рд┐рдП рд╕рдВрд╢реЛрдзрд┐рдд рд╕рдВрдЦреНрдпрд╛рдПрдВ рд╣реИрдВ

рдкреИрдХ рд╕рд░рдгреАрд╕реВрдЪреА 2.226081e-06
рдкреБрдирд░рд╛рд╡реГрддрд┐ рд╕рд░рдгреАрд╕реВрдЪреА 4.082152e-06
рдПрдХреНрд╕реЗрд╕ (рдкреНрд░рд╛рдкреНрдд) рд╕рд░рдгреА рд╕реВрдЪреА 2.962606e-06
рдПрдХреНрд╕реЗрд╕ ([]) рд╕рд░рдгреАрд╕реВрдЪреА 3.644642e-06

рдореЗрд░реЗ рд╕реНрдерд╛рдиреАрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдореВрд╣ рд╕рднреА рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рд╣реИрдВ рдЗрд╕рд▓рд┐рдП рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рдХреБрдЫ рдмрд╣реБрдд рд╣реА рднрдпрд╛рдирдХ рдХреНрд░реЙрд╕ рд╡рд╛рдпрд░рд┐рдВрдЧ рдХреЗ рдЦрд┐рд▓рд╛рдл рдмрд╣реБрдд рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИрдВред рдЕрдЧрд░ рдХрднреА рдХреБрдЫ рдЙрди рдкрд░ segfaults (рдЪрд╛рд╣реЗ рд╡рд╣ рдХрд┐рддрдирд╛ рднреА рдкрд╛рдЧрд▓ рд╣реЛ), рддреЛ рдореИрдВ рдЕрд╕рдлрд▓ рд░рд╣рд╛ред

рд╣рд╛рдБ, segfaults рднрдпрд╛рдирдХ рд╣реИрдВ рдФрд░ рдЬрдм рдореИрдВрдиреЗ pyjnius рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рддреЛ рдореБрдЭреЗ рдЙрдирдореЗрдВ рд╕реЗ рд╕реИрдХрдбрд╝реЛрдВ рдорд┐рд▓ рдЧрдПред рдореБрдЭреЗ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдХреЛрдИ рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╢рд╛рдпрдж рдореИрдВрдиреЗ рд╕реБрд░рдХреНрд╖рд╛ рдореБрджреНрджреЛрдВ рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ рдФрд░ рдЗрд╕реЗ рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ рдмрдирд╛рдпрд╛ред рдЕрдм рд╕рдм рдХреБрдЫ рдордЬрд╝рдмреВрддреА рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдЖрдкрдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЛ рд╕рдордЭрддрд╛ рд╣реВрдВред рдпрджрд┐ рдЖрдкрдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд┐рднрд┐рдиреНрди рдЬрд╛рд╡рд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрдзреЗ рдЬрд╛рд╡рд╛ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рд╣реИрдВ, рддреЛ рдПрдХ рд╕реЗрдЧрдлреЙрд▓реНрдЯ рдЙрдиреНрд╣реЗрдВ рдЕрдкрдирд╛ рд╕рд╛рд░рд╛ рдХрд╛рдо рдЦреЛ рджреЗрдЧрд╛ред JPype рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд▓рдЧрддрд╛ рд╣реИ рдЬрд╣рд╛рдБ рдЕрдВрддрд┐рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реАрдзреЗ Python рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ Java рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкрд╛рдпрдЬрдирд┐рдпрд╕ рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рдЕрд▓рдЧ рд╣реИ, рдЬреЛ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИред рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╕реБрд░рдХреНрд╖рд╛ рдореБрджреНрджреЗ рдбреЗрд╡рд▓рдкрд░ рдХреА рд╕рдорд╕реНрдпрд╛ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╢рд╛рдпрдж рд╕реБрд░рдХреНрд╖рд╛ рдмрдирд╛рдо рдЧрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд┐рдХрд▓реНрдк рдмрдирд╛рдирд╛ рдЙрдЪрд┐рдд рд╣реИред

рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВ "рдЬрдм рддрдХ рдЖрдк рдЗрд╕ рдХреНрд░рдо рдореЗрдВ рдЗрди рдЪреМрдХреЛрдВ рдкрд░ рдХрджрдо рд░рдЦрддреЗ рд╣реИрдВ, рддрдм рддрдХ рдпрд╣ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ" рдХрд╛ рдмрд╣реБрдд рдмрдбрд╝рд╛ рдкреНрд░рд╢рдВрд╕рдХ рдирд╣реАрдВ рд╣реВрдВред рдЬрдм рдореИрдВрдиреЗ JPype рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рддреЛ рдореБрдЭреЗ рд╕рднреА рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБрдУрдВ рдХреЛ рдмреБрд▓реЗрдЯ рдкреНрд░реВрдл рдХрд░рдиреЗ рдореЗрдВ рд▓рдЧрднрдЧ рдПрдХ рд╕рд╛рд▓ рдХрд╛ рд╕рдордп рд▓рдЧрд╛ рддрд╛рдХрд┐ рдореИрдВ рдЕрдкрдиреЗ рд╕реНрдерд╛рдиреАрдп рд╕рдореВрд╣ рдХреЛ рдХреЛрдб рдкрд╛рд╕ рдХрд░ рд╕рдХреВрдВред рдФрд░ рдореИрдВрдиреЗ рддрдм рд╕реЗ рджреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд░реНрд╖реЛрдВ рдХрд╛ API рдХрд╡рдЪ рдЬреЛрдбрд╝рд╛ рд╣реИред рдХреБрдЫ рджреБрд░реНрд▓рдн рд▓реЛрдЧреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЬрд┐рдирдХрд╛ JVM рд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ (рдЬрд┐рд╕реЗ рд╣рд▓ рдХрд░рдирд╛ рдмрд╣реБрдд рдХрдард┐рди рд╣реИ) рдХреБрдЫ рд╢реЗрд╖ рдореБрджреНрджреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ JPype рдХреЛ рдЙрддреНрдкрд╛рджрди рдХреЛрдб рдорд╛рдирдХреЛрдВ рддрдХ рд▓рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдЧрддрд┐ рдФрд░ рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд╕рд╛рде рд╡реНрдпрд╛рдкрд╛рд░ рдХреА рдмрд╛рдд рд╣реИ, рдЧрддрд┐ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рд╣реИ рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рд╕реБрд░рдХреНрд╖рд┐рдд рд╕рдВрдЪрд╛рд▓рди рдкрд░ рдХрдВрдЬреВрд╕реА рдХрд░рдХреЗ рдЧрддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЦрд░рд╛рдм рд╡реНрдпрд╛рдкрд╛рд░ рд╣реИред рдЪрд╛рд╣реЗ рдЖрдк рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЛрдб рдХреЛ рдмрджрд▓ рд░рд╣реЗ рд╣реЛрдВ рдпрд╛ рдЙрддреНрдкрд╛рджрди рдкреНрд░рдгрд╛рд▓реА рд▓рд┐рдЦ рд░рд╣реЗ рд╣реЛрдВ, рдХрд╛рдо рд░реЛрдХрдирд╛ рдФрд░ рд╕реЗрдЧрдлреЙрд▓реНрдЯ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдПрдХ рд╡реНрдпрд╛рдХреБрд▓рддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рд╕рд╛рдордирд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЕрдЧрд░ рдХреЛрдИ рдореБрдЭреЗ рдПрдВрдбреНрд░реЙрдЗрдб рдПрдореБрд▓реЗрдЯрд░ рдкрд░ рдЬреЗрдкреА рдЯрд╛рдЗрдк рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рджреЗрдиреЗ рдХреЛ рддреИрдпрд╛рд░ рд╣реИ, рддреЛ рдореИрдВ рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд╢реЛрдзрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВред

рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдкрд╛рдЗрдЬрдирд┐рдпрд╕ рдХреЛ рдкрд╛рдпрдерди-рдлреЙрд░-рдПрдВрдбреНрд░реЙрдЗрдб рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдорд┐рдд рдПрдХ рдЕрдЬрдЧрд░ рд╡рд┐рддрд░рдг рдХреА рдХрд▓рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкреИрдХреЗрдЬ рдХрд░рддреЗ рд╣реИрдВ, (рдЕрдХреНрд╕рд░ рдмрд┐рд▓реНрдбреЛрдЬрд░ рдХреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╕рд╛рди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╣реА рд╣реИ), рдФрд░ рдлрд┐рд░ рдПрдХ рдкрд╛рдпрдерди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЗрд╕ рд╡рд┐рддрд░рдг рдХреЛ рд╢рд┐рдк рдХрд░рддрд╛ рд╣реИ, рддрдм рдЖрдкрдХрд╛ рдЕрдЬрдЧрд░ рдХреЛрдб pyjnius рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдЕрдЬрдЧрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдЖрдпрд╛рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдРрдк рдЪрд▓рд╛рдиреЗ рдкрд░ рдЕрдЬрдЧрд░ рд╡рд┐рддрд░рдг рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдкрд╣рд▓рд╛ рдХрджрдо, рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╡рд┐рддрд░рдг рдореЗрдВ jpype рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рд╣реИ, рдЬреЛ рдХрд┐ p4a (https://github.com/kivy/python-for-android/) рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдЖрдк рдЗрд╕реЗ рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдЖрдкрдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рдЖрдорддреМрд░ рдкрд░ ( рд▓реЗрдХрд┐рди рд╣рдореЗрд╢рд╛ рдирд╣реАрдВ) p4a рдХреЛ рд╕рдордЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ "рдиреБрд╕реНрдЦрд╛" рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХреИрд╕реЗ рдХрд░реЗрдВ рдЬреЛ рд╢реБрджреНрдз рдЕрдЬрдЧрд░ рдирд╣реАрдВ рд╣реИрдВ, pyjnius рдХреЗ рд▓рд┐рдП рдПрдХ рдпрд╣рд╛рдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ https://github.com/kivy/python-for-android/blob/ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ p4a.local_recipes рд╕реЗрдЯрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ buildozer.spec рдореЗрдВ рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╡реНрдпрдВрдЬрдиреЛрдВ рдХреЛ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдкрд╛рдпрдерди-рдлреЙрд░-рдлреЛрд░реНрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдЕрдкрдиреЗ рдиреБрд╕реНрдЦрд╛ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рд╣реИред

рдореИрдВ рдмрд┐рд▓реНрдбреЛрдЬрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрдзрд┐рдХ рдЪреАрдЬреЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ https://buildozer.readthedocs.io/en/latest/installation.html#targeting -android рдФрд░ рдЖрдк рдЪреАрдЬреЛрдВ рдХреЛ рдЖрдЬрдорд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрдерд╛рдиреАрдп рд╡реНрдпрдВрдЬрдиреЛрдВ рдХреЛ рдЕрднреА рднреА рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдкрд╣рд▓реЗ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рд╕рдордп рд▓рдЧреЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдЕрдЬрдЧрд░ рдФрд░ рд╣рд╛рде рдХреЗ рд▓рд┐рдП рдХрдИ рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рдмрдирд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдВрдбреНрд░реЙрдЗрдб рдПрдирдбреАрдХреЗ рдФрд░ рдПрд╕рдбреАрдХреЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЖрдк рд╢рд╛рдпрдж рдРрдк рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд┐рд╡реА рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдРрдк рдХреА рддрд░рд╣ "рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб" рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ jpype рдЖрдпрд╛рдд рдХрд░реЗрдЧрд╛ рдФрд░ рдХреЗрд╡рд▓ рд▓реЗрдмрд▓ рдореЗрдВ рдХреБрдЫ рдХреЛрдб рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛, рдпрд╛ рдкреНрд░рд┐рдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓реЙрдЧрдХреИрдЯ рдореЗрдВ рднреА, рдореИрдВ рдирд╣реАрдВ рдХрд░рддрд╛ рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдПрдВрдбреНрд░реЙрдЗрдб рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдХрд┐рд╡реА рдХрд┐рддрдиреА рдЕрдЪреНрдЫреА рддрд░рд╣ рдЪрд▓рддрд╛ рд╣реИ, рдореИрдВрдиреЗ рдХрднреА рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдиреЗ рдХрд┐рдпрд╛, рдФрд░ рддреНрд╡рд░рдг рд╕реЗрдЯрдЕрдк рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, afaik, рдЕрдиреНрдпрдерд╛ рдЖрдк рдПрд╕рдбреАрдПрд▓ 2 рд░реИрдкрд░, рдпрд╛ рд╡реЗрдмрд╡реНрдпреВ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдлреНрд▓рд╛рд╕реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдмреЛрддрд▓ рд╕рд░реНрд╡рд░ рдЪреАрдЬреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдкрд╣рд▓реЗ рдХрд┐рд╡реА рдХреЗ рд╕рд╛рде рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрдм рддрдХ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

Android рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдПрдХ linux рдпрд╛ osx рдорд╢реАрди (VM рдареАрдХ рд╣реИ, рдФрд░ рд╡рд┐рдВрдбреЛрдЬрд╝ 10 рдкрд░ WSL рдареАрдХ рд╣реИ) рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рдпрджрд┐ рдЖрдк рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдЕрдЬрдЧрд░ рдХреЗ рд▓рд┐рдП рдПрдХ jpype рдиреБрд╕реНрдЦрд╛ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдиреЗ рд╡рд╛рд▓реА рдХрд┐рд╕реА рднреА рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдкреНрд░рдЧрддрд┐ рдкреАрдЖрд░ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд╛рдЧрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛, рдЦрд╛рд╕рдХрд░ рдЕрдЧрд░ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЪрд▓реА рдЖ рд░рд╣реА рдкрд╛рдпрдЬрдирд┐рдпрд╕ рд╕реАрдорд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╕реВрддреНрд░ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╣реИ, рдкрд╛рдпрдЬрдирд┐рдпрд╕ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдХрд┐рд╡реА рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реА рдореБрдЦреНрдп рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдЖрдЧреЗ рдкрд░реНрдпрд╛рдкреНрдд рд╡рд┐рдХрд╛рд╕ рдУрдореНрдл рдирд╣реАрдВ рд╣реИред

@inclement рдореИрдВрдиреЗ jpype-project/jpype#799 рдкрд░ рдПрдВрдбреНрд░реЙрдЗрдб рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреАрдЖрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореБрдЭреЗ рд╕рдЪ рдореЗрдВ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣рд╛рдБ рд╕реЗ рдХрд╣рд╛рдБ рдЬрд╛рдирд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдзреАрд░реЗ-рдзреАрд░реЗ рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд╣реА рдирд┐рд░реНрдорд╛рдг рдкрде рдирд╣реАрдВ рд╣реИред

рдЬрд┐рди рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рд╡реЗ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ:

  • [x] рдмрд┐рд▓реНрдб рдореЗрдВ рд╕рднреА jpype/*.py рдлрд╝рд╛рдЗрд▓реЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ (рдпрд╛ рдЙрдирдХреЗ рдкреВрд░реНрд╡ рд╕рдВрдХрд▓рд┐рдд рд╕рдВрд╕реНрдХрд░рдг)ред
  • [x] Apache ant рдХреЛ Native/build.xml рдкрд░ рдЪрд▓рд╛рдПрдБ рдФрд░ рдкрд░рд┐рдгрд╛рдореА рдЬрд╛рд░ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдХрд┐рд╕реА рдРрд╕реА рдЬрдЧрд╣ рдкрд░ рд░рдЦреЗрдВ рдЬрд╣рд╛рдБ рдЗрд╕реЗ рдкрд╣реБрдБрдЪрд╛ рдЬрд╛ рд╕рдХреЗред
  • [x] рдЬрд╛рд░ рдлрд╝рд╛рдЗрд▓ (рдпрд╛ рд╕рдордХрдХреНрд╖) рдХреЛ рдмрд┐рд▓реНрдб рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВред
  • [x] рдмрд┐рд▓реНрдб рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП _jpype рдирд╛рдордХ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рджреЗрд╢реА/рд╕рд╛рдорд╛рдиреНрдп рдФрд░ рджреЗрд╢реА/рдкрд╛рдпрдерди рд╕реЗ C++ рдХреЛрдб рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВред
  • [x] рдПрдХ main.py рдлрд╝рд╛рдЗрд▓ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ рдЬреЛ рдЕрднреА рдПрдХ рдЗрдВрдЯрд░реЗрдХреНрдЯрд┐рд╡ рд╢реЗрд▓ рд▓реЙрдиреНрдЪ рдХрд░рддреА рд╣реИ рддрд╛рдХрд┐ рд╣рдо рдЗрд╕реЗ рдЕрднреА рдХреЗ рд▓рд┐рдП рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХреЗрдВред
  • [] рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдореБрдЭреЗ "рдПрдПрд╕рдПрдо" рдпрд╛ рдРрд╕рд╛ рдХреБрдЫ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдореИрдВ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдмрдирд╛рдИ рдЧрдИ рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рд▓реЛрдб рдХрд░ рд╕рдХреВрдВред
  • [x] C++ рдХреЛрдб рдХреЛ рдкреИрдЪ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдпрд╣ JVM рдФрд░ рдХрдВрдкреЗрдирд┐рдпрди рдЬрд╛рд░ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╕реНрдЯрдо рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗ рдФрд░ рд╕рднреА рдореВрд▓ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд╣реБрдХ рдЕрдк рдХрд░реЗред
  • [ ] jvmfinder рдХреЛ рдХрд┐рд╕реА рдРрд╕реА рдЪреАрдЬрд╝ рд╕реЗ рдкреИрдЪ рдХрд░реЗрдВ рдЬреЛ android рдкрд░ рдХрд╛рдо рдХрд░рддреА рд╣реЛ рдФрд░ "startJVM" рдХреЛ main рдХреА рд╢реБрд░реБрдЖрдд рдХреЗ рдмрдЬрд╛рдп рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  • [] рдкреИрдЪ org.jpype рддрд╛рдХрд┐ рдЬрд╛рд░ рдиреЗрд╡рд┐рдЧреЗрд╢рди рд╕рд┐рд╕реНрдЯрдо (рдЬреЛ рдХрд┐ рдЖрдпрд╛рдд рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ) рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ рдХрд╛рд░реНрдп рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдХреБрдЫ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЛ рджреЗрдЦрд╛ рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдЦрдбрд╝рд╛ рд╣реБрдЖ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдкреВрд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рдПред рдореЗрд░рд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд▓реЗрдЖрдЙрдЯ рд╕рд╛рдорд╛рдиреНрдп рд╕реЗ рдХреБрдЫ рдЕрд▓рдЧ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рд╕рдм рдХреБрдЫ рдореБрдЦреНрдп рдореЙрдбреНрдпреВрд▓ рдХреЗ рддрд╣рдд рдирд╣реАрдВ рд░рдЦрддреЗ рд╣реИрдВ (рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ 3 рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рд╕рд┐рд╕реНрдЯрдо рдмрдирд╛рддреЗ рд╣реИрдВред jpype, _jpype, рдФрд░ org.jpypeред) рдореБрдЭреЗ рд╕рдВрднрд╡рддрдГ рдПрдХ рдХрд╕реНрдЯрдо рдиреБрд╕реНрдЦрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЗрди рд╕рднреА рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдЕрд╡рд╛рдВрдЫрдиреАрдп рдкреИрдЯрд░реНрди рдХреЛ рдЕрдХреНрд╖рдо рдХрд░реЗрдВ рдЬреИрд╕реЗ рдХрд┐ рд░рдирд┐рдВрдЧ рдЧреНрд░реЗрдбрд▓ (рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рдХреБрдЫ рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдореИрдВ рдирд╣реАрдВ рдмрддрд╛ рд╕рдХрддрд╛ред)

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдзреАрд░реЗ-рдзреАрд░реЗ рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд╣реА рдирд┐рд░реНрдорд╛рдг рдкрде рдирд╣реАрдВ рд╣реИред

рдЧреНрд░реИрдбрд▓ рдПрдХ рдПрдкреАрдХреЗ рдкреИрдХреЗрдЬрд┐рдВрдЧ рдХреЗ рдЕрдВрддрд┐рдо рдЪрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдмрд┐рд▓реНрдб рдЯреВрд▓ рд╣реИ, рдпрд╣ рд╢рд╛рдпрдж рдЖрдкрдХреЗ jpype рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИред

рдмрд┐рд▓реНрдб рдореЗрдВ рд╕рднреА jpype/*.py рдлрд╝рд╛рдЗрд▓реЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ (рдпрд╛ рдЙрдирдХреЗ рдкреВрд░реНрд╡ рд╕рдВрдХрд▓рд┐рдд рд╕рдВрд╕реНрдХрд░рдг)ред

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрджрд┐ jpype рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкрд╛рдпрдерди рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХрд╛ рдкрд╣рд▓рд╛ рдиреБрд╕реНрдЦрд╛ рдкреНрд░рдпрд╛рд╕ рд╕рдВрднрд╡рддрдГ рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рд░реА рднрд╛рд░реЛрддреНрддреЛрд▓рди рдХрд░рддрд╛ рд╣реИ - CppCompiledComponentsPythonRecipe python setup.py build_ext рдФрд░ python setup.py install рдЪрд▓рд╛рдиреЗ рдЬреИрд╕рд╛ рдХреБрдЫ рдХрд░рддрд╛ рд╣реИ рдПрдирдбреАрдХреЗ рдкрд░реНрдпрд╛рд╡рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред рдЗрд╕реЗ рдРрдк рдХреЗ рдЕрдВрджрд░ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдП рдЬрд╛ рд░рд╣реЗ рдкрд╛рдпрдерди рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рднреАрддрд░ jpype рдкрд╛рдпрдерди рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдмрд┐рд▓реНрдб рдореЗрдВ рдЬрд╛рд░ рдлрд╝рд╛рдЗрд▓ (рдпрд╛ рд╕рдордХрдХреНрд╖) рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВред

рдпрд╣ рд╕рдВрднрд╡рдд: рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрджрдо рд╣реИ рдЬреЛ рдиреБрд╕реНрдЦрд╛ рдХреЛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдпрд╣ рдЖрдкрдХреА рдЬрд╛рд░ рдлрд╝рд╛рдЗрд▓ (рдпрд╛ рдЬреЛ рдХреБрдЫ рднреА рдЖрдкрдХреЛ рдЪрд╛рд╣рд┐рдП) рдХреЛ рдПрдВрдбреНрд░реЙрдЗрдб рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рднреАрддрд░ рдХрд┐рд╕реА рдЙрдкрдпреБрдХреНрдд рд╕реНрдерд╛рди рдкрд░ рдХреЙрдкреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЖ рдЬрд╛рдПрдЧрд╛ рдкрд╛рдпрдерди-рдлреЙрд░-рдПрдВрдбреНрд░реЙрдЗрдб рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд░рд╣рд╛ рд╣реИред

рдмрд┐рд▓реНрдб рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП _jpype рдирд╛рдордХ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рджреЗрд╢реА/рд╕рд╛рдорд╛рдиреНрдп рдФрд░ рджреЗрд╢реА/рдкрд╛рдпрдерди рд╕реЗ рд╕реА ++ рдХреЛрдб рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВред

рдпрджрд┐ рдЗрд╕реЗ setup.py рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдХреБрдЫ рдмрджрд▓рд╛рд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдпрджрд┐ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк рдЕрдкрдиреЗ рд╕рдВрдХрд▓рди рдЖрджреЗрд╢реЛрдВ рдХреЛ рдиреБрд╕реНрдЦрд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЙрдкрдпреБрдХреНрдд env vars рд╕реЗрдЯ рдХрд░рдХреЗ Android рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЕрдиреНрдп рд╡реНрдпрдВрдЬрдиреЛрдВ рдореЗрдВ self.get_env рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджреЗрдЦреЗрдВрдЧреЗ)ред

рд╕реА ++ рдХреЛрдб рдХреЛ рдкреИрдЪ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдпрд╣ рдЬреЗрд╡реАрдПрдо рдФрд░ рд╕рд╛рдереА рдЬрд╛рд░ рдлрд╝рд╛рдЗрд▓ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╕реНрдЯрдо рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗ рдФрд░ рд╕рднреА рдореВрд▓ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝ рд╕рдХреЗред

рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рд╣рд┐рд╕реНрд╕рд╛ рдмрд┐рд▓реНрдХреБрд▓ рд╕реАрдзрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдмрд╕ рд╕рд╣реА рдПрдВрдбреНрд░реЙрдЗрдб рдЬреЗрдПрдирдЖрдИ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рд╣рдо рдЗрд╕реЗ рдХреБрдЫ рдЙрдкрдпреБрдХреНрдд рд╕рд╢рд░реНрдд рд╕рдВрдХрд▓рди рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдкрд╛рдпрдЬрдирд┐рдпрд╕ рдХреЛ рдкреИрдЪ рдХрд░рдХреЗ рдереЛрдбрд╝рд╛ рд╣реИрдХреА рддрд░реАрдХреЗ рд╕реЗ рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╡рд┐рднрд┐рдиреНрди рд╕рд╣рд╛рдпрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЕрд▓рдЧ-рдЕрд▓рдЧ рд░реИрдкрд░ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдЗрд╕ рдкреИрдЪ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕ рдЬрдЯрд┐рд▓рддрд╛ рдХреЛ рдЖрдкрдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА, рдЖрдк рдХреЗрд╡рд▓ рд╕рд╣реА рдПрдВрдбреНрд░реЙрдЗрдб рдПрдкреАрдЖрдИ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

jvmfinder рдХреЛ рдХрд┐рд╕реА рдРрд╕реА рдЪреАрдЬрд╝ рд╕реЗ рдкреИрдЪ рдХрд░реЗрдВ рдЬреЛ рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ рдХрд╛рдо рдХрд░рддреА рд╣реИ рдФрд░ "рд╕реНрдЯрд╛рд░реНрдЯрдЬреЗрд╡реАрдПрдо" рдХреЛ рдореБрдЦреНрдп рдХреА рд╢реБрд░реБрдЖрдд рдХреЗ рдмрдЬрд╛рдп рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬреЗрд╡реАрдПрдо рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдВрдбреНрд░реЙрдЗрдб рдЪрд╛рд╣рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╣рдореЗрд╢рд╛ рдореМрдЬреВрджрд╛ рдЬреЗрд╡реАрдПрдо рддрдХ рдкрд╣реБрдВрдЪреЗрдВ рдФрд░ рдЖрдк рдПрдХ рдирдпрд╛ рдЙрджрд╛рд╣рд░рдг рд╢реБрд░реВ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдХреНрдпрд╛ рдпрд╣ рдорд╛рдпрдиреЗ рд░рдЦреЗрдЧрд╛ (рдпрд╛ рдпрд╣ рд╕рд┐рд░реНрдл рдЧрд▓рдд рд╣реИ?)?

Apache ant рдХреЛ рджреЗрд╢реА/build.xml рдкрд░ рдЪрд▓рд╛рдПрдБ рдФрд░ рдкрд░рд┐рдгрд╛рдореА рдЬрд╛рд░ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдХрд┐рд╕реА рдРрд╕реА рдЬрдЧрд╣ рдкрд░ рд░рдЦреЗрдВ рдЬрд╣рд╛рдБ рдЗрд╕реЗ рдкрд╣реБрдБрдЪрд╛ рдЬрд╛ рд╕рдХреЗред

рдореИрдВ рдЕрдкрд░рд┐рдЪрд┐рддрддрд╛ рдХреЗ рдХрд╛рд░рдг рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВ, рдХреНрдпрд╛ рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдЖрдВрддрд░рд┐рдХ jpype рдмрд┐рд▓реНрдб рдЪрд░рдг рд╣реИ? рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЬрд╛рд╡рд╛ рд╕рдВрд╕реНрдХрд░рдг рдХреИрд╕реЗ рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рд┐рд╕реНрдЯрдо-рджреЗрд╢реА рдЪреАрдВрдЯреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдпрд╣рд╛рдВ рдареАрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЗрд╕рдиреЗ рдЪреЗрддрд╛рд╡рдиреА рджреА рдХрд┐ рдмрд┐рд▓реНрдбреЛрдЬрд░ setup.py рдХрд╛ рд╕рдореНрдорд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕реАрдзреЗ рдКрдкрд░ рд╕реЗ рдзреАрд░реЗ-рдзреАрд░реЗ рдХрджрдо рдкрд░ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ред рдЗрд╕рд▓рд┐рдП рдЙрди рдордзреНрдп рдЪрд░рдгреЛрдВ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдорд╛рд░рд╛ setup.py рдЬрд╛рд░ рдлрд╝рд╛рдЗрд▓ рдХреЛ dll рдХреЗ рд╕рд╛рде рдорд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реБрдХ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдЬреИрд╕реЗ рдХрд╕реНрдЯрдо рд╕рдВрдХрд▓рди рдЪрд░рдгреЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд╕рдВрднрд╡рддрдГ рдпрд╣рд╛рдВ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдареАрдХ рдерд╛ рдХрд┐ рдЗрд╕реЗ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛, рд▓реЗрдХрд┐рди рдпрд╣ cpp рдФрд░ java рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдореЗрдВ рднреА рд╡рд┐рдлрд▓ рд░рд╣рд╛ред рдЬреЛ setup.py рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИрдВред рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рдпрд╣ рд╣реИ рдХрд┐ рдореЗрд░рд╛ setup.py рдЗрддрдирд╛ рдмрдбрд╝рд╛ рдерд╛ рдХрд┐ рдореБрдЭреЗ рдореЙрдбреНрдпреВрд▓ рд╕реЗрдЯрдЕрдк рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реЛрдирд╛ рдкрдбрд╝рд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд╣рд▓реЗ рдореБрдЭреЗ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ рдореИрдВ рдПрдХ рдХреНрд▓реАрди рдХрдорд╛рдВрдб рдХреИрд╕реЗ рдЪрд▓рд╛ рд╕рдХрддрд╛ рд╣реВрдВ рддрд╛рдХрд┐ рдореБрдЭреЗ рдПрдХ рдмрд╛рд░ рдЪрд▓рдиреЗ рдФрд░ рд▓реЙрдЧ рджрд┐рдЦрд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдорд┐рд▓ рд╕рдХреЗред (рдЬрдм рдореИрдВ рдЦреЗрд▓ рд░рд╣рд╛ рдерд╛ рддрдм рдореИрдВрдиреЗ рдкрд╣рд▓реА рдмрд╛рд░ рдЗрд╕реЗ рдкреАрд╕ рдореАрд▓ рдЪрд▓рд╛рдпрд╛ рдерд╛ред рдЗрд╕рд▓рд┐рдП рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рд╛рдл рд▓реЙрдЧ рдирд╣реАрдВ рд╣реИред) рд╕рд╛рде рд╣реА рд╣рдореЗрдВ рдЗрд╕ рдмрд╛рддрдЪреАрдд рдХреЛ рдкреАрдЖрд░ рдореЗрдВ рд▓реЗ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рд╣рдо рд╡рд┐рд╖рдп рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╖рдп рдкрд░ рд░рд╣ рд╕рдХреЗрдВред

рдПрдлрдбрдмреНрд▓реНрдпреВрдЖрдИрдбрдмреНрд▓реНрдпреВ рдореИрдВ рдЕрдкрдиреЗ рдЧреИрд░-рдПрдВрдбреНрд░реЙрдЗрдб рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдореВрд▓ рдХреЛ рдЬреЗрдкреА рдЯрд╛рдЗрдк рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред рджреЛ рдЫреЛрдЯреА рдХрдард┐рдирд╛рдЗрдпрд╛рдБ рдпрд╛ рдорддрднреЗрдж рдереЗ:

  1. classpath kwarg jpype.startJVM() рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдХреБрдЫ рднреА рдХрд░реВрдБ рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐ addClassPath() рдлрд╝рдВрдХреНрд╢рди рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛ред рдбреЗрд╡рд▓рдкрд░ рдЬреЛ рдХреНрд▓рд╛рд╕рдкрд╛рде рдСрд░реНрдбрд░ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд░рддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ jnius_config.add_classpath() рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХреБрдЫ рд╕рдорд╛рдпреЛрдЬрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред

  2. рдЬрд╛рд╡рд╛ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рд╣реИред рдореЗрд░реЗ рдХреЛрдб рдореЗрдВ, рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдерд╛ рдЬреЛ рдкрд╛рдпрдерди рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреА рд╕реВрдЪреА рд▓реМрдЯрд╛ рд░рд╣рд╛ рдерд╛ред рдкреВрд░реНрд╡-рдирд┐рд░реАрдХреНрд╖рдг рдореЗрдВ рдореБрдЭреЗ рд╢рд╛рдпрдж рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдЬрд╛рд╡рд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪрд╛ рдерд╛ рдФрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреА рдПрдХ рд╕реВрдЪреА рд╡рд╛рдкрд╕ рдХрд░ рджреА рдереАред рдпрд╣ рдкрд╛рдпрдЬрдирд┐рдпрд╕ рдореЗрдВ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рдкрд╛рдЗрдерди рддрд╛рд░реЛрдВ рдХреЛ рдЬрд╛рд╡рд╛ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХрд╛ рдЙрдк-рд╡рд░реНрдЧ рдмрдирд╛рддрд╛ рд╣реИред рдпрд╣ рдЬреЗрдкреА рдЯрд╛рдЗрдк рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдЗрд╕реЗ рдЬреЗрдкреА рдЯрд╛рдЗрдк рдХреЗ JString рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдХреЗ рддрдп рдХрд┐рдпрд╛ рд╣реИред

рд▓реЗрдЦрди @JOverride рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рддрд░реАрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдЬреИрд╕реЗ рдХреЛрдб рд╕реЗ рдЕрдзрд┐рдХ рдЖрд╕рд╛рди рд╣реИ @java_method('(Ljava/lang/String;[Ljava/lang/Object;)V') ред

рдПрдХ рдмрд╛рд░ рдЬрдм рдореИрдВрдиреЗ рдЙрди рджреЛ рдореБрджреНрджреЛрдВ рд╕реЗ рдирд┐рдкрдЯрд╛, рддреЛ рд╕рдм рдХреБрдЫ рдореВрд▓ рд░реВрдк рд╕реЗ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рдерд╛ред рдореЗрд░реЗ рдкрд╛рд╕ рдмрд╛рдЗрдЯ рдПрд░реЗ рдкрд╛рд╕ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреБрдЫ рдХреЛрдб рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ рд▓реЗрдХрд┐рди рдЬреЗрдкреА рдЯрд╛рдЗрдк рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЕрдЪреНрдЫрд╛ рд╕рдорд░реНрдерди рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, JPype рдХреЗ рдирд┐рд╣рд┐рдд рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдкрд╛рдВрддрд░рдг рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИрдВ рдФрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдбреЗрдХреЛрд░реЗрдЯрд░реНрд╕ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдореБрдЭреЗ рд╣рд░ рдЬрдЧрд╣ рдЫрд┐рдбрд╝рдХрдирд╛ рдерд╛ред

@Thrameos рдореИрдВ рдпрд╣рд╛рдБ рдЖрдкрдХреЗ рджреГрдврд╝ рд╕рдВрдХрд▓реНрдк рдХрд╛ рд╕рдореНрдорд╛рди рдХрд░рддрд╛ рд╣реВрдБред рдЬреЗрдкреА рдЯрд╛рдЗрдк рдХреЛ рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реБрднрдХрд╛рдордирд╛рдПрдБред

рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрд▓рд╛рд╕рдкрд╛рде рдореЗрдВ рдХреНрдпрд╛ рдЧрд▓рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрдЧрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реЛрдЧреА рдЬрд╣рд╛рдВ рд╕реЗ рдЖрдк рдкрд╛рдЗрдерди рд╢реБрд░реВ рдХрд░ рд░рд╣реЗ рдереЗред рдХрднреА-рдХрднреА рд▓реЛрдЧ JVM рдХреЛ рдПрдХ рдореЙрдбреНрдпреВрд▓ рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХреНрдпреЛрдВрдХрд┐ рдЬрд╛рд╡рд╛ рдкрде рдФрд░ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдкрд╛рдпрдерди рдкрде рдХреЗ рдирд┐рдпрдо рдЕрд▓рдЧ рд╣реИрдВ, рдЗрд╕рд╕реЗ рдЬрд╛рд░ рдЫреВрдЯ рд╕рдХрддреЗ рд╣реИрдВред (рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рдореЗрдВ рдПрдХ рдЕрдиреБрднрд╛рдЧ рд╣реИ)ред

рдореИрдВ рджреИрдирд┐рдХ рдЖрдзрд╛рд░ рдкрд░ рдХреНрд▓рд╛рд╕рдкрд╛рде рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдпрд╣ рд╣рдорд╛рд░реЗ рдкрд░реАрдХреНрд╖рдг рдкреИрдЯрд░реНрди рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред рддреЛ рдЕрдЧрд░ рдХреНрд▓рд╛рд╕рдкрд╛рде рдХрд╛ рд╕рдореНрдорд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рддреЛ рдЗрд╕рд╕реЗ рдХреБрдЫ рдмрдбрд╝реА рдмрдбрд╝реА рд╡рд┐рдлрд▓рддрд╛рдПрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рдЙрд╕ рдиреЗ рдХрд╣рд╛ рдХрд┐ рдЖрдкрдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЬрдЯрд┐рд▓ рдкреИрдЯрд░реНрди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕реНрдерд╛рдиреЛрдВ рдХреЗ рдЬрд╛рджреБрдИ рд╕реЗрдЯ рдФрд░ рдкреВрд░реНрдг рдкрде рдЦреЛрдЬрдиреЗ рдореЗрдВ рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдкрдбрд╝реЗрдЧрд╛ред

рдпрд╣рд╛рдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдореИрдВ рд╡рд┐рдХрд╛рд╕ рдХреНрд╖реЗрддреНрд░ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдПрдХ рдкреАрдИ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ рдЕрдкрдиреА рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдгрд╛рд▓реА рд╢реБрд░реВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

import jpype
import os

devel = os.path.dirname(__file__)
devel = os.path.join(devel, '..', '..')
devel = os.path.abspath(devel)  # Notice that I converted the path to absolute so that it doesn't matter where the
# PWD of Java will be when this script is called.   Otherwise, if I import this from a different location it will use the
# original PWD and Java will find nothing in the classpath.

classpath = [
    '%s/gov.llnl.math/dist/*' % devel,
    '%s/gov.llnl.rdak/dist/*' % devel,
    '%s/gov.llnl.rnak/dist/*' % devel,
    '%s/gov.llnl.rtk/dist/*' % devel,
    '%s/gov.llnl.rtk.gadras/dist/*' % devel,
    '%s/gov.llnl.rtk.response/dist/*' % devel,
    '%s/gov.llnl.utility/dist/*' % devel,
    ]

jpype.startJVM(classpath=classpath, convertStrings=False)

рд╕рд╛рдкреЗрдХреНрд╖ рдкрде рдФрд░ рдирд┐рд░рдкреЗрдХреНрд╖ рдкрде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рдХреБрдЫ рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░реЗрдЧрд╛ рдХрд┐ рдЖрдк рдХрд╣рд╛рдВ рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред AddClassPath рдореЗрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдЬрд╛рджреВ рд╣реИ рдХрд┐ рд╕рднреА рдкрде рдХреЙрд▓рд░ рд╕реНрдерд╛рди рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреНрд▓рд╛рд╕рдкрд╛рде рдХреАрд╡рд░реНрдб рддрд░реНрдХреЛрдВ рдореЗрдВ рдПрдХ рд╣реА рддрд░реНрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдореИрдВ рддрд╛рд░ рдХреА рдПрдХ рд╕реВрдЪреА рд▓реМрдЯрдиреЗ рдХреЗ рд╕рд╛рде рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдБред рдпрд╣ рдЯреНрд░рд┐рдЧрд░ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд░рд┐рдЯрд░реНрди рдХреЗ рдкреНрд░рдХрд╛рд░ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░реЗрдЧрд╛ред рдпрджрд┐ рд╡рд┐рдзрд┐ рдХреЛ String[] рд▓реМрдЯрдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдореИрдВ рд▓реМрдЯрдиреЗ рдкрд░ рдкреНрд░рддреНрдпреЗрдХ рдкрд╛рдпрдерди рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдЬрд╛рд╡рд╛ рдореЗрдВ рдордЬрдмреВрд░ рдХрд░рдиреЗ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реВрдВред рдпрджрд┐ рд╡рд┐рдзрд┐ рдХреЛ List<String> рд▓реМрдЯрд╛рдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реЛрдЧреА рдХреНрдпреЛрдВрдХрд┐ рдЬрд╛рд╡рд╛ рдЬреЗрдирд░рд┐рдХ рдЗрд╕реЗ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ List<Object> ред рдЬреЗрдкреА рдЯрд╛рдЗрдк рд╕реВрдЪреА рдХреЛ рдХреИрд╕реЗ рджреЗрдЦрддрд╛ рд╣реИ, рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрдирд╡рд░реНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕рдХреА рдЬрд╛рдВрдЪ рдХрд░реВрдВрдЧрд╛ред рд╕реБрд░рдХреНрд╖рд┐рдд рд╕рдорд╛рдзрд╛рди рдПрдХ рд╕реВрдЪреА рд╕рдордЭ рд╣реИ рдЬреЛ рд╡рд╛рдкрд╕реА рдХреЗ рд▓рд┐рдП рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрд▓рд╛рд╕рдкрд╛рде рдореЗрдВ рдХреНрдпрд╛ рдЧрд▓рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрдЧрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реЛрдЧреА рдЬрд╣рд╛рдВ рд╕реЗ рдЖрдк рдкрд╛рдЗрдерди рд╢реБрд░реВ рдХрд░ рд░рд╣реЗ рдереЗред рдХрднреА-рдХрднреА рд▓реЛрдЧ JVM рдХреЛ рдПрдХ рдореЙрдбреНрдпреВрд▓ рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ

рдореИрдВ рдпрд╣реА рдХрд░ рд░рд╣рд╛ рдерд╛!

рдореИрдВ рджреИрдирд┐рдХ рдЖрдзрд╛рд░ рдкрд░ рдХреНрд▓рд╛рд╕рдкрд╛рде рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдпрд╣ рд╣рдорд╛рд░реЗ рдкрд░реАрдХреНрд╖рдг рдкреИрдЯрд░реНрди рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред рддреЛ рдЕрдЧрд░ рдХреНрд▓рд╛рд╕рдкрд╛рде рдХрд╛ рд╕рдореНрдорд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рддреЛ рдЗрд╕рд╕реЗ рдХреБрдЫ рдмрдбрд╝реА рдмрдбрд╝реА рд╡рд┐рдлрд▓рддрд╛рдПрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рдЙрд╕ рдиреЗ рдХрд╣рд╛ рдХрд┐ рдЖрдкрдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЬрдЯрд┐рд▓ рдкреИрдЯрд░реНрди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕реНрдерд╛рдиреЛрдВ рдХреЗ рдЬрд╛рджреБрдИ рд╕реЗрдЯ рдФрд░ рдкреВрд░реНрдг рдкрде рдЦреЛрдЬрдиреЗ рдореЗрдВ рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдкрдбрд╝реЗрдЧрд╛ред

рд╣рд╛рдВ, рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдпрд╣ рдРрд╕реА рдЪреАрдЬ рд╣реИ рдЬрд┐рд╕ рдкрд░ рдЖрдк рддреБрд░рдВрдд рдзреНрдпрд╛рди рджреЗрдВрдЧреЗ рдФрд░ рдпрд╣ рдХрд┐ рдореИрдВ рдкрд╣рд▓рд╛ рд╡реНрдпрдХреНрддрд┐ рдирд╣реАрдВ рдерд╛ рдЬрд┐рд╕реЗ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реБрдИ рдереАред рдХреЛрдб рдирдореВрдирд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдпрд╣ рд╕рд╣рд╛рдпрдХ рд╣реИред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ рдХреБрдЫ рд╕реБрдзрд╛рд░ рдХрд┐рдП рд╣реИрдВред

рд╕реБрд░рдХреНрд╖рд┐рдд рд╕рдорд╛рдзрд╛рди рдПрдХ рд╕реВрдЪреА рд╕рдордЭ рд╣реИ рдЬреЛ рд╡рд╛рдкрд╕реА рдХреЗ рд▓рд┐рдП рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореИрдВрдиреЗ рдареАрдХ рдпрд╣реА рдХрд┐рдпрд╛ рдФрд░ рдпрд╣ рдЕрдм рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдзрдиреНрдпрд╡рд╛рдж!

рдХреБрдЫ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдореИрдВрдиреЗ py4j рдФрд░ jnius рдХреЗ рдмреАрдЪ рддреБрд▓рдирд╛ рдХреА рдереА рдФрд░ рдкрд╛рдпрд╛ рдХрд┐ jnius рдмрд╣реБрдд рддреЗрдЬ рд╣реИред

рдЬрдм рднреА рдореИрдВрдиреЗ jpype рдХреЛ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдЙрд▓реНрд▓реЗрдЦрд┐рдд рджреЗрдЦрд╛, рддреЛ рдореИрдВрдиреЗ рд╣рдореЗрд╢рд╛ рдпрд╣ рдорд╛рди рд▓рд┐рдпрд╛ рдХрд┐ рдпрд╣ - http://jpype.sourceforge.net/ рдХрд╛ рдЬрд┐рдХреНрд░ рдХрд░ рд░рд╣рд╛ рдерд╛ рдФрд░ рдЗрд╕рд╕реЗ рджреВрд░ рд░рд╣рд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рд▓рдЧ рд░рд╣рд╛ рдерд╛ (рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЕрдЬреАрдм рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ рджреЗрдЦрд╛)

рдЗрд╕ рдзрд╛рдЧреЗ рдХреЛ рдкрдврд╝рдиреЗ рдкрд░, рдореИрдВрдиреЗ рдлрд┐рд░ рд╕реЗ рдЕрдкрдиреЗ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА (рдЧрддрд┐ рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рдкреНрд░рд╛рдердорд┐рдХ рдЯреЗрд╕реНрдЯрдХреЗрд╕ рдкреАрдПрдордПрдордПрд▓ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдкрдврд╝рдирд╛ рдФрд░ рд╕реНрдХреЛрд░ рдХрд░рдирд╛ рд╣реИ) - рдФрд░ рдкрд╛рдпрд╛ рдХрд┐ jpype рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░ рд░рд╣рд╛ рдерд╛ред
рдХреБрдЫ рдкрд░рд┐рдгрд╛рдо:
https://gist.github.com/AbdealiJK/1dd5b7677435ba22f9ab3e26016bb3e7

# jpype
# createjvm: 0.550s
# loadmodel: tot=1.466451 max=1.064521s avg=0.014665s
# fields   : tot=0.019881 max=0.009795s avg=0.000199s
# score    : tot=0.033356 max=0.023338s avg=0.000334s

# jnius
# createjvm: 0.249s
# loadmodel: tot=1.773011 max=1.385274s avg=0.017730s
# fields   : tot=0.039058 max=0.012234s avg=0.000391s
# score    : tot=0.067590 max=0.031904s avg=0.000676s

# py4j
# createjvm: 0.222s
# loadmodel: tot=0.616913 max=0.027464s avg=0.006169s
# fields   : tot=0.699152 max=0.026426s avg=0.006992s
# score    : tot=0.389583 max=0.017620s avg=0.003896s

рдирд┐рд╖реНрдкрдХреНрд╖ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдорд╛рд░реНрдЪ 2020 рддрдХ JPype рдХрд╛ рдлреНрд░рдВрдЯ рдПрдВрдб рдПрдкреАрдЖрдИ рдкрд╛рдпрдерди (CPython рдХреЗ рд╡рд┐рдкрд░реАрдд) рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕рд▓рд┐рдП рдпрд╣ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкреБрд░рд╛рдиреЗ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рд╣реИрдВ рдХрд┐ рдпрд╣ рдЬреЛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЙрд╕рдХреЗ рд▓рд┐рдП рдпрд╣ рдзреАрдорд╛ рдерд╛ред рдмрд╕ рдЗрддрдиреЗ рд╕рд╛рд░реЗ рдмреИрдХрдПрдВрдб рдореБрджреНрджреЗ рдереЗ рдЬрд┐рдиреНрд╣реЗрдВ рд╕реНрдореГрддрд┐ рдкреНрд░рдмрдВрдзрди рдХреЗ рд╕рд╛рде рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдерд╛, рд░реВрдмреА, рдорд▓реНрдЯреАрдереНрд░реЗрдбрд┐рдВрдЧ рдФрд░ рдЗрд╕реА рддрд░рд╣ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реЗ рдорд▓реНрдЯреАрд▓реЗрдпрд░ рд░реИрдкрд░ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдЙрд╕ рдЧрддрд┐ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрдЦрд┐рд░реА рдЪреАрдЬ рдереАред

рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдпрд╣ рдмрд╣реБрдд рддреЗрдЬ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдкрдХреЛ рдХреБрдЫ рдРрд╕рд╛ рдорд┐рд▓рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рддреЛ рдмрд╕ рдореБрджреНрджреЛрдВ рдореЗрдВ рдПрдХ рдиреЛрдЯ рдЫреЛрдбрд╝ рджреЗрдВред рд╡рд╛рдкрд╕реА рдЕрдиреБрдмрдВрдзреЛрдВ рдХреЗ рдХрд╛рд░рдг рдХреБрдЫ рд╕реАрдорд╛рдПрдБ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдХреЙрд▓рд┐рдВрдЧ, рд╕рд░рдгреА рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдФрд░ рдореЗрдореЛрд░реА рдмрдлрд╝рд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдердорд┐рдХ рдкрде рдкрд░ рдмрд╣реБрдд рдХрд╛рдо рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдореБрдЭреЗ JPype рдХреЗ рд╕рд╛рде рднреА рдЕрдЪреНрдЫреЗ рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓ рд░рд╣реЗ рд╣реИрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдореБрдЭреЗ numpy arrays рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рд╕реЗ рдЕрдЪреНрдЫрд╛ рдореВрд▓реНрдп рдорд┐рд▓ рд░рд╣рд╛ рд╣реИред рдореИрдВ рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реВрдВ рдЬреЛ рдореИрдВ рдкрд╣рд▓реЗ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдерд╛ рдЬрд┐рд╕рд╕реЗ рдореБрдЭреЗ рд╕рд╛рд░реНрдердХ рддрд░реАрдХреЛрдВ рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдпрджрд┐ рдХреЛрдИ рдЗрддрдирд╛ рджрдпрд╛рд▓реБ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╡реА-рд░рд┐рдореЛрдЯ-рд╢реЗрд▓ рдЯреВрд▓ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рд╡рд░реНрддрдорд╛рди рдкрд╛рдпрдерди 3 рдФрд░ рдмрд┐рд▓реНрдбреЛрдЬрд╝рд░ рдХреЗ рд╕рд╛рде рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рдЪрд░рдг рджрд░ рдЪрд░рдг рдФрд░ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЬреЗрдкреА рдЯрд╛рдЗрдк рдкреЛрд░реНрдЯрд┐рдВрдЧ рдкреНрд░рдпрд╛рд╕ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред рдмрд╣реБрддред рдореИрдВрдиреЗ рдмреВрдЯ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдЪрд░рдг рддрдХ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдЪрд░рдг рдкреВрд░реЗ рдХрд░ рд▓рд┐рдП рд╣реИрдВред рд▓реЗрдХрд┐рди рдмреВрдЯрд╕реНрдЯреНрд░реИрдкрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рдмрд┐рдирд╛, рдкреНрд░рдЧрддрд┐ рдХрд░рдирд╛ рдХрдард┐рди рд╣реЛрдЧрд╛ред рдореИрдВ рдЗрд╕ рд╕рдкреНрддрд╛рд╣ рдХреЗ рдЕрдВрдд рдореЗрдВ рд░рд┐рдореЛрдЯ рд╢реЗрд▓ рдЯреВрд▓ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ (рдФрд░ рд╢рд╛рдпрдж рд╕рдлрд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ) рдпрд╛ рдХреАрд╡реА рдХреЗ рдмреЗрд╣рддрд░ рдЬреНрдЮрд╛рди рдХреЗ рд╕рд╛рде рдПрдХ рд░реБрдЪрд┐ рдкрд╛рд░реНрдЯреА рдЗрд╕ рдкреВрд░реНрд╡рд╛рдкреЗрдХреНрд╖рд╛ рдХрд╛рд░реНрдп рдХреЛ рдкреВрд░рд╛ рдХрд░ рд╕рдХрддреА рд╣реИ рдФрд░ рдлрд┐рд░ рдореИрдВ рдЙрд╕ рддрдХрдиреАрдХреА рдХрд╛рд░реНрдп рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдкреНрддрд╛рд╣рд╛рдВрдд рдмрд┐рддрд╛ рд╕рдХрддрд╛ рд╣реВрдВ рдЬрд┐рд╕реЗ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВ рд╕рдмрд╕реЗ рдпреЛрдЧреНрдп рд╣реВрдВ . рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рджреВрд╕рд░реЛрдВ рдХреА рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдЕрдкрдирд╛ рд╕рдордп рджреЗрддрд╛ рд╣реВрдВ, рдпрд╣ рдПрдХ рд╕реАрдорд┐рдд рд╕рдВрд╕рд╛рдзрди рд╣реИ рдФрд░ рдПрдВрдбреНрд░реЙрдЗрдб рдкреЛрд░реНрдЯрд┐рдВрдЧ рдкреНрд░рдпрд╛рд╕реЛрдВ рдкрд░ рдореИрдВ рдЬреЛ рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВ рд╡рд╣ рдЬрд╛рд╡рд╛ рдмреНрд░рд┐рдЬ рд╕реЗ рдкрд╛рдпрдерди рдкрд░ рджреЗрд░реА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдХрдИ рдЕрдиреНрдп рд▓реЛрдЧ рднреА рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред

рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдПрдВрдбреНрд░реЙрдЗрдб рдкреЛрд░реНрдЯрд┐рдВрдЧ рдкреНрд░рдпрд╛рд╕ рдкреАрдкреАрдкреА рдкреЛрд░реНрдЯрд┐рдВрдЧ рдкреНрд░рдпрд╛рд╕ рдХреЗ рд░рд╛рд╕реНрддреЗ рдЬрд╛рдиреЗ рд╕реЗ рдмрдЪ рд╕рдХрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдореИрдВрдиреЗ рдорддрднреЗрджреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрд░ рдХреЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдХрдИ рд╕рдкреНрддрд╛рд╣ рдмрд┐рддрд╛рдП рд▓реЗрдХрд┐рди рдлрд┐рд░ рдПрдХ рддрдХрдиреАрдХреА рд╕рдорд╕реНрдпрд╛ рдЖрдИ рдЬрд╣рд╛рдВ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдПрдХ рдорд╛рдореВрд▓реА рдЕрдВрддрд░ рдиреЗ рдПрдХ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рдХреА, рдФрд░ рдореБрдЭреЗ рдХреЛрдИ рдРрд╕рд╛ рд╡реНрдпрдХреНрддрд┐ рдирд╣реАрдВ рдорд┐рд▓рд╛ рдЬреЛ рдЬреЗрдирд░реЗрдЯ рдХреЛрдб рдореЗрдВ рдЙрддреНрдкрдиреНрди рддреНрд░реБрдЯрд┐ рд░рд┐рдкреЛрд░реНрдЯ рдХреЛ рдбреАрдмрдЧ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдореЗрдВ рдореЗрд░реА рд╕рд╣рд╛рдпрддрд╛ рдХрд░ рд╕рдХреЗред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдЧрд┐рд░рд╛рдП рдЧрдП рджреВрдз рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд░реЛрддрд╛ рдФрд░ рдЬреЗрдкреА рдЯрд╛рдЗрдк рдХреЛрдб рдХреЛ рдЕрдиреНрдп рд╕рд╛рд░реНрдердХ рддрд░реАрдХреЛрдВ рд╕реЗ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрд╕ рд╕рднреА рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЛ рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рджрд┐рди рдХреЗ рдЕрдВрдд рдореЗрдВ рд╡реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬреЛ рдЬреЗрдкреА рдЯрд╛рдЗрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ, рдЙрдиреНрд╣реЗрдВ рдЙрдЪреНрдЪ рдФрд░ рд╢реБрд╖реНрдХ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрджрд┐ рдпрд╣ рдкреНрд░рдпрд╛рд╕ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рдм рдХреБрдЫ рдирд╖реНрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЗрд╕реЗ рд╡рд╛рдкрд╕ рд╕рд╛рдЗрдХрд┐рд▓ рдЪрд▓рд╛рдКрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдПрдХ рдмрд╛рд░ рдХрддрд╛рд░ рдХреЗ рдЕрдВрддрд┐рдо рдЫреЛрд░ рдкрд░ рдХреБрдЫ рд╣реЛ рдЬрд╛рдиреЗ рдкрд░ рдореБрдЭреЗ 6 рдорд╣реАрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд╡рд╛рдкрд╕ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдбрд╝реА рдореЗрд╣рдирдд рдХрд░рдиреА рдкрдбрд╝рддреА рд╣реИ, рдЬрдм рддрдХ рдХрд┐ рдХреЛрдИ рдореЗрд░реА рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рд╕рдордп рдирд╣реАрдВ рджреЗ рдкрд╛рддрд╛ред .

рдЗрдЪреНрдЫреБрдХ рдкрд╛рд░реНрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдЧрддрд┐ рдЕрджреНрдпрддрдиред

рдореИрдВ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ JPype рдХреЛ pythonforandroid рдХреЗ рднреАрддрд░ рд╕реЗ рдмреВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд┐рд▓рд╛ рдФрд░ рдмреБрдирд┐рдпрд╛рджреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЬреЗрд╡реАрдПрдо рдореЗрдВ рдЕрдВрддрд░ рдХреЗ рдХрд╛рд░рдг рдХреБрдЫ рдЙрдиреНрдирдд рд╕реБрд╡рд┐рдзрд╛рдПрдВ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдЬреЗрдкреА рдЯрд╛рдЗрдк рдХрд╛ рд╡рд┐рд╢рд╛рд▓ рдмрд╣реБрдордд рдПрдВрдбреНрд░реЙрдЗрдб рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛ред рдмрдВрджрд░рдЧрд╛рд╣ рдХреЛ рдХреБрдЫ рд╕рдордп рд▓рдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдбреЛрдЬрд░ рдФрд░ рдкрд╛рдпрдердирдлреЛрд░реЗрдВрдбреНрд░реЙрдЗрдб рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдХреБрдЫ рдЙрдиреНрдирдпрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА (рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╕реНрд░реЛрдд рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкрдврд╝рдиреЗ рдФрд░ рдорджрдж рдорд╛рдВрдЧрдирд╛)ред рдЙрддреНрддрд░рджрд╛рдпреА рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж рддрд╛рдХрд┐ рдореИрдВ рдПрдХ рд╕рдкреНрддрд╛рд╣ рдХреЗ рдЕрдВрдд рдореЗрдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╕рдмрд╕реЗ рдХрдард┐рди рд╣рд┐рд╕реНрд╕рд╛ рдкреВрд░рд╛ рдХрд░ рд╕рдХреВрдВред рдЖрдкрдХреЗ рдЗрдирдкреБрдЯ рдХреЗ рдмрд┐рдирд╛ рдпрд╣ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрддрд╛ред рдореИрдВрдиреЗ рд╕рдВрдмрдВрдзрд┐рдд рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдкреАрдЖрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд░рдЦрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреАрдЖрд░ рдХреЗ рдмреИрдХрд▓реЙрдЧ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдЗрд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдЖрдиреЗ рдореЗрдВ рдХреБрдЫ рд╕рдордп рд▓рдЧ рд╕рдХрддрд╛ рд╣реИред рдЕрдм рдЬрдм рдореЗрд░реЗ рдкрд╛рд╕ рдорд╣рддреНрд╡рдкреВрд░реНрдг рддрдХрдиреАрдХреА рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рд╣реИрдВ рдЬрд┐рдирдХреА рдореБрдЭреЗ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рдЗрд╕реЗ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рджреЗрд░ рд╕реЗ рдЧрд┐рд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреИрд▓реЗрдВрдбрд░ рдкрд░ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЬреЗрдкреА рдЯрд╛рдЗрдк, 1.2 рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╣реАрдВ рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рд░рд┐рд▓реАрдЬ рдХреЛрдб рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдмрдбрд╝реА рд░реБрдЪрд┐ рд╣реИ рддреЛ рдореИрдВ рдЗрд╕реЗ рдЖрдЧреЗ рдмрдврд╝рд╛ рд╕рдХрддрд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдпрд╣ рдЬрд╛рд╡рд╛ рд╕реЗ рдкрд╛рдпрдерди рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдЕрдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИред

рдпрджрд┐ рдХреЛрдИ рдкреНрд░рдпрд╛рд╕ рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддреЛ рдЕрдЧрд▓рд╛ рдХрдард┐рди рдХрджрдо рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рдХреЗ рд╕рд╛рде рдПрдХ рдбреЙрдХрд░ рдЫрд╡рд┐ рдХреИрд╕реЗ рдмрдирд╛рдИ рдЬрд╛рдП рддрд╛рдХрд┐ рд╣рдо рдПрдХ рдирд┐рд░реНрдорд╛рдг рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХреЗрдВ, рдПрдХ рдПрдореБрд▓реЗрдЯрд░ рд▓реЛрдб рдХрд░ рд╕рдХреЗрдВ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдмреЗрдВрдЪ рдЪрд▓рд╛ рд╕рдХреЗрдВ рдПрдЬрд╝реВрд░ рдкрд╛рдЗрдкрд▓рд╛рдЗрдиреЛрдВ (рдпрд╛ рдХреБрдЫ рдЕрдиреНрдп рд╕реАрдЖрдИ рд╕рд┐рд╕реНрдЯрдо) рдкрд░ рдПрдВрдбреНрд░реЙрдЗрдб рдХрд╛ред рдПрдХ рдмрд╛рд░ рдЬрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рд╕реАрдЖрдИ рд╣реЛрдЧрд╛ рдЬреЛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреНрдпрд╛ рдирд╣реАрдВ, рддреЛ рд╣рдо рд╕реНрдерд┐рд░ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреЗ рд░реВрдк рдореЗрдВ рддреИрдирд╛рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рдмрд╣реБрдд рдХрд░реАрдм рд╣реЛрдВрдЧреЗред рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЬреЗрдкреА рдЯрд╛рдЗрдк рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЕрд▓рдЧ рдПрдВрдбреНрд░реЙрдЗрдб рдЯреЗрд╕реНрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

apalala picture apalala  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

cthoyt picture cthoyt  ┬╖  11рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

hanslovsky picture hanslovsky  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Hukuta picture Hukuta  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ignertic picture ignertic  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ