小编raz*_*eLe的帖子

无法直接用"java"命令运行java prorgram

我用java编译了java代码

razrlele@OVO:~/workspace/javastudy/src$ javac Helloworld.java 
Run Code Online (Sandbox Code Playgroud)

事实证明没有错误或警告

然后我运行程序

razrlele@OVO:~/workspace/javastudy/src$ java Helloworld
Run Code Online (Sandbox Code Playgroud)

它返回这个

Error: Could not find or load main class Helloworld
Run Code Online (Sandbox Code Playgroud)

我必须像这样输入

razrlele@OVO:~/workspace/javastudy/src$ java -cp ./ Helloworld
Run Code Online (Sandbox Code Playgroud)

这样程序就会正确运行.

我很困惑为什么"java"命令不起作用.

这是我的/ etc/environment

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/jvm/jdk1.8.0_11"                    
CLASSPATH=/usr/lib/jvm/jdk1.8.0_11                                                                                      
JAVA_HOME=/usr/lib/jvm/jdk1.8.0_11                                                                                      
Run Code Online (Sandbox Code Playgroud)

linux ubuntu-14.04

4
推荐指数
1
解决办法
1142
查看次数

无法使用自定义比较函数找到 std::map 的键

#include <cstdio>

#include <iostream>
#include <vector>
#include <map>
using namespace std;

struct mycmp {
      bool operator()(const int &a, const int  &b) const {
          return abs(a) <= abs(b);
      }
};

int main(){
  map<int, int, mycmp> M1;
  map<int, int> M2;
  for(int i = 0; i < 5; i++) {
    M1[i]++;
    M2[i]++;
  }
  cout << (int)(M1.find(4) == M1.end()) << endl;
  cout << (int)(M2.find(4) == M2.end()) << endl;
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

上面代码的输出是

1
0
Run Code Online (Sandbox Code Playgroud)

这意味着无法找到M1的密钥4,而在M2中可以找到4。但是当我使用迭代器来迭代 M1 时,一切看起来都很好

for ( auto &x: M1) cout << …
Run Code Online (Sandbox Code Playgroud)

c++ std

1
推荐指数
1
解决办法
466
查看次数

在哪里定义'err_quit'

我正在研究有关生产者 - 消费者问题的程序(来自我的OS类),当我编译它时,我遇到了这个oroblem:

razrlele@razrlele-ThinkPad:~/work/os$ gcc producerconsumer.c -lpthread -o producerconsumer
/tmp/ccyFGuJk.o: In function `main':
producerconsumer.c:(.text+0xb8): undefined reference to `err_quit'
producerconsumer.c:(.text+0xfc): undefined reference to `err_quit'
collect2: error: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

我想知道err_quit的定义在哪里?

我的操作系统是Ubuntu-gnome 14.04,这是我的整个程序代码:

  1 #include <stdio.h>
  2 #include <sys/types.h>
  3 #include <semaphore.h>
  4 #include <pthread.h>
  5 #include <stdlib.h>
  6 
  7 void *producer_handler(void *ptr);
  8 void *consumer_handler(void *ptr);
  9 
 10 sem_t mutex, blank, fill;
 11 int *buffer;
 12 int in = 0, out = 0, buffer_size = 10;
 13 
 14 int …
Run Code Online (Sandbox Code Playgroud)

c linux operating-system

0
推荐指数
1
解决办法
4984
查看次数

标签 统计

linux ×2

c ×1

c++ ×1

operating-system ×1

std ×1

ubuntu-14.04 ×1