当前位置: 首页 > 面试题库 >

Mac OS X 10.6上的Java中的AppleScript?

和嘉澍
2023-03-14
问题内容

要从Python调用AppleScript,我使用“ appscript”桥:

http://appscript.sourceforge.net/

在Mac OS X 10.6+上,可以使用什么从Java调用AppleScript?


问题答案:

这是一种适用于Mac OS X 10.6+上的Java的方法。此示例脚本获取当前文件夹的创建日期:

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
import java.io.File;
import java.util.Date;
import java.util.GregorianCalendar;

public class ScratchSpace {

    public static void main(String[] args) throws ScriptException {
        System.out.println("creationDate = " + getFileCreationDate(new File(".")));
    }

    private static Date getFileCreationDate(File file) throws ScriptException {
        final String script = "set myfile to \"" + file.getAbsolutePath() + "\"\n" +
                "set myinfo to info for myfile\n" +
                "creation date of myinfo";
        ScriptEngine scriptEngine = new ScriptEngineManager().getEngineByName("AppleScript");
        final GregorianCalendar result = (GregorianCalendar) scriptEngine.eval(script);
        return result.getTime();
    }

}


 类似资料:
  • 问题内容: 我试图理解Java中的向上转换和向下转换,并且对以下情况感到困惑(关于下面的代码): 首先-为什么当我包含该行时,代码无法编译, 第二-(假设我将其注释掉)为什么调用print 而不是?即使我们将其设置为类型,也不限于类中的方法,因为我们已经将其类型声明为。 任何帮助是极大的赞赏!这是代码: 问题答案: 随着这一行的隐式上行: 您没有做任何更改基础实例的操作。您正在做的就是将其分配给继

  • 线程“main”Java.lang.UnsatisfiedLinkError中出现异常:c:\users\jaiserpe\appdata\local\temp\pdnative7141399841793639340.dll:在Java.lang.ClassLoader$nativelibrary.load(本机方法)在Java.lang.ClassLoader.LoadLibrary0(clas

  • 我正在尝试使用AmazonS3服务器端加密(KMS)多部分上传一个文件。我有点困惑,我的代码中是否需要KMS键,如果需要,那么我如何将它添加到Java代码中呢? --更新私有静态void saveMultipartData(String clientRegion,String bucketName,String awsFilePath,File File){AmazonS3 s3client=Am

  • 执行更新的操作是: 当有多个实例时,我出现在竞争条件下。有没有一种方法以原子的方式更新列表值?

  • 我的OSX Sierra上有多个Java版本(包括Java8)。 我必须将/system/library/frameworks/javavm.framework/versions/currentjdk/home/bin/java维护为“1.6.0_65”,因为我需要遗留应用程序:(

  • 在java 9之前,监视< code>JavaAgent由< code>boostrapClassloader加载到JVM中,以便被监视的应用程序可以访问它们 使用Java 9模块化架构,只有java.base模块被加载到Bootstrap类加载器中,因此,Java代理只能访问中的类?默认情况下,它无法访问java.base之外的任何内容? 要访问java.sql之类的其他模块,需要在< code