Python'un etkileşimli REPL modu gibi bir şey var ama Java için? Böylece, örneğin, InetAddress.getAllByName( localHostName )
bir pencere yazıp, tüm bu genel statik boşluk kabusu () şeyi olmadan hemen sonuç alabilmem için?
Python'un etkileşimli REPL modu gibi bir şey var ama Java için? Böylece, örneğin, InetAddress.getAllByName( localHostName )
bir pencere yazıp, tüm bu genel statik boşluk kabusu () şeyi olmadan hemen sonuç alabilmem için?
Yanıtlar:
düzenle Java 9'dan beri JShell var
Orijinal cevap aşağıdaki gibidir
Groovy Konsolunu da kullanabilirsiniz . İstediğinizi yapabileceğiniz etkileşimli bir konsoldur. Groovy ayrıca çekirdek java platformundan sınıflar içerdiğinden, bu sınıfları da kullanabileceksiniz.
Şöyle görünüyor:
System.exit()
), ancak çoğu amaç için yeterli olmalıdır.
class test{public static void test(){System.out.println('test')}}
Eclipse, döngü olmasa da bunu yapma özelliğine sahiptir. Buna "Karalama Defteri Sayfası" deniyor. Sanırım benzetmenin, küçük kod parçacıkları topladığınız bir not defteriniz olması gerekiyor.
Her neyse, çalışmasını sağlamak için Eclipse'de bir proje açın (Karalama Defteri Sayfanız bir projeyle ilişkilendirilecektir - Eclipse, projeler bir şeyleri sahiplendiğinde onu sever).
Sonra:
Artık bir not defteri sayfanız var. Belki şuna benzer bir kod yazın:
System.out.println(System.getProperties());
Ardından metni fareyle seçin ve Control-U tuşlarına basın veya içerik menüsünden "Yürüt" ü seçin. Kod çalışacak ve çıktı konsolda görünecektir.
Ayrıca bir ifade yazabilir, onu seçebilir ve bağlam menüsünden Görüntüle'yi seçebilirsiniz. İfadeyi değerlendirecek ve türünü yazdıracaktır. Örneğin, Ekran açıkken 1 + 2
yazdırılır (int) 3
.
BeanShell, Java ile yazılmış, nesne kodlama dili özelliklerine sahip küçük, ücretsiz, yerleştirilebilir bir Java kaynak yorumlayıcısıdır. BeanShell, standart Java sözdizimini dinamik olarak yürütür ve bunu, Perl ve JavaScript'tekiler gibi gevşek türler, komutlar ve yöntem kapatmaları gibi yaygın komut dosyası oluşturma kolaylıkları ile genişletir. BeanShell'i Java denemesi ve hata ayıklama için etkileşimli olarak kullanabilir ve ayrıca uygulamalarınızı yeni yollarla genişletebilirsiniz. Java komut dosyası oluşturma, hızlı prototip oluşturma, kullanıcı komut dosyası genişletme, kural motorları, yapılandırma, test, dinamik dağıtım, gömülü sistemler ve hatta Java eğitimi dahil olmak üzere çok çeşitli uygulamalara katkıda bulunur.
http://www.beanshell.org/manual/syntax.html#Standard_Java_Syntax
Eclipse Scrapbook sayfalarını kullanabilirsiniz.
Eclipse'de bir Karalama Defteri sayfası oluşturun. Projenizde Yeni-> Diğer-> Karalama Defteri sayfası.
Dosyaya bir metin girin, onu seçin ve ctrl-U tuşlarına basın ve işte başlayın.
İçe aktarımlarınızı yönetmek için, sayfaya sağ tıklayın ve bir paketi veya tek bir sınıfı içe aktarmayı seçebileceğiniz İçe Aktarmaları Ayarla'yı seçin. Bu kalıcıdır ve sayfayla birlikte kaydedilir.
Eski soru, ancak şimdi daha iyi bir cevap var (Mayıs 2013) - java-REPL! Github'da mevcuttur ve hızlı bir defalık test için java-repl web sitesinde canlı olarak mevcuttur .
Git hub kodunu alır ve yapıları ant
oluşturmak için çalıştırırsanız , aşağıdaki gibi küçük bir komut dosyasıyla kullanımını kolaylaştırabilirsiniz:
#!/bin/sh
java -jar /home/rdahlgren/scripts/javarepl-dev.build.jar
Bu projeyi bulduğumdan beri muhtemelen günde 5 kez kullanıyorum. Zevk almak!
Henüz kimse Java'nın (6, 7) adlı bir REPL konsolu gönderdiğinden bahsetmemiş gibi görünüyor jrunscript
. Dilden bağımsızdır (bu nedenle Jython, JRuby vb. İle kullanılabilir). Varsayılan olarak, yine varsayılan olarak paketlenmiş olan JavaScript (Rhino) 'dur ve diğer diller gibi, sınıf yolunda bulunan tüm paketlere / nesnelere erişebilirsiniz.
JShell (Oracle tarafından geliştirilen) adlı bir REPL , JDK 9'un bir parçası olarak piyasaya sürüldü.
Sadece JDK 9'u indirin ve başlatın bin/jshell
.
Groovy'ye alternatif olarak Beanshell'i deneyin: http://www.beanshell.org/
Daha çok Java gibidir ve doğrudan Java sözdizimini kullanmanıza izin verir.
Jython , Java nesnelerini incelemenizi ve onlarla etkileşim kurmanızı sağlayan bir python uygulamasıdır.
>>> from java.net import *
>>> InetAddress.getAllByName("google.com")
array(java.net.InetAddress,[google.com/209.85.171.100,
google.com/74.125.45.100,
google.com/74.125.67.100])
Albert Latacz tarafından hazırlanan Java-REPL iyi çalışıyor.
Doğrudan tarayıcınızdan buradan deneyebilirsiniz: http://www.javarepl.com/term.html
Kaynak kodu burada mevcuttur ve iyi bir Intelli-J eklentisine sahiptir.
Clojure, kullanabileceğiniz bir REPL sağlar.
Harika konsolu Bunu yapmaya izin verir. Aslında harika kodu denemek ve test etmek için tasarlanmıştı, ancak groovy Java'nın bir üst kümesi olduğu için düz Java şeylerine de izin veriyor.
Bunu konsola yeni girdim:
InetAddress.getAllByName('localhost')
ve CTRL-R'ye basın, sonra geri döndü:
groovy> InetAddress.getAllByName('localhost')
Result: [localhost/127.0.0.1]
Scala ayrıca etkileşimli bir konsol sunar. InetAddress'i aşağıdaki gibi tam olarak nitelendirerek sorunuzdaki ifade için bir sonuç almak üzere kullanabildim:
java.net.InetAddress.getAllByName("localhost")
İken JRuby , BeanShell , Julian Fleischer'ın REPL orada Albert Latacz en REPL son ve aktif olarak görünmektedir.
Basit bir sınıf tanımıyla denedim, iyi çalışıyor.
$ java -jar javarepl.jar
Welcome to JavaREPL version 56 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_17)
Type in expression to evaluate.
Type :help for more options.
java> public class Test {
| public static void execute(String [] s) {
| System.out.println(54353 + s[0]);
| }}
java> Test.execute(new String [] {"234343"});
54353234343
java> System.exit(0);
Mathematica'ya erişimi olan kişiler için JLink, Mathematica koduyla Java'ya ve komut dosyasına erişmenizi sağlar:
Needs["JLink`"]
LoadJavaClass["java.net.InetAddress"]
InetAddress`getAllByName["localhost"]
Değerlendirmek için Shift-Enter'a basın ve
{<<JavaObject[java.net.Inet4Address>>}
Ardından toString
, döndürülen nesneleri aramak için Mathematica'nın Harita işlevini kullanabilirsiniz :
#@toString[]& /@ %
sonucu elde etmek için (veya daha az anlaşılmaz sözdizimini kullanmak için Map[Function[obj, obj@toString[]], %]
):
{"localhost/127.0.0.1"}
Bu konuda ciddileşmeye başlarsanız, http://reference.wolfram.com/mathematica/JLink/tutorial/Overview.html adresindeki Todd Gayley'in öğreticisini okumak isteyeceksiniz .
Groovy'yi zaten biliyorsanız (Groovy Konsolundan bahsettiğinizden beri bildiğinizi varsayıyorum), o zaman Groovy dağıtımında bulunan groovysh veya groovyConsole'u kullanın. İçe aktarmak istediğiniz özel kavanozlarınız varsa, sınıf yoluna eklenenlerle groovysh / groovyConsole'u başlatan bir toplu iş dosyası yazabilirsiniz. Bunu da yapabilirsin
this.class.classLoader.rootLoader.addURL(new URL("file:///path to file"))
diğer kavanozları yüklemek için kabuğun içinden.
Jython'u birkaç yıl önce tam istediğiniz şeyi yapmak için kullanırdım. Derleme komut dosyamın bir parçası olarak, üzerinde çalıştığım proje için tam sınıf yolunu içeren özel bir jython.bat ve .py dosyası oluşturdum. Bu şekilde Jython'u başlattığımda, tüm kod kullanılabilir olacaktı ve Spring'i canlı sistemdeki şeyleri değiştirmeme izin verecek şekilde ortaya çıkaracaktı. Aynı şeyi Groovy, JRuby, BeanShell vb. İle de yapabilirsiniz.
jruby http://kenai.com/projects/jruby/pages/CallingJavaFromJRuby kullanarak java komut dosyası oluşturabilirsiniz
Çoğu IDE'nin, java kodunu anında değerlendirmenize izin verecek "anında mod" gibi bir şey olarak adlandırılan bir penceresi vardır.
Eclipse veya NetBeans gibi tam IDE yerine OOP'yi öğretmek için tasarlanmış etkileşimli bir Java geliştirme ortamı olan BlueJ'ye bir göz atabilirsiniz . Yine de oyun oynamak çok eğlenceli.
Bunu YouTube'da bir dizi Java eğiticisinde çalışırken görebilirsiniz.
DrJava , bir REPL bölmesi içeren eğitim amaçlı bir IDE'dir.
Bir Eclipse eklentisi de var ama benim için işe yaramadı. Sanırım bir süredir güncellenmedi. Genelde yaptığım şey, "Bunu yaparsam ne olur" soruları için bir DrJava penceresini açık tutmaktır.
EclipseShell de iyi olabilir ama henüz kullanmadım.
Çevrimiçi bir REPL var: http://www.javarepl.com/console.html
Karakter sınırına ulaşmak için daha fazla yazmak ...
Java 8 için nudge4j var. bkz. https://github.com/lorenzoongithub/nudge4j
... ve güzel olan, uygulamanızı tarayıcıdan pilot olarak kullanabilmenizdir.
JPad , yerleşik bir REPL'e sahip bir java karalama defteri:
C:\>jpad
_ _____ _
| | __ \ | |
| | |__) |_ _ __| |
_ | | ___/ _` |/ _` |
| |__| | | | (_| | (_| |
\____/|_| \__,_|\__,_|
Anything you type is evaluated as java.
The code is continuously appended until you call \clear.
Other Available Commands:
\exit - exit
\clear (n) - clear past java statements
\history - display all past java statements
\help - display this help
j>2+2
4
j>Math.sin(100.1)
-0.4177477
j>
Ayrıca koleksiyonları, listeleri, haritaları vb. Boşaltma konusunda akıllıdır ve bunları bir tablo veya grafik olarak oluşturmaya izin verir:
Java 9, JShell'i sağlıyor.
jshell> println( "Print me!")
jshell> Print me!