
正文
pkg调用java代码 java调用grpc服务
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
python怎么调用java程序
把java封装成restful接口,然后python通过远程调用数据。
使用Pyjnius这个python库。
#源代码:github.com/kivy/pyjnius
#文档:pyjnius.readthedocs.org
#也有其他一些的库,如 JPype 或 Py4j ,它们在设计和可用性方面都不是很好。而使用 Jython也不为另一种选择,因为我们想使用 python开发Android项目。
#现在就让我来告诉你,如何简单的使用Pyjnius:
from jnius import autoclass
Stack = autoclass('java.util.Stack')
stack = Stack()
stack.push('hello')
stack.push('world')
stack.pop()
'world'
stack.pop()
'hello'
相关问答
Q1: JAVA包如何使用?
Java包(package)
为了更好地组织类,Java提供了包机制,用于区别类名的命名空间。
包的作用
1、把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。
2、如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免名字冲突。
3、包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。
Java使用包(package)这种机制是为了防止命名冲突,访问控制,提供搜索和定位类(class)、接口、枚举(enumerations)和注释(annotation)等。
包语句的语法格式为:
packagepkg1[.pkg2[.pkg3?]];
例如,一个Something.java文件它的内容
packagenet.java.util;publicclassSomething{
...}
那么它的路径应该是 net/java/util/Something.java 这样保存的。package(包)的作用是把不同的java程序分类保存,更方便的被其他java程序调用。
一个包(package)可以定义为一组相互联系的类型(类、接口、枚举和注释),为这些类型提供访问保护和命名空间管理的功能。
以下是一些Java中的包:
java.lang-打包基础的类
java.io-包含输入输出功能的函数
开发者可以自己把一组类和接口等打包,并定义自己的包。而且在实际开发中这样做是值得提倡的,当你自己完成类的实现之后,将相关的类分组,可以让其他的编程者更容易地确定哪些类、接口、枚举和注释等是相关的。
由于包创建了新的命名空间(namespace),所以不会跟其他包中的任何名字产生命名冲突。使用包这种机制,更容易实现访问控制,并且让定位相关类更加简单。
Q2: 如何在Unity中调用Android的JAVA代码
方法/步骤
1
首先要创建一个android项目
步骤阅读
2
因为项目需要使用Unity提供的接口,所以需要将接口classes.jar引入至当前工程但中。接口包的所在地,打开Finder-应用程序-Unity-点击Unity图标,鼠标右键选择“显示包内容”-Contents-PlaybackEngines-AndroidPlayer-bin-classes.jar
。接口包引入工程后,开始编写JAVA代码。
3
UnityTestActivity是主Activity,Unity程序一起动就会调用这个Activity,这是在AndroidManifest.xml中配置的。需要继承UnityPlayerActivity,就是刚刚引入的classes.jar包中提供的接口类。UnityTestActivity对外提供了两个方法接口,StartActivity0(String
name) 方法与StartActivity1(String
name)方法,这两个方法是在Unity中使用C#脚本调用的,意思是调用后程序将打开一个新的Activity,参数name也是由C#脚本传递过来的,接着将传递的String参数继续传递给新打开的Activity。
步骤阅读
4
接下来就是设置xml文件和布局文件了。对于会android编程的同学就很熟悉了。
5
把写好的java代码发布成jar包。接下来就创建unity工程,Unity工程中文件夹的结构如下,Plugins-Android的名称不能修改,必需保持一致。接着把Eclipse中Android的工程文件拷贝至这里,除了Android工程中的src文件夹,将其余文件夹全部拷贝至Plugins-Android文件夹中。最后在Plugins-Android文件夹中创建bin文件夹,然后将刚刚生成的.jar文件拷贝进来,jar的名称可以随便修改,但是jar包里面必须是com-xys-class文件,否则运行程序后提示找不到类文件。
步骤阅读
6
接下来就是如何在C#中调用android的方法的代码了。
加入如下代码。
AndroidJavaClass jc = new
AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject jo =
jc.GetStaticAndroidJavaObject("currentActivity");
jo.Call("StartActivity0","第一个Activity");
先得到AndroidJavaClass,然后得到AndroidjavaObject就是当前Activity的对象,也就是在上面创建的主UnityTestActivity.JAVA。拿到对象后调用jo.Call()参数1表示调用UnityTestActivity.JAVA类中的方法名称,参数2表示该方法传递过去的参数。如下所示:“第一个Activity”与“第二个Activit”就是在C#中传递过去的字符串。
7
发布成android平台apk
Q3: 请问这个java程序 A B C是怎么输入进去的
public static void main(String args[])
pkg调用java代码你运行时调用pkg调用java代码的主函数,输入ABC
Q4: golang调用java
golang调用java是什么pkg调用java代码,让pkg调用java代码我们一起pkg调用java代码了解一下?
golang是一种静态强类型、编译型语言。功能上有:内存安全,GC(垃圾回收),结构形态及 CSP-style 并发计算,golang调用java就是接收一个参数,然后输出一行结果。
由于Java世界里有非常丰富的开源应用模型和轮子,而这些正是Go世界里面最缺乏的东西,所以pkg调用java代码我首先考虑的就是如何在Go里面调用现有的Java代码。
我们用一个简单的Go调用Java的例子,来进行测试。(在winxp环境下能够正常运行)这段代码比较简单,就是在Go代码里面去call一个叫Hello的java对象。而这个Hello .java功能也非常简单,就是接收一个参数,然后输出一行结果。
// run_java package main import ( "fmt" "os/exec" ) /** * 调用一个Hello.class,并接收一个参数 */ func callJava(){ cmd := exec.Command("java","Hello","tom") out,err := cmd.Output() if err != nil { println("error:",err.Error()) } fmt.Printf("call java class Hello: %q\n", string(out)) } func main() { fmt.Println("Test Call Java function!") callJava() } /* Hello.java public class Hello{ public static void main(String[] args){ if(args.length==0) System.out.println("hello my world!"); else System.out.println("hello my world! "+args[0]); } }*/
注意:
为了能够运行我的例子,需要把Hello.class放在和 run_java的可执行文件同样的目录下。例如, run_java.exe在d:\goproject下,那么Hello.class也要在d:\goproject下。
Q5: java中如何调用其他java文件中的方法
你所说的java文件是什么文件?如果是java源码文件是不能调用的,但如果是编译后的class文件可以通过类加载器进行加载,然后通过反射调用;但一般会通过实现特定的接口来简化调用过程。一个自定义的类加载器如下 :
class MyClassLoader extends ClassLoader {
//类加载器的名称
private String name;
//类存放的路径
private String path = "E:\\bin";
MyClassLoader(String name) {
this.name = name;
}
MyClassLoader(ClassLoader parent, String name) {
super(parent);
this.name = name;
}
/**
* 重写findClass方法,加载特定目录下的类文件
*/
@Override
public Class? findClass(String name) {
byte[] data = loadClassData(name);
return this.defineClass(name, data, 0, data.length);
}
public byte[] loadClassData(String name) {
try {
name = name.replace(".", "//");
FileInputStream is = new FileInputStream(new File(path, name + ".class"));
ByteArrayOutputStream baos = new ByteArrayOutputStream();
int b = 0;
while ((b = is.read()()) != -1) {
baos.write(b);
}
return baos.toByteArray();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
pkg调用java代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java调用grpc服务、pkg调用java代码的信息别忘了在本站进行查找喔。







