`
belldeep
  • 浏览: 41218 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

java : mozilla rhino chat 客户端

阅读更多
https://mozilla.github.io/rhino/ 下载 rhino1_7R5.zip , 解压后运行 cmd
cd D:\rhino\rhino1_7R5
编写 rhino.bat
@echo off
java -cp D:/rhino/rhino1_7R5/js.jar;. org.mozilla.javascript.tools.shell.Main %*

写了一个 Chat Client 测试用例 char.js
// Import the Swing GUI components and a few other classes
var swingNames = new JavaImporter(javax.swing, javax.swing.event, javax.swing.border, java.awt,java.awt.event); 

importPackage(java.net);
importPackage(java.io);
importPackage(java.util);
importClass(java.lang.Thread);

with (swingNames) {
var frame = new JFrame("Chat Client");     // The application window
//frame.setSize(600,400);
frame.setLocation(200,200);
var txtfield = new JTextField(30);               // txt entry field
var button1 = new JButton("发送");            // Button to send message
var button2= new JButton("Clear"); 
var filechooser = new JFileChooser();            // A file selection dialog
var row = Box.createHorizontalBox();             // A box for field and button
var col = Box.createVerticalBox();               // For the row & progress bars
var padding = new EmptyBorder(3,3,3,3);          // Padding for rows
var texta = new JTextArea(10,30);
texta.setEditable(false);
// texta.setLineWrap(true);
// Put them all together and display the GUIm
row.add(txtfield);                               // Input field goes in the row
row.add(button1);                                 // Button goes in the row
row.add(button2); 
col.add(row);                                    // Row goes in the column
col.add(texta);
frame.add(col);                                  // Column goes in the frame
row.setBorder(padding);                          // Add some padding to the row
frame.pack();                                    // Set to minimum size
frame.visible = true;                            // Make the window visible
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

// When the user clicks the button, call this function
button1.addActionListener(function() {
    var str = txtfield.getText();
    if ( str.trim().length() >1){
        texta.append(str+"\n");
        new java.lang.Thread(function(){ connect("127.0.0.1",12345,str);}).start();
        txtfield.setText("");
    } else {
        texta.append("Input length error\n");
    }
});
// Clear
button2.addActionListener(function() {
    texta.setText("");
});
// KeyEvent: ENTER
txtfield.addActionListener(function() {
    var str = txtfield.getText();
    texta.append(str+"\n");
    txtfield.setText("");
});
// 连接
function connect(host,port,msg){
    try {
        var socket = new java.net.Socket(host,port);
        var message = msg.trim();
        var writer = new java.io.PrintWriter(socket.getOutputStream(),true);
        writer.println(message);
        try {
            var ins = new java.util.Scanner(socket.getInputStream());
            while( ins.hasNextLine()){
                texta.append(ins.nextLine()+"\n");
            }
        } finally {
            socket.close();
        }
    } catch(e){
        texta.append(e.toString());
    }
}
}

运行 rhino.bat char.js
分享到:
评论

相关推荐

    Pure JS (6.2):结合 Rhino 和 Junit GUI 测试 JS

    Rhino是Mozilla基金会开发的一个开源JavaScript引擎,它允许JavaScript代码在Java平台上运行。JUnit则是一个广泛使用的Java单元测试框架,但这里我们将其应用于JavaScript测试。 首先,了解Rhino引擎。Rhino提供了...

    Mozilla Rhino 介绍

    **Mozilla Rhino** 是一款用Java语言编写的开源JavaScript引擎。它不仅能够解析和执行JavaScript脚本,而且还可以作为Java程序的一部分,允许开发者直接在Java环境中使用JavaScript。Rhino是Java Scripting API (JSR...

    Mozilla Rhino rhino1_7R5.zip

    java中执行javascript脚本需要用到的引擎工具,jdk1.6已自带,但1.5及以下还是需要的

    org.mozilla.javascript-1.7.2.jar.zip

    总结,"org.mozilla.javascript-1.7.2.jar.zip"是Mozilla Rhino引擎的一个重要版本,它在Java平台上实现了高性能的JavaScript解释和执行,为开发者提供了丰富的功能和广泛的适用场景。无论是Web开发、服务器脚本,...

    3D建模软件:Rhino二次开发-Rhino二次开发基础+几何形状创建+3D建模核心+3D打印等全套教程

    3D建模软件:Rhino二次开发.docx 3D建模软件:Rhino二次开发all.docx 3D建模软件:Rhino二次开发_3D建模核心概念.docx 3D建模软件:Rhino二次开发_3D打印与Rhino二次开发.docx 3D建模软件:Rhino二次开发_...

    BeanShell和Mozilla Rhino详细介绍和例子

    BeanShell和Mozilla Rhino是两种在Java环境中用于动态执行和脚本化的工具,它们各自具有独特的特性和用途。 BeanShell是一个轻量级的Java代码解释器,它的主要特点是免费、可嵌入和具备面向对象的脚本语言特性。...

    Pure JS (6.1):使用 Rhino Shell 和 Debugger 运行和调试 JS

    Rhino是Mozilla开发的一个开源JavaScript引擎,它允许JavaScript在Java平台上运行,而Rhino Shell则是一个命令行工具,可以用来交互式地执行JavaScript脚本。Debugger则是用于检查和优化代码的工具,这对于理解和...

    深入浅出Rhino:Java与JS互操作

    《深入浅出Rhino:Java与JS互操作》是一本专注于探讨如何在Java环境中使用Rhino JavaScript引擎进行交互的书籍。Rhino是Mozilla基金会开发的一个开源JavaScript解释器,它完全用Java编写,使得JavaScript能够在Java...

    Rhino教程:用Rhino制作一把螺丝刀.doc

    【Rhino教程:用Rhino制作一把螺丝刀】 在3D建模软件Rhino中创建一个复杂的对象,如螺丝刀,需要对软件的基本操作有深入理解。本教程将引导初学者通过实际操作学习Rhino的基本建模技术。Rhino 2.0版本被用于这个...

    rhino-1.7.7.1.jar(Rhino for java)

    Rhino的jar包。 Rhino 是开源的 JavaScript 引擎,是完全基于 Java 实现,几乎可以使用 JavaScript 完成 Java 所有的工作。

    FF的js引擎rhino源码,java编写

    Rhino,全称为Mozilla Rhino,是一款由Mozilla基金会开发的JavaScript引擎,它以Java语言实现,因此具有很高的可移植性。Rhino在JavaScript的世界里扮演着重要角色,因为它将JavaScript的动态性和灵活性带入了Java...

    java运行js脚本引擎-----rhino

    Rhino是Mozilla基金会开发的一个开源项目,它完全用Java编写,因此可以无缝集成到Java环境中。 Rhino的核心是ECMAScript的实现,这是一种标准化的脚本语言,JavaScript就是基于此标准的一种方言。ECMAScript提供了...

    rhino-engine-1.7.13.jar

    rhino-engine-1.7.13.jar

    gino:用于基于 mozilla-rhino 的 javascript 开发的 gradle 插件

    Mozilla Rhino,作为一款强大的JavaScript引擎,允许开发者在Java环境中运行JavaScript代码。而Gino,就是这样一个为基于Mozilla Rhino的JavaScript开发提供便利的Gradle插件。本文将深入探讨Gino的核心功能、使用...

    PureJS (6.3):Rhino 中的日志与 proxy 对象

    它是由Mozilla开发的一个开源的JavaScript引擎,它允许JavaScript代码运行在Java平台上,提供了丰富的Java对象接口。Rhino不仅支持ECMAScript标准,还包含了一些独特的特性,如日志系统和Proxy对象。本文将深入探讨...

    RHINO犀牛基础教程.doc

    RHINO 犀牛基础教程 RHINO 犀牛基础教程是 Rhino 软件的入门级教程,旨在帮助初学者快速掌握 Rhino 软件的基本操作和概念。该教程共分六章,每章节都对应 Rhino 软件的不同方面,包括软件介绍、工作流程、界面操作...

    Rhino脚本引擎技术介绍

    Rhino脚本引擎是JavaScript的一个开源实现,它能够运行JavaScript风格的脚本代码,并且可以通过这个引擎调用Java语言编写的方法。Rhino脚本引擎可以嵌入Java应用程序中执行,其最大的特点是脚本的修改不需要重启Java...

    rhino1_7R2.zip

    rhino1_7R2.zip Mozilla Scripting Java Rhino classes (js.jar) not found - Javascript disabled java.lang.NoClassDefFoundError: org/mozilla/javascript/Scriptable

Global site tag (gtag.js) - Google Analytics