জাভাক ত্রুটি: টীকাগুলি প্রসেসিং স্পষ্টভাবে অনুরোধ করা হলে শ্রেণির নামগুলি কেবল গ্রহণ করা হয়


112

আমি আমার জাভা প্রোগ্রামটি সংকলন করার সময় এই ত্রুটিটি পেয়েছি:

error: Class names, 'EnumDevices', are only accepted if annotation 
processing is explicitly requested
1 error

এখানে জাভা কোড (আমি এটি উবুন্টুতে চালাচ্ছি)।

import jcuda.CUDA;    
import jcuda.driver.CUdevprop;    
import jcuda.driver.types.CUdevice;

public class EnumDevices {

  public static void main(String args[]) {
     CUDA cuda = new CUDA(true);    
        int count = cuda.getDeviceCount();

        System.out.println("Total number of devices: " + count);

        for (int i = 0; i < count; i++) {

          CUdevice dev = cuda.getDevice(i);
          String name = cuda.getDeviceName(dev);
          System.out.println("Name: " + name);
          int version[] = cuda.getDeviceComputeCapability(dev);

          System.out.println("Version: " + 
              String.format("%d.%d", version[0], version[1]));
          CUdevprop prop = cuda.getDeviceProperties(dev);
          System.out.println("Clock rate: " + prop.clockRate + " MHz");
          System.out.println("Threads per block: " + prop.maxThreadsPerBlock);
        }
    }
}

জাভাক আদেশটি এখানে:

javac -cp /home/manish.yadav/Desktop/JCuda-All-0.3.2-bin-linux-x86_64 EnumDevices

আমি কীভাবে এই প্রোগ্রামটি সংকলন করব?

উত্তর:


132

কমপক্ষে আপনাকে .javaএই লাইনের ফাইলের নামের সাথে এক্সটেনশন যুক্ত করতে হবে:

javac -cp /home/manish.yadav/Desktop/JCuda-All-0.3.2-bin-linux-x86_64 EnumDevices

সরকারী প্রশ্ন থেকে :

ক্লাসের নামগুলি, 'হ্যালো ওয়ার্ল্ড অ্যাপ' কেবল তখনই স্বীকৃতিপ্রাপ্ত হয় যদি টিকা প্রক্রিয়াকরণ স্পষ্টভাবে অনুরোধ করা হয়

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

এছাড়াও, আপনার দ্বিতীয় জাভ্যাক-উদাহরণে, (যা আপনি আসলে অন্তর্ভুক্ত করেছেন .java) আপনাকে সংকলনের জন্য প্রয়োজনীয় সমস্ত প্রয়োজনীয় জাজার ফাইল অন্তর্ভুক্ত করতে হবে


1
এটিও, তবে এখনও আমার মনে হয় সেই বিশেষ ত্রুটিটি ঘটেনি। এই লাইনের সাথে একটি "ফাইল পাওয়া যায় নি" বা কিছু পাওয়া উচিত ছিল।
21:25

আমি রাজি হবে। বিশেষত যেহেতু এটি করা সহজ ভুল (যেহেতু .classপ্রবর্তন করার সময় বাদ দেওয়া উচিত java)।
আইয়ুব

"ক্লাসের নাম, 'হ্যালো ওয়ার্ল্ড অ্যাপ' কেবল তখনই টীকাগুলি প্রক্রিয়াকরণের জন্য সুস্পষ্টভাবে অনুরোধ করা হলে তা গ্রহণ করা হয়"। ফাইলটি বলার কী নির্বোধ উপায় খুঁজে পাওয়া যায় নি। বা ত্রুটি বার্তাটি উল্লেখ করার কথা কি? আমি কেবল এই ঠিক করতে পারি তবে ত্রুটি বার্তাটি কেন এরকমভাবে উচ্চারণ করা হয় তা নয়।
মাস্টারেক্সিলো

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

19

আমি এতে স্ট্যাম্পড হয়ে পড়েছিলাম কারণ আমি। জাভা এক্সটেনশন অন্তর্ভুক্ত ছিলাম ... তখন আমি রাজধানী জে লক্ষ্য করেছি J

এটি "টিকা রোধ প্রক্রিয়াজাতকরণ" ত্রুটিও ঘটায়:

javac myclass.Java 

পরিবর্তে, এটি হওয়া উচিত:

javac myclass.java 

6

প্রোগ্রামটি সংকলন করতে জাভাক ClassName.java ব্যবহার করে , তারপরে সংকলিত কোডটি কার্যকর করতে জাভা ক্লাসনেম ব্যবহার করুন । আপনি জাভ্যাকটি কেবলমাত্র ক্লাসনামের সাথে মিশ্রিত করতে পারবেন না (জাভা এক্সটেনশন ছাড়াই)।


4

নিম্নলিখিতটির এক বা একাধিক কারণে "শ্রেণীর নামগুলি কেবল তখনই টীকাগুলি প্রক্রিয়াকরণে স্পষ্টভাবে অনুরোধ করা হয়" ত্রুটিটি গৃহীত হয়:

  1. সংকলনের সময় আপনার জাভা ফাইলের জন্য। জাভা এক্সটেনশন ব্যবহার করবেন না।
  2. সংকলনের সময়। জাভা এক্সটেনশনের (যেমন। জাভা) অনুপযুক্ত মূলধন।
  3. সংকলনের সময় জাভা এক্সটেনশনে অন্য কোনও টাইপও।
  4. একই সময়ে সংকলন এবং চলমান চলাকালীন দুটি কমান্ডের (যেমন জাভাক হ্যাঙ্গম্যান.জভা জাভা হ্যাঙ্গম্যান) সাথে সম্মতি জানাতে'&& 'ব্যবহার করতে ভুলে যাওয়া। এটি নির্ধারণ করতে আমার 30 মিনিটের মতো সময় লেগেছে, যা আমি সংকলনটি চালিয়ে এবং প্রোগ্রামটি পৃথকভাবে চালিয়ে লক্ষ্য করেছি, কোনটি অবশ্যই পুরোপুরি ঠিকঠাক কাজ করেছে।

এটি এই ত্রুটির কারণগুলির সম্পূর্ণ তালিকা নাও হতে পারে তবে এই কারণগুলি যা আমি এখনও অবগত।


3
chandan@cmaster:~/More$ javac New.java
chandan@cmaster:~/More$ javac New
error: Class names, 'New', are only accepted if annotation processing is explicitly requested
1 error

তাই আপনি যদি ভুল করে আবার কম্পাইল করার পরে javacপ্রোগ্রাম চালানোর জন্য ব্যবহার করেন ।


3

আমি শিখেছি যে আপনি জাভা নামের ফোল্ডারে উত্স ফাইলটি সংরক্ষণ করেও এই ত্রুটিটি পেতে পারেন


2

আমি মনে করি এটি ভুল সংকলনের কারণেও হয়েছে ..

তাই লিনাক্স (উবুন্টু) এর জন্য .....

জাভ্যাক ফাইল.জভা

জাভা ফাইল


3
উত্তরগুলি প্রথমে কেন সমস্যাটি সৃষ্টি হচ্ছে তা উল্লেখ করে এবং তারপরে সমাধানটি নির্দেশ করতে হবে (যদি একটি উপলব্ধ থাকে)
কোডার

0

আপনি কীভাবে উবুন্টু টার্মিনালে এই ক্রিপ্টিক ত্রুটিটি পুনরুত্পাদন করতে পারেন:

এটি মেইন.জাভা নামে একটি ফাইলে রাখুন:

public Main{
    public static void main(String[] args){
        System.out.println("ok");
    }
}

তারপরে এটি সংকলন করুন:

user@defiant /home/user $ javac Main
error: Class names, 'Main', are only accepted if 
annotation processing is explicitly requested
1 error

এর কারণ আপনি শেষটি নির্দিষ্ট .javaকরেন নিMain

এটি এর মতো করুন এবং এটি কার্যকর:

user@defiant /home/user $ javac Main.java
user@defiant /home/user $

এখনই আপনার কপালে চড় মারুন এবং ত্রুটি বার্তাটি এত রহস্যজনক বলে গ্র্যাম্ব করুন।


2
আপনি হয় নি: ডি! আপনি উভয় উদাহরণে। জাভা ছাড়া মাইন লিখেছিলেন!
freerunner

0

সম্ভবত আপনি পদ্ধতির নামের পরিবর্তে ফাইলের নামটি সংকলন করতে পারেন .... একবার পরীক্ষা করে দেখুন আমিও একই ভুলটি করেছিলাম তবে আমি তা দ্রুত সংশোধন করেছি ..... # শুভ কোডিং


0

https://www.oracle.com/technetwork/java/javase/downloads/index.html থেকে প্রথম জেডিকে ডাউনলোড করুন । তারপরে অনুসন্ধানের লেখায় সিস্টেম এনভায়রনমেন্ট ভেরিয়েবলগুলি সম্পাদনা করুন খোলা উইন্ডোতে আমি নীচের দিকে নীচে চাপলাম পরিবেশনীয় পরিবর্তনশীল তারপরে সিস্টেমের ভেরিয়েবলগুলিতে চিত্রের বিবরণটি এখানে প্রবেশ করান নীচে নতুন ক্ষেত্রের নতুন ভেরিয়েবলগুলিতে "পথ" লিখুন ক্ষেত্রের নতুন মানে ফোল্ডারে বিনে ডিরেক্টরি লিখুন jdk লাইক " সি: \ প্রোগ্রাম ফাইলস \ জাভা \ jdk1.8.0_191 \ বিন "তবে আমার ওএসে কেবল এই" সি: \ প্রোগ্রাম ফাইলস \ জাভা \ jdk1.8.0_191 \ বিন \ জাভ্যাক.এক্সই " চিত্রের বিবরণ প্রবেশ করুন ঠিক আছে 3 বার টিপুন

সিএমডি শুরু করুন আমি নীচে উইন্ডোজ + আর টিপুন। তারপরে সেমিডি লিখুন। সেন্টিমিডে "সিডি লিখুন (কোড সহ আপনার ডিরেক্টরি)" দেখতে সি: \ ব্যবহারকারী \ ব্যবহারকারী \ আইডিয়াপ্রজেক্টস \ অ্যাপ্লিকেশন rc এসসিআর এর মত দেখাচ্ছে। তারপরে "জাভ্যাক (আপনার প্রোগ্রামের জন্য আপনার মূল শ্রেণীর নাম) লিখুন j জাভা" দেখতে ব্লেবলা.জভা এবং জাভ্যাক বাইট কোড তৈরি করুন (আপনার মূল শ্রেণীর নাম) your আপনার ডিরেক্টরিতে ক্লাস। সর্বশেষ লিখুন সেমিডিতে "জাভা (আপনার মূল শ্রেণীর নাম)" এবং আমার প্রোগ্রামটির কাজ শুরু করুন


0

ত্রুটি: টীকাগুলি প্রসেসিংয়ের স্পষ্টভাবে অনুরোধ করা থাকলে শ্রেণীর নাম গ্রহণ করা হয়

এই ত্রুটিটি এড়াতে আপনার। জাভা এক্সটেনশন সহ জাভ্যাক কমান্ডটি ব্যবহার করা উচিত।

জাভাক অবতরণকারী অর্ডার.জভা <- এই কাজটি পুরোপুরি।


0

আপনি যদি একই লাইনে একাধিক ফাইলগুলি সংকলন করেন তবে নিশ্চিত করুন যে আপনি জাভ্যাকটি কেবল একবার ব্যবহার করেছেন এবং প্রতিটি শ্রেণীর ফাইলের জন্য নয়।

ত্রুটিপূর্ণ: এখানে চিত্র বর্ণনা লিখুন

সঠিক: এখানে চিত্র বর্ণনা লিখুন

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