小编Raf*_*mal的帖子

Eclipse:在java classpath中添加文件夹中的所有jar

有没有办法使用Eclipse将所有jar文件包含在类路径的目录中?

可以通过以下命令使用命令行来完成:

java -cp "lib/*" my.package.Main
Run Code Online (Sandbox Code Playgroud)

但是如何从日食中完成呢?

编辑:.classpath在我的项目文件中编辑了条目:

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" path="src"/> 
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
    <classpathentry kind="lib" path="F:/Program Files/Java/log4j/apache-log4j-2.0-alpha2-bin/*"/>
    <classpathentry kind="output" path="classes"/>
</classpath>
Run Code Online (Sandbox Code Playgroud)

F:/Program Files/Java/log4j/apache-log4j-2.0-alpha2-bin/是文件所在的jar文件夹.但它没有用.

更新:似乎没有直接的方法来做到这一点.并且可能是最简单的解决方案是创建用户库.

java eclipse classpath

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

C和C++样式文件IO之间的性能差异

我一直听说C++文件I/O操作比C风格I/O慢得多.但我没有找到任何实际的参考文件,因为它们实际上有多慢,所以我决定在我的机器上测试它(Ubuntu 12.04,GCC 4.6.3,ext4分区格式).

首先,我在磁盘中写了一个~900MB的文件.

C++(ofstream):163s

ofstream file("test.txt");

for(register int i = 0; i < 100000000; i++) 
    file << i << endl;
Run Code Online (Sandbox Code Playgroud)

C(fprintf):12s

FILE *fp = fopen("test.txt", "w");

for(register int i = 0; i < 100000000; i++) 
    fprintf(fp, "%d\n", i);
Run Code Online (Sandbox Code Playgroud)

我期待这样的输出,它表明在C++ C中写入文件要慢得多.然后我使用C和C++ I/O读取相同的文件.让我感到惊讶的是,从文件中读取时,性能几乎没有差异.

C++(ifstream):12s

int n;
ifstream file("test.txt");

for(register int i = 0; i < 100000000; i++) 
    file >> n;
Run Code Online (Sandbox Code Playgroud)

C(fscanf):12s

FILE *fp = fopen("test.txt", "r");

for(register int i = 0; i < …
Run Code Online (Sandbox Code Playgroud)

c c++ file-io stream

24
推荐指数
2
解决办法
8766
查看次数

为什么Java中没有本地静态变量?

在C/C++中,我们使用静态局部变量来维护方法的状态.但为什么Java不支持它?

是的,我可以为此目的使用静态字段.但创建一个只保留一个方法状态的字段是不是有点奇怪?

java oop static

21
推荐指数
2
解决办法
9831
查看次数

在Linux终端中执行C程序

我已经从我的Ububtu 10.10终端编译了一个程序

gcc file_name.c -o new_file

命令.它编译成功创建了一个名为new_file的可执行文件.但是当我试图通过这个命令执行它时

./new_file
Run Code Online (Sandbox Code Playgroud)

它表示对new_file的权限被拒绝.我已经检查了该文件的权限属性,发现我有权读取和写入它(我是该系统的唯一用户).你能帮我解决一下这个问题吗?

c linux terminal

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

C++ sqrt函数精度为正方形

设,x是一个整数和y = x * x.

那保证sqrt(y) == x吗?

例如,我可以确定sqrt(25)sqrt(25.0)将返回5.0,不是5.00000000034.999999998

c++ floating-point-precision

7
推荐指数
2
解决办法
2521
查看次数

Set.pop()不是随机的吗?

python文档中,"set.pop()从s中删除并返回一个任意元素".在生成一些随机数据来测试程序时,我注意到这个pop()函数的奇怪行为.这是我的代码(python 2.7.3):

testCases = 10
numberRange = 500

poppedValues = []
greaterPercentages = []

for i in range (testCases):
    s = Set()

    """ inserting 100 random values in the set, in the range [0, numberRange) """
    for j in range (100):
        s.add(random.randrange(numberRange)) 

    poppedValue = s.pop()
    greaterCount = 0

    """ counting how many numbers in the set are smaller then the popped value """
    for number in s:
        if poppedValue > number:
            greaterCount += 1

    poppedValues.append(poppedValue)
    greaterPercentages.append(float(greaterCount) / len(s) …
Run Code Online (Sandbox Code Playgroud)

python random

6
推荐指数
2
解决办法
4390
查看次数

命令行参数计数

这是一个简单的C程序,它打印传递给它的命令行参数的数量:

#include <stdio.h>

int main(int argc, char *argv[])
{
    printf("%d\n", argc);
}
Run Code Online (Sandbox Code Playgroud)

当我给出输入

file_name *
Run Code Online (Sandbox Code Playgroud)

它在我的电脑(操作系统Windows 7)中打印623而不是2.但它在其他情况下提供了正确的输出.是*命令行参数的保留字符?请注意,此程序为以下输入提供正确的输出:

file_name *Rafi
Run Code Online (Sandbox Code Playgroud)

输出= 2

c command-line-arguments

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

查找序列中每个元素的前导

给定一个序列a[1], a[2], a[3] .... a[n],我必须为每个a[i]元素找到一个元素a[j],其中a[j]序列中的第一个元素就是a[i - 1], a[i - 2], a[i - 3]....这样a[j] < a[i].

换句话说,我必须找到a[j]哪里a[j] < a[i]1<=j<i.但如果有多个这样的元素,我必须选择最接近的元素a[i].

例如,按以下顺序:

2 6 5 8

我必须为6和5输出2,为8输出5.

我知道这可以很容易地完成O(n^2),但有没有更有效的方法呢?

language-agnostic algorithm

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

将 xargs 的输出重定向到文件

我想删除目录中每个文件的第一行,并通过在每个文件名的末尾附加一个“.tmp”来保存相应的输出。例如,如果有一个文件名input.txt,内容如下:

line 1
line 2
Run Code Online (Sandbox Code Playgroud)

我想在同一个目录中创建一个名称input.txt.tmp为以下内容的文件

line 2
Run Code Online (Sandbox Code Playgroud)

我正在尝试这个命令:

find . -type f | xargs -I '{}' tail -n +2 '{}' > '{}'.tmp
Run Code Online (Sandbox Code Playgroud)

问题是,它不是将输出写入带有.tmp后缀的单独文件,而是仅创建一个名为{}.tmp. 我知道这是因为输出重定向是在xargs完全完成后完成的。但是有什么方法可以告诉xargs输出重定向是它的参数的一部分吗?

bash find xargs

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

android - getIntent().getStringExtra()返回null

我已在我的应用程序中实现onPause()onResume()方法如下:

protected void onPause() {
        super.onPause();

        String receiver = phoneNoField.getText().toString();
        String message = messageBody.getText().toString();
        getIntent().putExtra(MESSAGE_RECEIVER, receiver);
        getIntent().putExtra(MESSAGE_BODY, message);

        Log.d(TAG, receiver + " " + message);       
    }


protected void onResume() {
        super.onResume();

        String receiver = getIntent().getStringExtra(MESSAGE_RECEIVER);
        String message = getIntent().getStringExtra(MESSAGE_BODY);
        if(receiver != null)
            phoneNoField.setText(receiver);
        if(message != null)
            messageBody.setText(message);

        Log.d(TAG, receiver + " " + message);       
    }
Run Code Online (Sandbox Code Playgroud)

onPause()调用方法时,我看到已经设置了值.但在我的onResume()方法中getStringExtra()总是返回null.我的做法有什么问题吗?

android android-intent android-activity

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