Include Perl in Java

前端 未结 7 1257
予麋鹿
予麋鹿 2020-12-31 20:19

Is there any way to execute perl code without having to use Runtime.getRuntime.exec(\"...\"); (parse in java app)?

7条回答
  •  無奈伤痛
    2020-12-31 20:59

    Inline::Perl is the accepted way. But there's also Jerl which may be run from a JAR.

    Here's an example without using the VM wrapper (which is not so fun).

    Here's some examples using the jerlWrapper class to make it easier to code:

    import jerlWrapper.perlVM;
    
    public final class HelloWorld  {
    
        /* keeping it simple */
        private static String helloWorldPerl = "print 'Hello World '.$].\"\n\";";
    
        public static void main(String[] args) {
            perlVM helloJavaPerl = new perlVM(helloWorldPerl);  
            helloJavaPerl.run();
        }
    }
    

    or

    import jerlWrapper.perlVM;
    
    public final class TimeTest  {
    
        /*  The (ugly) way to retrieve time within perl, with all the
         *  extra addition to make it worth reading afterwards.
         */
        private static String testProggie = new String(
                "my ($sec, $min, $hr, $day, $mon, $year) = localtime;"+
                "printf(\"%02d/%02d/%04d %02d:%02d:%02d\n\", "+
                "       $mon, $day + 1, 1900 + $year, $hr, $min, $sec);"
        );
    
        public static void main(String[] args) {
            perlVM helloJavaPerl = new perlVM(testProggie);     
            boolean isSuccessful = helloJavaPerl.run();
            if (isSuccessful) {
                System.out.print(helloJavaPerl.getOutput());
            }
        }
    }
    

提交回复
热议问题