পাইথনের ইন্টারেক্টিভ REPL মোডের মতো কিছু আছে তবে জাভার জন্য?


92

পাইথনের ইন্টারেক্টিভ REPL মোডের মতো কিছু আছে তবে জাভার জন্য? যাতে আমি, উদাহরণস্বরূপ, InetAddress.getAllByName( localHostName )একটি উইন্ডোতে টাইপ করতে পারি এবং তাত্ক্ষণিকভাবে ফলাফলগুলি পাব, এই সমস্ত প্রকাশ্য স্থির অকার্যকর দুঃস্বপ্ন () জিনিস ছাড়াই?



4
জাভা এটি JDK-9 এ প্রবর্তন করছে : JEP 222: jshell: জাভা শেল
একটি বাগ নেই

উত্তর:


64

জাভা 9 সম্পাদনা করার পরে জেএসেল রয়েছে

আসল উত্তর অনুসরণ

আপনি গ্রোভি কনসোলও ব্যবহার করতে পারেন । এটি একটি ইন্টারেক্টিভ কনসোল যেখানে আপনি যা চান তা করতে পারেন। যেহেতু গ্রোভির মূল জাভা প্ল্যাটফর্মের ক্লাসও অন্তর্ভুক্ত রয়েছে, আপনি সেই ক্লাসগুলিও ব্যবহার করতে সক্ষম হবেন।

দেখে মনে হচ্ছে:

গ্রোভির স্ক্রিনশট


চিত্রশ্যাকটিতে স্ক্রিনশট আর বিদ্যমান নেই।

গ্রুভি কনসোল সম্পর্কে বিশেষত দুর্দান্ত যা হ'ল ডিফল্টরূপে অনেক বেশি প্যাকেজ আমদানি করা হয় (যেমন java.util। *), তাই আপনাকে
এতগুলি

4
গ্রোভি ইনস্টল করতে খুব অলস তাদের জন্য, এই কনসোলটির একটি অনলাইন সংস্করণ এখানে উপলভ্য: গ্রোভাইকনসোল.এপস্পট.কম । কিছু জেডিকে লিবস অনুপলব্ধ (যেমন I / O এবং System.exit()) তবে বেশিরভাগ উদ্দেশ্যে এটি পর্যাপ্ত হওয়া উচিত।
দিনাল

এটি ক্লাস গ্রহণ করে না তা কি স্বাভাবিক? class test{public static void test(){System.out.println('test')}}
চুন

52

এটি একটি লুপ নয় যদিও, গ্রহনের এটি করার একটি বৈশিষ্ট্য রয়েছে। একে "স্ক্র্যাপবুক পৃষ্ঠা" বলা হয়। আমি অনুমান করি যে উপমাটি মনে করা হচ্ছে যে আপনার কাছে একটি স্ক্র্যাপবুক রয়েছে যেখানে আপনি কোডের সামান্য স্নিপেট সংগ্রহ করেন।

যাইহোক, এটিকে কাজ করতে, Eclipse এ একটি প্রকল্প খুলুন (আপনার স্ক্র্যাপবুক পৃষ্ঠাটি কোনও প্রকল্পের সাথে যুক্ত হতে চলেছে - প্রকল্পগুলির নিজস্ব জিনিস যখন গ্রহণ করবে তখন এটি গ্রহণ করবে)।

তারপরে:

  1. প্রকল্প নেভিগেটর উইন্ডোতে, এমন একটি ফোল্ডার নির্বাচন করুন যা আপনার প্রকল্পের কোথাও বিদ্যমান।
  2. হয় মেনু ফাইল -> নতুন -> অন্যান্য নির্বাচন করুন বা নিয়ন্ত্রণ-এন টিপুন।
  3. জাভা -> জাভা রান / ডিবাগ -> স্ক্র্যাপবুক পৃষ্ঠা নির্বাচন করুন।
  4. "নেক্সট" টিপুন, তারপরে এটিকে একটি ফাইলের নাম দিন, তারপরে "সমাপ্তি" টিপুন।

এখন আপনার কাছে একটি স্ক্র্যাপবুক পৃষ্ঠা রয়েছে। কিছু কোড টাইপ করুন, সম্ভবত এর মতো:

System.out.println(System.getProperties());

তারপরে মাউসের সাহায্যে পাঠ্যটি নির্বাচন করুন এবং হয় নিয়ন্ত্রণ-ইউ চাপুন বা প্রসঙ্গ মেনু থেকে "চালনা করুন" নির্বাচন করুন। কোডটি চলবে এবং আউটপুট কনসোলে উপস্থিত হবে।

আপনি একটি প্রকাশও টাইপ করতে পারেন, এটি নির্বাচন করতে পারেন এবং প্রসঙ্গ মেনু থেকে প্রদর্শন নির্বাচন করতে পারেন। এটি প্রকাশের মূল্যায়ন করবে এবং প্রকারটি মুদ্রণ করবে। উদাহরণস্বরূপ, চলমান ডিসপ্লে অন 1 + 2মুদ্রণ করবে (int) 3


4
তার জন্য ধন্যবাদ. বেনশেল আমার জন্য স্প্ল্যাশের সময় নির্ধারণ করছিল, তবে এটি পুরোপুরি কার্যকর হয়।
বায়ার্ড র্যান্ডেল

4
আমি এতক্ষণ ধরেই গ্রিপস ব্যবহার করে আসছি তবে এ সম্পর্কে জানতাম না, ধন্যবাদ!
টোবোল্ড

28

বিয়ানশেল জাভাতে লেখা একটি ছোট, নিখরচায়, এম্বেডযোগ্য জাভা উত্স ইন্টারপ্রেটার written বিনশেল গতিশীলভাবে স্ট্যান্ডার্ড জাভা সিনট্যাক্স সম্পাদন করে এবং পার্ল এবং জাভাস্ক্রিপ্টের মতো আলগা প্রকার, কমান্ড এবং পদ্ধতি বন্ধের মতো সাধারণ স্ক্রিপ্টিং সুবিধার সাথে এটিকে প্রসারিত করে। আপনি জাভা পরীক্ষা এবং ডিবাগিংয়ের পাশাপাশি আপনার অ্যাপ্লিকেশনগুলিকে নতুন উপায়ে প্রসারিত করার জন্য বিনশেল ইন্টারেক্টিভভাবে ব্যবহার করতে পারেন। স্ক্রিপ্টিং জাভা দ্রুত প্রোটোটাইপিং, ব্যবহারকারীর স্ক্রিপ্টিং এক্সটেনশান, নিয়ম ইঞ্জিন, কনফিগারেশন, পরীক্ষা, গতিশীল স্থাপনা, এমবেডেড সিস্টেম এবং এমনকি জাভা শিক্ষা সহ বিভিন্ন অ্যাপ্লিকেশনগুলিকে .ণ দেয়।

http://www.beanshell.org/

http://www.beanshell.org/manual/syntax.html# স্ট্যান্ডার্ড_ জাভা_সিন্ট্যাক্স


এছাড়াও কম ভার্বোজ সিনট্যাক্সের জন্য জাইথন ​​এবং জেরুবি ইন্টারেক্টিভ শেল রয়েছে।
বাক্কাল

4
বিনশেল সক্রিয়ভাবে বেনশেল 2 - কোড. google.com/p/beanshell2
hshib

কমান্ড লাইন থেকে বেনশেল চালানোর একটি সাধারণ উদাহরণ এখানে পাওয়া যাবে
ব্র্যাড পার্কস

@hshib: এটা এ এখন গিটহাব এবং গত কমিট যে 2013 থেকে না "সক্রিয় ভাবে নিয়ন্ত্রিত"।
মার্টিন শ্রাইডার

@ মার্টিনশ্রেডার, যে মন্তব্যটি 2013 :-) এ ছিল
hshib

19

আপনি Elpipse Scrapbook পৃষ্ঠা ব্যবহার করতে পারেন।

Eclipse এ একটি স্ক্র্যাপবুক পৃষ্ঠা তৈরি করুন। আপনার প্রকল্পে, নতুন-> অন্যান্য-> স্ক্র্যাপবুক পৃষ্ঠা।

ফাইলে কিছু পাঠ্য লিখুন, এটি নির্বাচন করুন এবং সিটিআরএল-ইউ টিপুন এবং আপনি সেখানে যান।

আপনার আমদানি পরিচালনা করতে, পৃষ্ঠায় ডান ক্লিক করুন এবং আমদানি সেট করুন নির্বাচন করুন, যেখানে আপনি প্যাকেজ বা একক শ্রেণি আমদানি করতে বেছে নিতে পারেন। এটি অবিচলিত এবং পৃষ্ঠাটি দ্বারা সংরক্ষিত।


4
এটি যেমন দরকারী তেমনি স্ক্র্যাপবুক পৃষ্ঠাটি একটি দৃistant়প্রতিযোগী অধিবেশন নয়, তাই একটি রিপ্লেয়ার হিসাবে খুব ভাল কাজ করে না।
এমহরিস

19

পুরানো প্রশ্ন, তবে এখন আরও একটি ভাল উত্তর আছে (মে 2013) - জাভা-রিপ্লে! এটি গিথুব এ উপলব্ধ এবং দ্রুত ওয়ান-অফ পরীক্ষার জন্য জাভা-রেপেল ওয়েবসাইটে সরাসরি উপলব্ধ ।

আপনি যদি গিট হাব কোডটি ধরে থাকেন এবং antনিদর্শনগুলি তৈরি করতে চালিত হন তবে আপনি একটি ছোট স্ক্রিপ্টের সাহায্যে এটিকে সহজেই ব্যবহার করতে পারবেন:

#!/bin/sh
java -jar /home/rdahlgren/scripts/javarepl-dev.build.jar

এই প্রকল্পটি সন্ধানের পর থেকে আমি সম্ভবত এটি দিনে 5 বার ব্যবহার করি। উপভোগ করুন!


অনলাইন প্রতিবেদনের লিঙ্কটি এখন javarepl.com/term.html মনে হচ্ছে পুরানো লিঙ্কটি জাভা ত্রুটিগুলি দেখায়।
টনি 21

13

জাভা (,, sh) একটি আরপিএল কনসোল নামে পরিচিত জাহাজটিকে এখনও কেউ উল্লেখ করেনি বলে মনে হয় jrunscript। এটি ভাষা অজ্ঞেয়বাদী (তাই জাইথন, জেআরবি ইত্যাদি ব্যবহার করা যেতে পারে)। এটি জাভাস্ক্রিপ্ট (রাইনো) -এ ডিফল্ট হয় যা ডিফল্টরূপেও বান্ডিল হয় এবং অন্যান্য ভাষার মতো আপনিও ক্লাসপথে উপলব্ধ সমস্ত প্যাকেজ / অবজেক্টগুলিতে অ্যাক্সেস করতে পারেন।


12

এটি ওপেনজেডকে 9 এর অংশ!

জেডিকে 9 এর অংশ হিসাবে জেশেল নামে একটি আরইপিএল (ওরাকল দ্বারা বিকাশিত) প্রকাশ করা হয়েছে।

সবে JDK 9 ডাউনলোড করুন এবং লঞ্চ করুন bin/jshell

জেএসেলের স্ক্রিন শট

রিসোর্স


11

গ্রোভির বিকল্প হিসাবে, বিয়ানশেল ব্যবহার করে দেখুন: http://www.beanshell.org/

এটি আরও জাভা-জাতীয় এবং এটি আপনাকে সরাসরি জাভা-সিনট্যাক্স ব্যবহার করতে দেয়।


বিনশেল কি আর রক্ষণাবেক্ষণ করা হয়?
রজারডপ্যাক

4
বিনশেল সক্রিয়ভাবে বেনশেল 2 - কোড. google.com/p/beanshell2
hshib

@ হুশিব: না। গিথুব নিয়ে শেষ প্রতিশ্রুতিটি ২০১৩
মার্টিন শ্র্রেডার

11

জাইথন একটি অজগর বাস্তবায়ন যা আপনাকে জাভা অবজেক্টগুলিতে পরিদর্শন ও ইন্টারেক্ট করতে দেয়।

>>> 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])

9

আলবার্ট ল্যাটাকসের জাভা-রিপিল ভালভাবে কাজ করে।

আপনি এটি এখানে আপনার ব্রাউজার থেকে সরাসরি চেষ্টা করতে পারেন: http://www.javarepl.com/term.html

উত্স কোডটি এখানে উপলভ্য, এবং এটিতে একটি শালীন ইন্টেলি-জে প্লাগইন রয়েছে।

https://github.com/albertlatacz/java-repl



7

খাঁজকাটা কনসোল আপনি যে কাজ করতে পারেন। এটি আসলে গ্রোভি কোডটি চেষ্টা করে দেখার চেষ্টা করা হয়েছিল, তবে যেহেতু গ্রোভি জাভা সুপারসেট, এটি সাধারণ জাভা স্টাফগুলিকেও অনুমতি দেয়।

আমি সবেমাত্র এটি কনসোলে প্রবেশ করলাম:

InetAddress.getAllByName('localhost')

এবং CTRL-R টিপুন, তারপরে এটি ফিরে আসবে:

groovy> InetAddress.getAllByName('localhost')

Result: [localhost/127.0.0.1]

7

স্কালা এছাড়াও একটি ইন্টারেক্টিভ কনসোল অফার করে। নিম্নলিখিত হিসাবে ইনটএড্রেসকে পুরোপুরি যোগ্য করে আপনার প্রশ্নের অভিব্যক্তিটির ফলাফল পেতে আমি এটি ব্যবহার করতে সক্ষম হয়েছি:

java.net.InetAddress.getAllByName("localhost")

6

যদিও JRuby , বিনশেল , জুলিয়ান Fleischer এর REPL আছে আলবার্ট Latacz এর REPL সর্বশেষ এবং সক্রিয় মনে করা হয়।

এটি একটি সাধারণ শ্রেণীর সংজ্ঞা দিয়ে চেষ্টা করেছেন, সূক্ষ্মভাবে কাজ করে।

$ 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);

3

গণিতের অ্যাক্সেস সহ লোকদের জন্য, জেলিংক আপনাকে ম্যাথমেটিক কোড সহ জাভা এবং স্ক্রিপ্ট অ্যাক্সেস করতে দেয়:

Needs["JLink`"]
LoadJavaClass["java.net.InetAddress"]
InetAddress`getAllByName["localhost"]

মূল্যায়ন করতে শিফট-এন্টার চাপুন এবং আপনি পাবেন

{<<JavaObject[java.net.Inet4Address>>}

তারপরে আপনি toStringপ্রত্যাবর্তিত বস্তুগুলিতে কল করার জন্য ম্যাথমেটিকার মানচিত্রের ফাংশনটি ব্যবহার করতে পারেন :

#@toString[]& /@ %

ফলাফল পেতে (বা কম অস্পষ্ট বাক্য গঠন ব্যবহার করতে Map[Function[obj, obj@toString[]], %]):

{"localhost/127.0.0.1"}

আপনি যদি এটি নিয়ে গুরুতর হতে শুরু করেন তবে আপনি টড গেইলির টিউটোরিয়ালটি http://references.wolfram.com/mathematica/JLink/tutorial/Overview.html পড়তে চাইবেন ।


2

আপনি যদি গ্রোভিকে ইতিমধ্যে জানেন (যা আমি অনুমান করি আপনি যা করেন, যেহেতু আপনি গ্রোভি কনসোল উল্লেখ করেছেন), তবে কেবল গ্রোভিশ বা গ্রোভি কনসোল ব্যবহার করুন, যা গ্রোভি ডিস্ট্রোতে অন্তর্ভুক্ত রয়েছে। আপনার যদি কাস্টম জারগুলি থাকে যা আপনি আমদানি করতে চান তবে আপনি ক্লাসপথে যোগ হওয়া গ্রোভিশ / গ্রোভি কনসোল শুরু করে এমন একটি ব্যাচ ফাইল লিখতে পারেন। আপনি এটি করতে পারেন

this.class.classLoader.rootLoader.addURL(new URL("file:///path to file"))

শেলের মধ্যে থেকে অন্যান্য জারগুলি লোড করতে।

আপনি যা বলছেন ঠিক তেমন করতে আমি বেশ কয়েক বছর আগে জাইথনকে ব্যবহার করেছি। আমার বিল্ড স্ক্রিপ্টের অংশ হিসাবে, আমি একটি কাস্টম jython.bat এবং .py ফাইল উত্পন্ন করেছি যাতে আমি যে প্রকল্পে কাজ করছি তার পুরো ক্লাসপথ অন্তর্ভুক্ত। এইভাবে যখন আমি জাইথন ​​শুরু করি, তখন এটিতে সমস্ত কোড উপলব্ধ ছিল এবং এটি লাইভ সিস্টেমে আমাকে ট্যুইডল জিনিসগুলিতে ছেড়ে দেওয়ার জন্য বসন্ত বয়ে আনবে। আপনি গ্রোভি, জেরুবি, বিয়ানশেল ইত্যাদি দিয়ে একই জিনিস করতে পারেন


আমি জানি আমি গ্রোভির শেলটি ব্যবহার করতে পারতাম, তবে গ্রোভির জাভা সমান শব্দার্থবিদ্যা নেই এবং এর কোনও টাইপ-চেকিং নেই। সুতরাং এটি সম্ভব যে আমি গ্রোভি শেলটিতে কাজ করে বলে মনে হচ্ছিল জাভা কোডের একটি অংশের সাথে সংকলন ত্রুটিগুলি বা বিভিন্ন রানটাইম আচরণ পেতে পারি।
দিনাল

গ্রোভি li / .groovy / lib এ সমস্ত লিবিও লোড করবে, আপনি সেখানে স্টাফ অনুলিপি করতে পারেন বা সিমলিংকগুলি ব্যবহার করতে পারেন
জেসন



1

বেশিরভাগ আইডিই'র উইন্ডোতে "তাত্ক্ষণিক মোড" এর মতো কিছু থাকে যা আপনাকে ফ্লাইতে জাভা কোডটি মূল্যায়নের অনুমতি দেয়।


Eclipse এর "প্রদর্শন" ভিউ রয়েছে যা আমি যা চাই তার কাছাকাছি। সমস্যাটি হ'ল এটি চলমান অ্যাপ্লিকেশন প্রসঙ্গে থাকতে হবে। আমাকে একটি অ্যাপ চালাতে হবে, ব্রেকপয়েন্টে থামাতে হবে এবং কেবল তখনই আমি যা চাই তা টাইপ করতে পারি।
ইয়নি রোয়েট

@ YoniRoit IMHO আমি কমান্ড লাইন REPL এর চেয়ে "ডিসপ্লে" + ডিবাগ মোডকে পছন্দ করি। আমি দীর্ঘদিন আগে আরপিএল ডাব্লু / পাইথন ব্যবহার করতাম তাই আমি দুটোই করে ফেলেছি। আমি মনে করি এটি ইউনিট টেস্ট লিখতে এবং ব্রেক ব্রেক পয়েন্ট স্থাপন এবং পছন্দসই প্রসঙ্গের সাথে খেলতে গিয়ে যে কোনও কোডটি ইউনিট পরীক্ষায় ফিরে কাজ করে পেস্ট করার সময় এটি আরও ভাল। একটি ইউনিট টেস্ট বলার চেয়ে সমতল আরএইপিএলে একটি যথাযথ প্রসঙ্গ পাওয়া শক্ত।
অ্যাডাম জেন্ট

1

আপনি ব্লুজে একবার দেখে নিতে পারেন যা একটি ইন্টারেক্টিভ জাভা ডেভেলপমেন্ট এনভায়রনমেন্ট যা ইওলিপ বা নেটবিয়ানের মতো সম্পূর্ণ আইডিই না করে ওওপি শেখানোর জন্য বোঝায়। যাইহোক যাইহোক নাটকটি নিয়ে মজা করা একরকম।

আপনি এটি YouTube এ জাভা টিউটোরিয়ালের একটি সিরিজে ক্রিয়াতে দেখতে পাচ্ছেন ।


এটা মজার. ব্লুজ একটি অপ্ট রেপলিটের মতো। আপনি বর্তমানে যে কোনও Repl ব্যবহার করেন সেগুলির জন্য সত্যই কার্যকর নয় তবে আপনি কোনও পদ্ধতিতে প্রোটোটাইপের জন্য একটি Repl ব্যবহার করবেন বলে আপনি এটি আপনার oo ডিজাইনের প্রোটোটাইপ করতে ব্যবহার করতে পারেন।
বিল কে

1

ডাঃ জাভা একটি শিক্ষামূলক আইডিই যার মধ্যে একটি REPL ফলক অন্তর্ভুক্ত।

এছাড়াও একটি Elpipse প্লাগইন আছে, কিন্তু এটি আমার পক্ষে কাজ করে নি। আমি মনে করি এটি কিছুক্ষণের মধ্যে আপডেট হয়নি। সুতরাং আমি সাধারণত যা করি তা হ'ল ডঃ জাভা উইন্ডোটি "যদি আমি এটি করি তবে কি হয়" প্রশ্নের জন্য খোলা রাখুন।

EclipseShell খুব ভাল হতে পারে, তবে আমি এখনও এটি ব্যবহার করি নি।



1

DrJava নামে একটি সাধারণ আইডিই রয়েছে যার একটি ইন্টারঅ্যাকশন কনসোল রয়েছে। এটি যেমনটি আশা করি ঠিক তেমন কাজ করে। কেবল একটি ফাইল লোড করুন এবং এতে থাকা বস্তুর সাথে আলাপচারিতা শুরু করুন।



1

জাভা 8 এর জন্য, নডজ 4 জে রয়েছে। দেখতে https://github.com/lorenzoongithub/nudge4j

nudge4j java repl

... এবং সৌন্দর্য হ'ল আপনি ব্রাউজার থেকে আপনার অ্যাপ্লিকেশনটি পাইলট করতে পারেন


1

জেপ্যাড একটি অন্তর্নির্মিত আরপিএল সহ একটি জাভা স্ক্র্যাচপ্যাড:

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>

এটি ডাম্পিং সংগ্রহ, তালিকা, মানচিত্র ইত্যাদি সম্পর্কেও স্মার্ট এবং এগুলি একটি টেবিল বা চার্ট হিসাবে সরবরাহ করার অনুমতি দেয়:

এখানে চিত্র বর্ণনা লিখুন



0

জেথন , জে আরবির জেআরবি, গ্রোভি (গ্রোভাইকনসোল এট আল) এবং বেনশেল সমস্ত কার্যকর বিকল্প options

আমি InteractiveConsoleজাইথনের জন্য ব্যবহার করেছি , এটি অ্যাপটিতে সত্যই দুর্দান্ত কাজ করেছে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.