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

java : mozilla rhino js 打开文件

阅读更多
https://mozilla.github.io/rhino/ 下载 rhino1_7R5.zip , 解压后运行 cmd
cd D:\rhino\rhino1_7R5
java -jar js.jar openfile.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); 

//import java.awt.Desktop; 
importClass(java.net.URI);
importClass(java.io.File);
importClass(java.lang.Thread);

with (swingNames) {
var frame = new JFrame("Open URI or file");     // The application window
frame.setLocation(200,200);
var txtfield = new JTextField(30);               // text entry field
txtfield.setText("http://");
var button = new JButton("打开");            // Button to start download
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 label = new JLabel("this is test");
// Put them all together and display the GUI
row.add(txtfield);                               // Input field goes in the row
row.add(button);                               // Button goes in the row
col.add(row);                                    // Row goes in the column
col.add(label);
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);

// KeyEvent: ENTER
txtfield.addActionListener(function() {
    try {
        if (Desktop.isDesktopSupported()) { // 判断系统是否提供了对该类的支持
            var desktop = Desktop.getDesktop();// 获得该类的对象 
            var fname = txtfield.text;
            if (fname.startsWith("http://") || fname.startsWith("https://")){
                if (desktop.isSupported(Desktop.Action.BROWSE))
                    desktop.browse(new URI(fname)); // 浏览网站
            }
            label.setText(fname);
        } else {
            label.setText("isDesktopSupported==false");
        }
        txtfield.setText("http://");
    }  catch(ex) {
        // Display a dialog box if anything goes wrong
        JOptionPane.showMessageDialog(frame, ex.message, "Exception",
                                     JOptionPane.ERROR_MESSAGE);
    }    
});
// When the user clicks the button, call this function
button.addActionListener(function() {
    try {
        var fname = txtfield.text;
        if (fname=="" || fname=="http://"){
            var response = filechooser.showSaveDialog(frame);
        // Quit now if they clicked Cancel
            if (response != JFileChooser.APPROVE_OPTION) return;
        // Otherwise, get the java.io.File that represents the destination file
            var file = filechooser.getSelectedFile();
            txtfield.setText(file)
        }
        if (Desktop.isDesktopSupported()) { // 判断系统是否提供了对该类的支持
            var desktop = Desktop.getDesktop();// 获得该类的对象 
            var fname = txtfield.text;
            if (fname.startsWith("http://") || fname.startsWith("https://")){
                if (desktop.isSupported(Desktop.Action.BROWSE))
                    desktop.browse(new URI(fname)); // 浏览网站
            }
            else if (desktop.isSupported(Desktop.Action.OPEN))
				desktop.open(new File(fname));// 打开
            label.setText(fname);
        } else {
            label.setText("isDesktopSupported==false");
        }
        txtfield.setText("");
    }  catch(e) {
        // Display a dialog box if anything goes wrong
        JOptionPane.showMessageDialog(frame, e.message, "Exception",
                                     JOptionPane.ERROR_MESSAGE);
    }
});

}

运行 rhino.bat openfile.js

彩蛋: mozilla rhino js引擎 使用教程
https://blog.csdn.net/belldeep/article/details/81837171
分享到:
评论

相关推荐

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

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

    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...

    org.mozilla.javascript-1.7.2.jar.zip

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

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

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

    Mozilla Rhino rhino1_7R5.zip

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

    org.mozilla.javascript-1.7.2.jar

    总的来说,"org.mozilla.javascript-1.7.2.jar"作为Mozilla Rhino的一个旧版本,为Java开发者提供了在Java环境中执行JavaScript的能力。虽然它不支持最新的JavaScript特性,但在许多旧项目或对新特性需求不高的场合...

    BeanShell和Mozilla Rhino详细介绍和例子

    而Mozilla Rhino则是一个JavaScript解释器,它是用Java实现的,完全符合Ecma-262标准,使得JavaScript可以直接在Java环境中运行。Rhino的主要用途包括: 1. **应用程序扩展和定制**:Rhino可以用来扩展Java应用的...

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

    Java运行JavaScript脚本引擎Rhino是一个强大的工具,它允许Java应用程序执行JavaScript代码并利用JavaScript的灵活性和动态性。Rhino是Mozilla基金会开发的一个开源项目,它完全用Java编写,因此可以无缝集成到Java...

    Java直接调用js文件框架rhino-1.7.9源代码

    Java直接调用js文件框架rhino-1.7.9源代码 https://github.com/mozilla/rhino/releases

    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...

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

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

    使用Rhino让java执行javascript的方法实例

    Rhino,由Mozilla基金会开发,就是这样一个JavaScript引擎,它允许Java程序直接执行JavaScript代码。本篇文章将深入探讨如何在Java项目中使用Rhino来执行JavaScript,并展示从Java调用JavaScript函数以及从...

    效率非常快的java读取javascript,附带源码和js.jar

    6. `js.jar`:这是Rhino的库文件,包含了运行JavaScript所需的类和接口,如`org.mozilla.javascript.*`包下的类。 在使用Rhino时,开发者通常会创建一个`ScriptEngineManager`实例,然后通过`getEngineByName(...

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

    《PureJS (6.3):Rhino 中的日志与 Proxy 对象》 在JavaScript的世界里,Rhino是一个非常特别的存在。它是由Mozilla开发的一个开源的JavaScript引擎,它允许JavaScript代码运行在Java平台上,提供了丰富的Java对象...

    使用 Rhino 存储文件方法

    在IT行业中,Rhino是一个非常重要的工具,尤其对于JavaScript开发者来说。...结合`writeFile.js`这样的示例,你可以深入学习如何利用Rhino进行文件I/O操作,这对于Java和JavaScript的混合开发场景非常有帮助。

Global site tag (gtag.js) - Google Analytics