Esiste un modo per eseguire il codice perl senza dover utilizzare Runtime.getRuntime.exec ("..."); (analizzare in app java)?Includi Perl in Java
risposta
Ho cercato in questo io stesso di recente. La cosa più promettente che ho trovato finora è il modulo Inline::Java su CPAN. Permette di chiamare Java da Perl ma anche (tramite alcune classi Java incluse) chiamando Perl da Java.
No, non credo che questo esista. Mentre ci sono stati diversi porting sulla JVM (JRuby, Jython, ecc.) Perl non è ancora uno di questi.
this sembra che quello che stai chiedendo
Avrei potuto giurare che era facile come torta utilizzando il Java Scripting API.
Ma a quanto pare non è sulla lista delle implementazioni esistenti ...
Quindi, forse questo aiuta invece:
java and perl
edit: ho detto "forse"
Il JPL è morto. Non usarlo Inline :: Java è la strada da percorrere. – daotoad
Inline::Java fornisce un embedded Perl interpreter in una classe. Puoi usare questo per chiamare il codice Perl dal tuo codice Java.
Graciliano M. Passos' PLJava fornisce anche un interprete incorporato.
Non utilizzare JPL (Java Perl Lingo) - il progetto è morto ed è stato rimosso da Perls moderni.
In futuro, il modo standard per utilizzare qualsiasi linguaggio di scripting è tramite il supporto di scripting java introdotto in JSR 223. Vedere lo scripting project homepage per un elenco di linguaggi di script supportati al momento. Purtroppo, Perl non è in là ancora :-(
Inline::Perl
è il modo accettato. Ma c'è anche Jerl che può essere eseguito da un JAR.
Ecco an example senza utilizzare il wrapper VM (che non è così . divertente)
Ecco alcuni esempi che utilizzano la classe jerlWrapper
per rendere più facile per il codice:
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();
}
}
o
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());
}
}
}
- 1. Includi la funzione di ordinamento di perl in un oggetto
- 2. Maven: Includi risorse in JAR
- 3. Includi file SVG in SVG
- 4. Includi UIImagePickerController in una vista
- 5. Includi collegamento nell'etichetta modulo?
- 6. C++ Includi intestazione problema
- 7. log4j2: Includi PID
- 8. Posso creare interfacce tipo Java in Perl?
- 9. Naming Includi protezioni
- 10. Equivalente Java dell'operatore /// di Perl?
- 11. Perl o Java Sentiment Analysis
- 12. Costanti e Includi file in TSQL
- 13. Includi dipendenze in vaso utilizzando pacchetto SBT
- 14. Parse: puntatori Includi nidificate in Query
- 15. Come usare Includi con Lambda in EF?
- 16. Includi intestazioni esterne in Eclipse per C
- 17. Mercuriale: includi changeset segreti in bundle?
- 18. Includi file PHP e JS in SuiteCRM
- 19. Includi un altro file JSP
- 20. Includi dallo stream "php: // memory"
- 21. Entity Framework: Eredità e Includi
- 22. Includi gruppi GAC nel raccoglitore
- 23. Includi modelli derivati Classe correlata
- 24. Perl ha qualcosa come Java/PHP Docs?
- 25. Chiama una classe java da perl
- 26. Includi cartella nel progetto di installazione
- 27. Includi/Escludi file per configurazione Visual Studio
- 28. Quali progetti includi nelle tue soluzioni
- 29. Includi dipendenze runtime di Python ruote
- 30. Lambda: clausola Where per la lista Includi
sono sicuro di questo: ** si può fare il contrario: chiama perl da Java **, è affidabile in roba mission critical? – FutuToad