Biên dịch và chạy mã Java trong Sublime Text 2


80

Tôi đang cố gắng biên dịch và chạy mã Java trong Sublime Text 2. Đừng chỉ bảo tôi làm điều đó theo cách thủ công trong Command Prompt. Bất cứ ai có thể cho tôi biết làm thế nào?

Btw, tôi đang sử dụng Windows 7 ...


4
Diễn đàn sublime dường như có câu trả lời cho điều này: sublimetext.com/forum/viewtopic.php?f=3&t=4805 , sublimetext.userecho.com/topic/…
madth3

tôi đã thử những cái đó ... tôi nhận được điều này: [Lỗi 2] Hệ thống không thể tìm thấy tệp được chỉ định [Đã xong]
điện thoại

2
Vấn đề đó được giải quyết trong các bài viết trong diễn đàn. Tôi nghĩ bạn cần thêm java và javac vào PATH của mình.
madth 3

Trong trường hợp của tôi, khi tôi chỉ cố gắng tạo và chạy một tệp java duy nhất trong Sublime Text 3 beta trong Windows 7 bằng cách sử dụng một lệnh duy nhất Ctrl + B, đặt phần sau trong "<Sublime Text 3> \ Packages \ Java \ JavaC.sublime -build "tệp (thư mục / tệp đã tạo không tồn tại) đã hoạt động. Thay đổi thư mục bin Java của bạn nếu cần. {"cmd": ["javac", "$ file_name", "&&", "java", "$ file_base_name"], "shell": true, "path": "C: \\ Program Files (x86) \ \ Java \\ jdk1.8.0_05 \\ bin "," file_regex ":" ^ (... *?): ([0-9] *):? ([0-9] *) "," bộ chọn " : "source.java"}
Lal

1
Đối với hồ sơ, không có câu trả lời nào dưới đây dường như hỗ trợ bất kỳ điều gì phức tạp hơn một loại chương trình hello-world cơ bản. Bất kỳ chương trình nào có nhập khẩu bên ngoài và yêu cầu thiết lập CLASSPATHvà / hoặc cpchuyển công tắc cho dự án sẽ không hoạt động. Bạn sẽ cần phải sửa đổi hệ thống xây dựng mỗi khi bạn muốn làm việc trên một dự án khác hoặc tìm một số giải pháp khác (chỉ có một kẻ bạo dâm xã hội mới sửa đổi CLASSPATHbiến ở cấp hệ điều hành mỗi lần).
Synetech

Câu trả lời:


77

Vì vậy, đây là những gì tôi đã thêm vào tệp JavaC.sublime-build

{
    "cmd": ["javac", "-Xlint", "$file"],
    "file_regex": "^(...*?):([0-9]*):?([0-9]*)",
    "selector": "source.java",

    "variants": [

        { "cmd": ["javac", "-Xlint", "$file"],
          "file_regex": "^(...*?):([0-9]*):?([0-9]*)",
          "selector": "source.java",
          "name": "Java Lintter"
        },  

        { "cmd": ["java", "$file_base_name"],
          "name": "Run Java"
        }
    ]
}

Điều này làm được là nó tạo ra các biến thể cho lệnh xây dựng thông thường ( ctrl+b). Với ctrl+, bbạn vẫn có thể biên dịch mã của mình. Nếu bạn thực hiện shift+ ctrl+ b, biến thể đầu tiên sẽ được thực thi, trong trường hợp này là javac với tùy chọn -Xlint. Biến thể thứ hai và cuối cùng là chính lệnh java. bạn có thể đặt nó làm biến thể đầu tiên của mình và shift+ ctrl+ bsẽ thực sự thực thi mã java.

Ngoài ra, hãy lưu ý rằng mỗi biến thể là một "tên". Này về cơ bản cho phép cụ thể "xây dựng" tùy chọn này để hiển thị trong shift+ ctrl+ ptùy chọn. Vì vậy, bằng cách sử dụng cấu hình này, bạn chỉ cần thực hiện shift+ ctrl+ pvà gõ "Chạy Java" và nhấn enter, và mã của bạn sẽ thực thi.

Hy vọng điều này sẽ giúp.


10
Nếu bạn muốn sử dụng ctrl + shift + b để chạy, hãy đổi trường "tên" thành "Chạy".
mtyurt,

4
Điều này đã thay đổi cho ST3: * thay thế "cmd" bằng shell_cmd * bỏ dấu ngoặc nhọn * đặt toàn bộ lệnh trong một chuỗi
Dagoth Ulen

1
+1 Như các tài liệu về hệ thống xây dựng ST đã nói, các lệnh xây dựng không nhất thiết phải biên dịch tệp, chúng có thể chạy bất kỳ thứ gì, kể cả chương trình đã biên dịch. Như vậy, này trả lời là cách chính xác để biên dịch và chạy Java từ ST (2) mà không sử dụng các lệnh nhắc. (Trong thực tế, TextPad có khả năng tương tự để xác định và chạy các chương trình tùy ý, và có một built-in hỗ trợ cho Java cho phép bạn để ràng buộc một phím nóng để biên dịch và khác để chạy.)
Synetech

cảm ơn vì điều này đã làm việc. và cảm ơn @mtyurt, đã đổi Run Javathành Runvà bây giờ đang nhấn ctrl+shift+bthực thi chương trình.
Nishant Bhakta

Và người ta có thể tìm thấy *.sublime-buildtệp ở đâu?
Aditya Gupta

19

Tôi thấy phương pháp trong bài Biên dịch và chạy chương trình Java với Sublime Text 2 hoạt động tốt và tiện lợi hơn một chút so với các phương pháp khác. Đây là một liên kết đến trang lưu trữ.

Cho cửa sổ:

Bước 1:

Tạo runJava.batbằng mã sau.

@ECHO OFF
cd %~dp1
ECHO Compiling %~nx1.......
IF EXIST %~n1.class (
DEL %~n1.class
)
javac %~nx1
IF EXIST %~n1.class (
ECHO -----------OUTPUT-----------
java %~n1
)

Sao chép tệp này vào thư mục jdk bin.

Bước 2:

  1. Mở thư mục gói Sublime bằng Tùy chọn> Duyệt qua các gói ..
  2. Đi tới Thư mục Java
  3. Mở JavaC.sublime-build và thay thế dòng
    "cmd": ["javac", "$file"],
    bằng
    "cmd": ["runJava.bat", "$file"],

Làm xong!

Viết chương trình và chạy bằng CTRL + B

Lưu ý : Hướng dẫn khác với Sublime 3.


15

Sublime Text 3 có một giải pháp hơi khác. Đây là một sửa đổi của câu trả lời của vijay, mà tôi đã sử dụng trước đây.

 {
     "shell_cmd": "javac -Xlint \"${file}\"",
     "file_regex": "^(...*?):([0-9]*):?([0-9]*)",
     "working_dir": "${file_path}",
     "selector": "source.java",

     "variants":
     [
          {
               "name": "Run",
               "shell_cmd": "java \"${file_base_name}\""
          }
     ]
 }

Dán ở trên vào một tệp mới có tên JavaC.sublime-buildvà đặt nó vào gói Người dùng của bạn. Điều này có thể được tìm thấy trong C:\Users\You\AppData\Roaming\Sublime Text 3\Packages\User.

Ctrl-B sẽ biên dịch. Ctrl-Shift-B sẽ chạy.


2
Công việc tốt. Điều này cũng hoạt động trên Linux, mặc dù tôi dường như không cần thêm dấu ngoặc kép và biểu tượng thoát hàng đầu. = :). Nhưng nó đã có tác dụng. Cảm ơn.
NYCeyes

8

Phiên bản JavaC.sublime-build này được chỉnh sửa từ câu trả lời của vijay phù hợp với tôi trên cả Windows 7 và Mac cho Sublime Text 3.

Tôi đã chỉnh sửa nó để Ctrl + b hoặc command + b là đủ cho cả build + run.

{
"shell_cmd": "javac -Xlint $file && java $file_base_name",
"file_regex": "^(...*?):([0-9]*):?([0-9]*)",
"selector": "source.java",
"shell": true
}

'&&' đảm bảo rằng phần thứ hai chỉ chạy khi phần đầu tiên thành công, tức là chỉ khi tệp lớp được tạo. Bạn có thể tìm thêm thông tin liên quan tại đây: http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/ntcmds_shelloverview.mspx?mfr=true


1
Giải pháp này cũng hoạt động đối với văn bản siêu phàm 2 nếu thay thế shell_cmdbằng cmd. Đây là giải pháp duy nhất làm việc cho tôi. Cảm ơn bạn.
Andritchi Alexei

7

biên dịch và chạy theo tài liệu của sublime text 2 nd 3

Bước 1: Đặt các biến môi trường cho java như bạn đã biết hoặc tham khảo ở đâu đó

strp-2: mở tài liệu mới và sao chép mã dán bên dưới

{
"cmd": ["javac", "$file_name", "&&", "java", "$file_base_name"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.java",
"shell":true }

bước 3: lưu tài liệu dưới dạng userjavaC.sublime-build trong thư mục C: \ Users \ myLapi \ AppData \ Roaming \ Sublime Text 3 \ Packages \ User

bước 4:

sau khi hoàn tất, chọn làm công cụ-> xây dựng hệ thống-> userjavaC

để biên dịch và chạy nhấn ctrl + b


6

Tôi đang sử dụng Windows 7. Giải pháp dưới đây phù hợp với tôi !!

**Open** the file JavaC.sublime-build and replace all the code in the file with the code below:

{
 "cmd": ["javac", "$file_name","&&","java", "$file_base_name"],
 "file_regex": "^(...*?):([0-9]*):?([0-9]*)",
 **"path": "C:\\Program Files\\Java\\jdk1.6.0\\bin\\",**
 "selector": "source.java",
 "shell": true
 }

Hãy nhớ thay thế "C: \ Program Files \ Java \ jdk1.6.0 \ bin \" bằng đường dẫn mà bạn đặt jdk của mình. Và đảm bảo thêm đường dẫn của bạn java JDK vào biến môi trường "PATH". Tham khảo bài đăng của bunnyDrug để thiết lập biến môi trường. Tốt!!


3

Tham khảo giải pháp tại: http://www.compilr.org/compile-and-run-java-programs/

Hy vọng rằng giải quyết được, cho cả biên dịch và chạy các lớp trong sublime ..... Bạn có thể xem tập lệnh của tôi trong phần nhận xét để thử nó trong trường hợp mac ...

CHỈNH SỬA: Rất tiếc, liên kết trên đã bị hỏng. Nó trình bày chi tiết tất cả các bước cần thiết để viết thư và chạy java trong văn bản siêu phàm. Dù sao, đối với hệ thống mac hoặc linux, những điều sau đây sẽ hoạt động:

sửa đổi tệp javac.sublime-build thành:


#!/bin/sh

classesDir="/Users/$USER/Desktop/java/classes/"
codeDir="/Users/$USER/Desktop/java/code/"
[ -f "$classesDir/$1.class" ] && rm $classesDir/$1.class
for file in $1.java
do
echo "Compiling $file........"
javac -d $classesDir $codeDir/$file
done
if [ -f "$classesDir/$1.class" ]
then
echo "-----------OUTPUT-----------"
java -cp $classesDir $1
else
echo " "
fi

Ở đây, tôi đã tạo một thư mục có tên "java" trên Desktop và các thư mục con "các lớp" và "mã" để duy trì các tệp .class và .java tương ứng, bạn có thể sửa đổi theo cách của riêng mình.


Liên kết bị hỏng, nó đã nói gì?
ninMonkey

2

Như chi tiết ở đây:

http://sublimetext.userecho.com/topic/90531-default-java-build-system-update/

Các bước tôi đã thực hiện để khắc phục điều này

  1. Bấm Bắt đầu

  2. Nhấp chuột phải vào 'Máy tính'

2.5 Nhấp vào Thuộc tính.

  1. Ở phía bên trái, chọn 'Cài đặt Hệ thống Nâng cao'

  2. Ở gần cuối, nhấp vào 'Biến môi trường'

  3. Cuộn xuống 'Biến hệ thống' cho đến khi bạn tìm thấy 'PATH' - nhấp vào chỉnh sửa với tùy chọn này được chọn.

  4. Thêm đường dẫn đến thư mục bin Java của bạn. Của tôi cuối cùng trông như thế này:

    MÃ: CHỌN TẤT CẢ

    ; C: \ Program Files \ Java \ jdk1.7.0_03 \ bin \


điều này không hoạt động, tôi nhấp vào bắt đầu, nhấp chuột phải vào Máy tính và tôi không nhận được bất kỳ thứ gì, chỉ là một menu duy nhất, không phải gấp đôi ... và tôi đã làm theo các hướng dẫn của thenewbostons, vì vậy tôi đã thực hiện công cụ PATH
điện thoại vào

2

Đối với Sublime Text 3
trong "C: \ Program Files \ Sublime Text 3 \ Packages", bạn nhận được java.sublime-package, hãy sao chép nó vào một thư mục khác, thay đổi phần mở rộng của nó từ .sublime-package thành zip và giải nén nó, bạn nhận được JavaC.sublime-build tệp cho các Sửa đổi của bạn như trên.
sau khi tất cả các sửa đổi giải nén thư mục java một lần nữa chuyển đổi thành .zip và thay đổi phần mở rộng của nó .zip thành .sublime-package. sau đó sao chép và dán tệp này vào C: \ Program Files \ Sublime Text 3 \ Packages.
Điều này sẽ giúp bạn!

(ngay cả khi bạn lấy tệp của tôi từ liên kết http://upfile.mobi/363820 hoặc http://www.4shared.com/file/73SkzY-Kba/Java.html Tôi sử dụng để chạy mã java. Tôi sử dụng thủ thuật của "Wesley Baugh "vì vậy bạn cần sao chép tệp runJava.bat vào thư mục C: \ Program Files (x86) \ Java \ jdk1.8.0 \ bin như anh ấy nói. và sao chép tệp được liên kết ở trên vào C: \ Program Files \ Sublime Text 3 \ Packages )


2

Bạn có thể biên dịch và chạy mã của mình hoàn toàn bằng ST và nó rất nhanh chóng / đơn giản. Có một gói ST gần đây có tên là Javatar có thể thực hiện điều này. https://javatar.readthedocs.org


2

Đây là mã để biên dịch và chạy java trong sublime text 3

"shell_cmd": "javac -d. $ file && java $ {file_base_name}. $ {file_base_name}", "shell": true


1

Tôi đã theo dõi một bài đăng trong chủ đề này và nó hoạt động hoàn hảo:

Tạo tệp dơi với phần sau và lưu nó ở bất kỳ đâu trong PATH của bạn. Tôi đề xuất C: \ Program Files \ Java \ jdk * \ bin \ để giữ mọi thứ lại với nhau.

@ECHO OFF
cd %~dp1
javac %~nx1
java %~n1

sau đó chỉnh sửa C: \ Users \ your_user_name \ AppData \ Roaming \ Sublime Text 2 \ Packages \ Java \ JavaC.sublime-build, nội dung sẽ là

{
   "cmd": ["javac", "$file"],
   "file_regex": "^(...*?):([0-9]*):?([0-9]*)",
   "selector": "source.java"
}

thay thế "javac" bằng tên tệp bat của bạn (ví dụ: javacexec.bat) và lưu nó.


1

Bằng cách làm theo các bước dưới đây, bạn sẽ có 2 Hệ thống xây dựng trong siêu phàm - "JavaC" và "JavaC_Input".

"JavaC" sẽ cho phép bạn chạy mã không yêu cầu người dùng nhập và hiển thị kết quả trong trình mô phỏng đầu cuối của sublime, rất tiện lợi và đẹp mắt. "JavaC_Input" cho phép bạn chạy mã yêu cầu người dùng nhập trong một cửa sổ đầu cuối riêng biệt, nó có thể chấp nhận đầu vào của người dùng. Bạn cũng có thể chạy mã không yêu cầu đầu vào trong hệ thống xây dựng này, vì vậy nếu bạn không bận tâm đến cửa sổ bật lên, bạn có thể gắn bó với hệ thống xây dựng này và không chuyển đổi. Bạn chuyển đổi giữa các hệ thống xây dựng từ Công cụ -> Hệ thống xây dựng. Và bạn biên dịch và chạy mã bằng ctrl + b.

Dưới đây là các bước để đạt được điều này:

(lưu ý: Đảm bảo rằng bạn đã có thiết lập cơ bản của hệ thống java: cài đặt JDK và thiết lập CLASSPATH và PATH chính xác, tôi sẽ không nói rõ về điều này)

Thiết lập hệ thống xây dựng "JavaC"

1, Tạo một tệp dơi với mã sau và lưu nó trong C: \ Program Files \ Java \ jdk * \ bin \ để giữ mọi thứ lại với nhau. Đặt tên tệp là "javacexec.bat".

@ECHO OFF
cd %~dp1
javac %~nx1
java %~n1

2, Sau đó chỉnh sửa C: \ Users \ your_user_name \ AppData \ Roaming \ Sublime Text 2 \ Packages \ Java \ JavaC.sublime-build (nếu không có, hãy tạo một cái), nội dung sẽ là

{
   "cmd": ["javacexec.bat", "$file"],
   "file_regex": "^(...*?):([0-9]*):?([0-9]*)",
   "selector": "source.java"
}

Thiết lập hệ thống xây dựng "JavaC_Input"

1, Cài đặt Cygwin [ http://www.cygwin.com/]

2, Đi tới C: \ Users \ your_user_name \ AppData \ Roaming \ Sublime Text 2 \ Packages \ Java \, sau đó tạo một tệp có tên "JavaC_Input.sublime-build" với nội dung sau

{
"cmd": ["javacexec_input.bat", "$file"],
"file_regex": "^(...*?):([0-9]*):?([0-9]*)",
"selector": "source.java"
}

3, Tạo tệp dơi với mã sau và lưu nó trong C: \ Program Files \ Java \ jdk * \ bin \ để giữ mọi thứ lại với nhau. Đặt tên tệp là "javacexec_input.bat".

@echo off
javac  -Xlint:unchecked %~n1.java 
start cmd /k java -ea %~n1

1
{
"shell_cmd": "javac -Xlint  \"${file}\"",
"file_regex": "^(...*?):([0-9]*):?([0-9]*)",
"working_dir": "${file_path}",
"selector": "source.java",

"variants": [

    { "shell_cmd":"javac -Xlint  \"${file}\" && java $file_base_name  < input.txt > output.txt",
      "name": "Run"
    }
   ]
}

lưu bản dựng siêu phàm này và chạy chương trình bằng ctrl + shift + B với biến thể run. Nếu không chạy biến thể, nó sẽ chỉ tạo tệp .class nhưng sẽ không chạy nó.

Bản dựng này sẽ đọc đầu vào từ input.txt và in đầu ra trong output.txt.

Lưu ý : cả input.txt và output.txt phải có trong cùng một thư mục làm việc với tệp .java của bạn.


0

Đảm bảo bạn cài đặt JDK / JRE trước.

Nếu bạn là người dùng mac, hãy làm theo các bước sau:

mở thiết bị đầu cuối đi đến từ điển gốc của bạn bằng cách gõ

cd ..

nhiều lần. sử dụng

ls

để xem nếu bạn đã đạt đến gốc

bạn sẽ thấy thư mục Thư viện Bây giờ hãy làm theo đường dẫn này Thư viện / Java / JVM / bin Sau khi vào bin, bạn có thể thấy tệp JavaC

Bây giờ bạn cần lấy đường dẫn của thư mục này chỉ cần viết lệnh này

pwd

Sao chép, dán nó vào tệp JavaC siêu phàm của bạn và xây dựng mã java trong siêu phàm bằng cmd + b.


0

Alex Yao's Answer là giải pháp đơn giản nhất, nếu bạn chỉ muốn xây dựng và chạy chương trình Java với bất kỳ đầu vào nào từ bảng điều khiển, hãy sử dụng giải pháp do Alex Yao cung cấp . Tuy nhiên, nếu bạn muốn lấy đầu vào từ bảng điều khiển thì hãy tham khảo liên kết sau

Đầu vào bảng điều khiển Java trong Sublime Text 2?


0

Đây là của tôi bằng cách sử dụng sublime text 3. Tôi cần tùy chọn để mở dấu nhắc lệnh trong một cửa sổ mới. Trình biên dịch Java được sử dụng với -Xlinttùy chọn để bật thông báo đầy đủ cho các cảnh báo trong Java.

Tôi đã lưu tệp trong thư mục gói người dùng của mình dưới dạng Java (Bản dựng) .sublime-build

{
     "shell_cmd": "javac -Xlint \"${file}\"",
     "file_regex": "^(...*?):([0-9]*):?([0-9]*)",
     "working_dir": "${file_path}",
     "selector": "source.java",
     "variants":
     [
          {
               "name": "Run",
                "shell_cmd": "java \"${file_base_name}\"",
          },
          {
               "name": "Run (External CMD Window)",
               "shell_cmd": "start cmd /k java \"${file_base_name}\""
          }
     ]
}

0

Hệ thống Xây dựng JavaC hoạt động giống như một sự quyến rũ nhưng không thành công khi bạn muốn nhập đầu vào từ stdin trong Sublime-text. Nhưng bạn có thể chỉnh sửa hệ thống xây dựng để làm cho nó nhận đầu vào từ người dùng. Đây là bản dựng JavaC đã sửa đổi mà tôi đang sử dụng trên Ubuntu 18.04 LTS. Bạn có thể chỉnh sửa Hệ thống xây dựng hoặc tạo một hệ thống xây dựng mới.

Để tạo một hệ thống xây dựng mới.

  • Đi tới Công cụ >> Hệ thống xây dựng >> Hệ thống xây dựng mới .
  • Sao chép Dán mã dưới đây và Tệp >> Lưu .

    {

    "shell_cmd": "javac \"$file\"",
    "file_regex": "^(...*?):([0-9]*):?([0-9]*)",
    "selector": "source.java",
    "variants": 
    [
        {
            "shell_cmd":"bash -c \"javac $file\" && gnome-terminal -- bash -c \"java $file_base_name ;read\"", 
            "name": "Run"
        }
    
    ]    
    

    }

Để chỉnh sửa tệp bản dựng Java C hiện có


0

Đây là cách tôi đã thực hiện với các bước đơn giản sau:

Thiết lập một hệ thống xây dựng mới:

  1. Công cụ> Hệ thống xây dựng> Hệ thống xây dựng mới

  2. Thay thế mã mặc định bằng mã sau:

    {
       "cmd": ["javac","$file_name","&&","java","$file_base_name"], 
       "path": "C:\\Program Files\\Java\\jdk1.7.0_25\\bin\\", 
       "shell": true
    }
    // locate the path of your jdk installation and replace it with 'path' 
    
  3. Lưu tệp bằng cách đặt tên cho nó (tôi đặt tên là "Java")

Kích hoạt hệ thống xây dựng:

  1. Công cụ> Hệ thống xây dựng> Java (tên của tệp bạn đã lưu nó với)
  2. Bây giờ hãy chạy chương trình của bạn bằng Ctrl + B
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.