কমান্ডলাইনে ক্লাসপথে জারগুলি সহ (জাভাক বা অ্যাপ)


137

এই প্রোগ্রাম চালানোর চেষ্টা করছি। আমি মনে করি যে ওয়েব পরিষেবা স্টাফ সেটআপ করার জন্য আমার অ্যাপ্লিকেশন চালানো দরকার। (জাভ্যাক ব্যবহার করার পরেও আমার একই সমস্যা হচ্ছে)। আমার মনে হয় আমি যা পাচ্ছি তা হ'ল সংকলন ত্রুটি। (নীচে দেখানো হয়েছে)

আমি মনে করি আমাকে যা করতে হবে তা হল আমার বর্গের পথে এই জারটি অন্তর্ভুক্ত করা: jsr181-api.jar (উত্স) । এটি করার কোনও সহজ অস্থায়ী উপায় আছে (সোলারিসে)? আমি এটিকে আমার বাশ_সিআরসি ফাইলটিতে যুক্ত করতে চাই না (এটি চিরতরে রয়েছে)। আমি আরও জানি যে এটি একটি প্রকাশিত পাঠ্য ফাইল ব্যবহার করে করার কিছু উপায় আছে তবে এটি জটিল বলে মনে হয়েছিল তাই আমি এখনও এটি সন্ধান করিনি। আমি কি এই জাতীয় কিছু করতে পারি:

javac HelloImp <listOfJars>

অথবা

ant HelloImp <listOfJars>

কোড:

package server;

import javax.jws.WebService;

@WebService
public class HelloImpl {

  /**
   * @param name
   * @return Say hello to the person.
   */
   public String sayHello(String name) {
     return "Hello, " + name + "!";
   }
}

ত্রুটিগুলি সংকলন করুন:

HelloImpl.java:3: package javax.jws does not exist
import javax.jws.WebService;
                 ^
HelloImpl.java:5: cannot find symbol
symbol: class WebService
@WebService
 ^
2 errors

আপডেট: শীতল যা জড়িয়ে আছে তবে এটি এখনও কার্যকরভাবে কাজ করছে না। জিনিসগুলি সুন্দর এবং সংগঠিত রাখতে আমি একটি নতুন প্রশ্ন তৈরি করেছি :


পার্শ্ব নোট হিসাবে, কিছু জার কেবল সংকলনের সময় প্রয়োজন (যেমন javac) তবে রানটাইমের সময় নয় (যেমন java)। উদাহরণস্বরূপ, lombokজার।
ট্রুথহোল্ডার

উত্তর:


170

নিম্নলিখিত চেষ্টা করুন:

java -cp jar1:jar2:jar3:dir1:. HelloWorld

ডিফল্ট ক্লাসপাথ (যদি না কোনও ক্লাসস্প্যাথ এনভায়রনমেন্ট ভেরিয়েবল থাকে) বর্তমান ডিরেক্টরি তাই আপনি যদি এটির নতুন সংজ্ঞা দেন তবে নিশ্চিত হয়ে নিন যে আমি ক্লাসপথে বর্তমান ডিরেক্টরি (।) যুক্ত করেছি।


github.com/SpotterRF/json-example/tree/master/java/jackson এর মেকফাইলে একটি ভাল উদাহরণ রয়েছে
coolaj86

@ কুলএজে 86 লিঙ্কটি মারা গেছে বলে মনে হচ্ছে
জ্যানিস পিসেনিকস

30
আমি সবচেয়ে ভাল উপায় খুঁজে পেয়েছি ব্যবহার করা হয় java -cp *:. HelloWorld। এইভাবে আমার ক্লাসপথে সমস্ত জারগুলি সর্বদা অন্তর্ভুক্ত থাকে।
এনএন

31

উইন্ডোতে:

java -cp C:/.../jardir1/*;C:/.../jardir2/* class_with_main_method

নিশ্চিত করুন যে মূল ফাংশন সহ বর্গটি অন্তর্ভুক্ত জারেগুলির মধ্যে একটিতে রয়েছে


20

উইন্ডোজ ব্যবহারকারীদের জন্য নোট, জারগুলি পৃথক করা উচিত ;এবং না করে :

উদাহরণ স্বরূপ: javac -cp external_libs\lib1.jar;other\lib2.jar;


14

ব্যবহার করুন -cpঅথবা -classpathস্যুইচ করুন।

$ java -help  
Usage: java [-options] class [args...]  
           (to execute a class)  
   or  java [-options] -jar jarfile [args...]  
           (to execute a jar file)  

where options include:  
...  
    -cp <class search path of directories and zip/jar files>  
    -classpath <class search path of directories and zip/jar files>  
                  A ; separated list of directories, JAR archives,  
                  and ZIP archives to search for class files.  

(নোট করুন যে ক্লাসপথে আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা এন্ট্রি ব্যবহার করা হত, আমার উইন্ডোজ মেশিনে এটি ;সাধারণত * নিক্সে থাকে :))


3

ব্যবহার:

apt HelloImpl.java -classpath /sac/tools/thirdparty/jaxws-ri/jaxws-ri-2.1.4/lib/jsr181-api.jar:.

কাজ করে তবে এটি আমাকে আরও একটি ত্রুটি দেয়, দেখুন নতুন প্রশ্ন


2

জাভাক হ্যালোওয়ার্ল্ড.জভা-ক্লাসপাথ। / জাভ্যাক্স.জার, ধরে নিচ্ছেন জাভাক্স বর্তমান ফোল্ডারে রয়েছে এবং সঙ্কলনের লক্ষ্যটি হ্যালো "ওয়ার্ল্ড.জভা" এবং আপনি একটি মূল পদ্ধতি ছাড়াই সংকলন করতে পারেন

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