Jython引用Java类

Ubuntu下如下指令安装Jython:
$ sudo apt-get install jython
下面的指令用于查看Jython版本:
$ jython --version
下面的代码是一个简单的Java类(JythonTest.java):
public class JythonTest {
    public void greeting() {
        System.out.println("hello,world!");
    }
}
使用javac可以得到对应的二进制.class文件:
$ javac JythonTest.java
已经编译了这个类(并且把.class文件放到当前目录中或者放到配置的Java CLASSPATH中的某处)后,就可以启动Jython:
$ CLASSPATH=JythonTest.class jython
之后直接导入这个类:
>>> import JythonTest
>>> test = JythonTest()
>>> test.greeting()
hello,world!

如果使用Java工作,可以使用jythonc命令把Python类编译成Java类,这样的Java类能直接导入到Java程序中。

时间: 2024-11-05 02:06:58

Jython引用Java类的相关文章

JAVA类的符号引用的理解

个人理解,谨慎阅读 众所周知,jvm在创建实例对象时,首先要确保该类的class文件已经被加载到内存中了 然而java中的类,很少有完全单一的类,大部分的类都会使用import引用其他的类. 所以,在创建实例对象时,不光要保证该类的class文件已经被加载到内存中,还要保证引用的这些类已经被加载,并且知道他们的内存地址 那么,在编译期间,class文件中该如何存储引用的这些类的地址呢,要知道编译期谁都不知道自己会出现在内存的那一块啊 于是我们便引入了符号引用,这个应用并非真正标识了引用了的类的地

jvm系列(一):java类的加载机制

java类的加载机制 原文:http://www.cnblogs.com/ityouknow/p/5603287.html 1.什么是类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构.类的加载的最终产品是位于堆区中的Class对象,Class对象封装了类在方法区内的数据结构,并且向Java程序员提供了访问方法区内的数据结构的接口. 类加载器并不需要等到某个

Java类的设计----Object 类

Object类 Object类是所有Java类的根父类如果在类的声明中未使用extends关键字指明其父类,则默认父类为Object类 public class Person { ... } 等价于: public class Person extends Object {. ... }例: method(Object obj){-}//可以接收任何类作为其参数 Object o=new Person; method(o); ==操作符与equals方法 ==操作符与equals方法的区别: =

java类的生命周期

类的生命周期:加载.连接(验证.准备.解析).初始化.使用.卸载主动引用(有且只有)初始化: 1.new.getstatic.putstatic.invokestatic如果类没初始化,则初始化new关键字实例化对象.读取或设置一个类的静态字段(被final修饰.*已在编译期把结果放入常量池的静态字段除外).调用一个类的静态方法  2.使用java.lang.reflect包的方法对类进行发射调用的时候,如果类没有进行过初始化,则初始化 3.当初始化一个类的时候,父类没初始化,则初始化 4.当虚

Java —类和对象

类和对象 类是对象的类型,是具有相同的属性和方法的一组对象的集合. 定义类 访问修饰符 class 类名 { 数据类型 属性名: 访问修饰符 返回值类型 方法名 {} } 创建对象:类名 对象名 = new 类名(); 使用对象:引用对象的属性:对象名.属性名;引用对象的方法:对象名.方法名(); 可以基于一个类创建多个该类的对象,每个对象都拥有自己的成员,互相独立. 成员变量和局部变量 成员变量:在类中定义,描述对象将要有什么.可以在本类的方法或其他类的方法中使用.java会给成员变量一个初始

Java类的生命周期详解

引言 最近有位细心的朋友在阅读笔者的文章时,对java类的生命周期问题有一些疑惑,笔者打开百度搜了一下相关的问题,看到网上的资料很少有把这个问题讲明白的,主要是因为目前国内java方面的教材大多只是告诉你“怎样做”,但至于“为什么这样做”却不多说,所以造成大家在基础和原理方面的知识比较匮乏,所以笔者今天就斗胆来讲一下这个问题,权当抛砖引玉,希望对在这个问题上有疑惑的朋友有所帮助,文中有说的不对的地方,也希望各路高手前来指正. 首先来了解一下jvm(java虚拟机)中的几个比较重要的内存区域,这几

java类和对象的基础(笔记)

封装: 首先封装可以保护对象,防止用户直接存取对象的内部细节:其次封装也保护了客户端,防止对象实现部分的改变可能产生的副作用,即实现部分的改变不会影响到客户端的改变. 私有代码和数据仅能被对象本身的其他部分访问,不能被该对象外的任何程序部分所访问.当代码或数据是公有的时,虽然它们是定义在对象中的,但程序的其他部分也可以访问. 继承性体现了类之间的是一种(IS-A)关系. 类之间的关系还有组合.关联等. 类的修饰符 : 类的访问修饰符可以是public或者缺省.若类用public修饰,则该类称为公

java类,对象,方法

1,类和对象   在面向对象的概念当中,类(class)是既包括数据又包括作用于数据的一组操作的封装体.类的数据称为成员变量,类对数据的操作称为成员方法.成员变量反映类的状态和特征,成员方法反映类的行为和能力.类的成员变量和方法统称为类的成员.   对象(Object)是类的实例(instance).对象是动态的,拥有生命周期,都会经历一个从创建.运行到消亡的过程.对象与类的关系就像变量与数据类型一样.   类声明 { 修饰符 } class <Classname> { extends <

【Java基础】Java类的加载和对象创建流程的详细分析

相信我们在面试Java的时候总会有一些公司要做笔试题目的,而Java类的加载和对象创建流程的知识点也是常见的题目之一.接下来通过实例详细的分析一下. 实例问题 实例代码 Parent类 1 package mytest.javaBase; 2 3 public class Parent { 4 int a = 10; 5 static int b = 11; 6 // 静态代码块 7 static { 8 System.out.println("Parent静态代码块:b=" + b)